论文传送门:
[1] GLM: General Language Model Pretraining with Autoregressive Blank Infilling
[2] Glm-130b: An open bilingual pre-trained model
Github链接:
THUDM/ChatGLM-6B
目录
- 笔记
- Abstract
- Introduction
- 框架总结
- 1. 模型架构
- 2. 预训练设置
- 3. 训练稳定性
- 4. 并行策略和模型配置
- 5. 量化和推理优化
- 6. 结果分析
- 7. 相关工作
- 8. 结论和经验教训
- 9. 伦理评估
- 10. 可复现性
笔记
Abstract
GLM-130B
和GPT-3 175B(davinci)
相比,参数量减少,但性能提升了。INT4 quantization without post training
INT4量化是一种将模型的权重和激活从使用较高位宽(如32位或16位浮点数)的表示减少到使用4位整数(INT4)的表示的过程。量化可以显著减少模型的内存需求和计算量,因此可以在资源有限的硬件上运行更大的模型,或者加快模型的推理速度。
不进行后续训练(post-training)的情况下进行INT4量化是一个挑战,因为通常量化会引入噪声和损失精度,影响模型的性能。后续训练(也称为量化感知训练)通常被用来微调量化后的模型,以恢复一些由于量化造成的性能损失。因此,如果没有进行这种微调就能实现几乎没有性能损失的INT4量化,就意味着模型具有非常好的量化鲁棒性。
这样的成果表明,GLM-130B模型可以有效地进行低位宽量化,同时保持其预测性能,这在实际应用中非常重要,因为它使得模型能够在普通消费级硬件上运行,而不是仅限于高性能服务器。这样不仅可以降低使用成本,而且可以使得更广泛的用户群体和开发者能够访问和使用这种大规模的模型。
Introduction
- 和
10B-scale model
相比,训练100B-scale model
需要解决的挑战:pre-training efficiency
,stability
,convergence
。 - 预训练使用了GPU集群,包含
96个节点
,每个节点配置8张 40G NVIDIA DGX-A100 GPU
。训练时间为2022/5/6~2022/7/3。 - 架构:使用了[2]中的
General Language Model (GLM) algorithm
。 - Pre-LN(预层归一化)
AND
训练vs.推理的GPU资源使用情况
- 在Transformer模型中,Pre-LN是指在每个子层(如自注意力层和前馈网络层)的输入之前进行层归一化。这种方式通常可以提高模型的训练稳定性,尤其是在训练非常深的网络时。Pre-LN有助于解决深度Transformer模型中的梯度消失问题,因为它能够使梯度直接流向较深的层。
大模型训练和推理(inference)阶段使用的GPU数量通常有很大的区别,这主要基于以下几个方面:
6. 资源需求:
- 训练:训练阶段需要处理大量的数据并进行重复的前向传播和反向传播计算,这需要大量的计算资源。因此,通常会使用更多的GPU,甚至是成百上千的GPU,以加快训练速度和处理大规模数据集。
- 推理:推理阶段通常只需要进行单次的前向传播,计算量相对较小,因此通常需要较少的GPU。在许多应用中,一个或几个GPU就足够用于推理。
7. 并行策略:
- 数据并行:在训练时,经常使用数据并行策略,将大型数据集分割成小批量,分配到多个GPU上并行处理。
- 模型并行:对于极大的模型,可能需要使用模型并行策略,将模型的不同部分放在不同的GPU上。
- 推理时并行:在推理时,通常不需要模型并行,因为一次只处理一个或几个请求。
8. 效率和成本:
- 训练大模型通常是一项耗时且昂贵的任务,使用更多的GPU可以提高训练效率,但也大大增加了成本。
- 推理需要尽可能高效和经济,特别是在生产环境中,因此通常会尽量减少所需的GPU数量,以降低成本。
9. 可扩展性和灵活性:
- 训练阶段的模型通常被设计为能够在大规模分布式系统上扩展。
- 推理模型通常需要在各种环境中灵活部署,包括边缘设备,因此可能更注重模型的压缩和优化。
总的来说,训练大模型时使用的GPU数量远多于推理阶段,主要是因为训练阶段的资源和计算需求远大于推理。然而,随着量化技术和模型优化的发展,推理阶段所需的资源正在逐渐减少,允许即使是大模型也能在资源受限的环境中运行。
框架总结
1. 模型架构
理解模型的基础架构以及与其他模型(如GPT-3等)的差异。
2. 预训练设置
了解模型预训练的具体过程,包括所使用的数据集、预训练目标、以及如何处理模型输入。
3. 训练稳定性
模型训练的稳定性对模型的性能至关重要。需关注文中提到的稳定性问题及解决方案。
4. 并行策略和模型配置
理解如何利用并行计算策略有效地训练这样大规模的模型。
5. 量化和推理优化
模型如何通过量化技术减少资源消耗,并优化推理过程。
6. 结果分析
模型在各种任务上的性能如何,特别是与其他大型模型相比。
7. 相关工作
熟悉本文中提到的相关工作,以便对整个领域有更好的理解。
8. 结论和经验教训
关注作者从训练过程中学到的经验教训。
9. 伦理评估
了解作者如何处理与大型语言模型相关的伦理风险。
10. 可复现性
文中如何确保实验结果的可复现性,以及如何使研究成果对社区开放。