这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:
摘要
我们介绍了GLM-130B,一个拥有1300亿参数的双语(英语和中文)预训练语言模型。这是开源一个至少与GPT-3(davinci)相当且规模达到100B的模型的尝试,并揭示了如何成功预训练如此规模的模型。在这一过程中,我们面临了许多意料之外的技术和工程挑战,特别是在损失尖峰和发散问题上。本文介绍了GLM-130B的训练过程,包括其设计选择、效率和稳定性的训练策略以及工程努力。最终的GLM-130B模型在广泛的流行英语基准测试中显著优于GPT-3 175B(davinci),而在OPT-175B和BLOOM-176B中并未观察到这种性能优势。它还在相关基准测试中一致且显著地优于ERNIE TITAN 3.0 260B——最大的中文语言模型。最后,我们利用GLM-130B的独特缩放特性,在不进行后训练的情况下实现了INT4量化,几乎没有任何性能损失,使其成为首个支持在4×RTX 3090(24G)或8×RTX 2080 Ti(11G)GPU上进行高效推理的100B规模模型,这些是目前使用100B规模模型所需的最经济实惠的GPU。GLM-130B的模型权重公开可用,其代码、训练日志、相关工具包和经验教训在这里,如下所示:
1 引言
大型语言模型(LLMs),特别是那些拥有超过1000亿(100B)参数的模型(Brown et al., 2020; Thoppilan et al., 2022; Rae et al., 2021; Chowdhery et al., 2022; Wang et al., 2021),展示了诱人的缩放定律(Wei et al., ),其中突然出现了零样本和少样本能力。其中,GPT-3(Brown et al., 2020)拥有1750亿参数,率先研究了100B规模的LLMs,通过仅使用32个标注样本在多个基准测试中显著优于完全监督的BERT-Large模型。然而,GPT-3(以及许多其他闭源的100B规模模型)——模型本身及其训练过程——迄今为止对公众来说仍然是不透明的。训练一个如此规模的高质量LLM,并将模型和训练过程与所有人共享,具有重要的价值。
图1:性能评估和伦理研究的总结。
表1:GLM-130B与其他100B规模LLMs和PaLM 540B的比较。(LN:层归一化;FPF:浮点格式;MIP:多任务指令预训练;CN:中文)
因此,我们旨在预训练一个开放且高度准确的100B规模模型,并考虑到伦理问题。在我们的尝试过程中,我们意识到预训练一个如此规模的密集LLM与训练10B规模的模型相比,在预训练效率、稳定性和收敛性方面提出了许多意料之外的技术和工程挑战。在训练OPT-175B(Zhang et al., 2022)和BLOOM-176B(Scao et al., 2022)时也同时观察到了类似的困难,进一步证明了GPT-3作为先驱研究的重要性。
在这项工作中,我们介绍了100B规模模型——GLM-130B的预训练,包括工程努力、模型设计选择、效率和稳定性的训练策略以及经济实惠推理的量化。由于广泛认识到,对于训练100B规模的LLMs来说,计算上无法负担所有可能设计的经验枚举,我们不仅展示了训练GLM-130B的成功部分,还展示了许多失败的选项和经验教训。特别是,训练稳定性是成功训练如此规模模型的决定性因素。与OPT-175B中手动调整学习率和BLOOM-176B中使用嵌入范数以牺牲性能的做法不同,我们尝试了各种选项,并发现嵌入梯度缩小的策略可以显著稳定GLM-130B的训练。
具体来说,GLM-130B是一个拥有1300亿参数的双语(英语和中文)双向密集模型,于2022年5月6日至7月3日期间在96个NVIDIA DGX-A100(8×40G)GPU节点集群上预训练了4000亿个token。我们没有使用GPT风格的架构,而是采用了通用语言模型(GLM)算法(Du et al., 2022),以利用其双向注意力优势和自回归空白填充目标。表1总结了GLM-130B、GPT-3以及其他两个开源努力——OPT-175B和BLOOM-176B,以及作为参考的PaLM 540B(Chowdhery et al., 2022)——一个4倍大的模型——之间的比较。
总的来说,概念上的独特性和工程努力使GLM-130B在广泛的基准测试(总共112个任务)中表现出超越GPT-3水平的性能,并且在许多情况下也优于PaLM 540B,而在OPT-175B和BLOOM-176B中并未观察到对GPT-3的超越(参见图1左)。在零样本性能方面,GLM-130B在LAMBADA(Paperno et al., 2016)上优于GPT-3 175B(+5.0%)、OPT-175B(+6.5%)和BLOOM-176B(+13.0%),并且在Big-bench-lite(Srivastava et al., 2022)上比GPT-3表现好3倍。对于5-shot MMLU(Hendrycks et al., 2021)任务,它优于GPT-3 175B(+0.9%)和BLOOM-176B(+12.7%)。作为一个双语LLM,它在中文方面也显著优于ERNIE TITAN 3.0 260B(Wang et al., 2021)——最大的中文LLM——在7个零样本CLUE(Xu et al., 2020)数据集上(+24.26%)和5个零样本FewCLUE(Xu et al., 2021)数据集上(+12.75%)。重要的是,如图1右所示,作为一个开放模型,GLM-130B与其100B规模的同行相比,显著减少了偏见和生成毒性。
最后,我们设计了GLM-130B,以尽可能多的人能够进行100B规模的LLM研究。首先,与OPT和BLOOM使用175B+参数不同,130B的大小被确定是因为这种大小支持在单个A100(8×40G)服务器上进行推理。其次,为了进一步降低GPU需求,我们将GLM-130B量化为INT4精度,而OPT和BLOOM只能达到INT8。由于GLM架构的独特属性,GLM-130B的INT4量化引入了可忽略的性能下降,例如在LAMBADA上为-0.74%,在MMLU上甚至为+0.05%,使其仍然优于未压缩的GPT-3。这使得GLM-130B能够在4×RTX 3090(24G)或8×RTX 2080 Ti(11G)的服务器上进行快速推理,并保证性能,这是迄今为止使用100B规模LLMs所需的最经济实惠的GPU。
我们开源了模型检查点、代码、训练日志、相关工具包和经验教训。
2 GLM-130B的设计选择
机器学习模型的架构定义了其归纳偏差。然而,人们已经意识到,对于LLMs来说,探索各种架构设计在计算上是不可行的。我们介绍并解释了GLM-130B的独特设计选择。
GLM-130B的架构
GLM作为骨干。 大多数最近的100B规模LLMs,如GPT-3、PaLM、OPT和BLOOM,遵循传统的GPT风格(Radford et al., 2019)架构,即仅解码器的自回归语言建模。在GLM-130B中,我们尝试探索双向GLM——通用语言模型(Du et al., 2022)——作为其骨干的潜力。
GLM在未掩码(即未损坏)上下文上的双向注意力将GLM-130B与使用单向注意力的GPT风格LLMs区分开来。为了支持理解和生成,它混合了两种损坏目标,每种目标由一个特殊的掩码token指示:
-
*[MASK]: 句子中的短空白,其长度加起来占输入的一定比例。
-
*[gMASK]: 句子末尾的随机长度长空白,提供前缀上下文。
从概念上讲,具有双向注意力的空白填充目标比GPT风格的模型更有效地理解上下文:当使用[MASK]时,GLM-130B的行为类似于BERT(Devlin et al., 2019)和T5(Raffel et al., 2020);当使用[gMASK]时,GLM-130B的行为类似于PrefixLM(Liu et al., 2018; Dong et al., 2019)。
经验上,GLM-130B在零样本LAMBADA上达到了80.2%的准确率,超过了GPT-3和PaLM 540B,如图2所示。通过设置注意力掩码,GLM-130B的单向变体与GPT-3和OPT-175B相当。我们的观察与现有发现一致(Liu et al., 2018; Dong et al., 2019)。
层归一化(LN, Ba et al., 2016)。 训练不稳定性是训练LLMs的主要挑战之一(Zhang et al., 2022; Scao et al., 2022; Chowdhery et al., 2022)(参见附录中的图10,了解几个100B规模模型的训练崩溃情况)。适当的LN选择可以帮助稳定LLMs的训练。我们尝试了现有的实践,例如Pre-LN(Xiong et al., 2020)、Post-LN(Ba et al., 2016)、Sandwich-LN(Ding et al., 2021),但不幸的是,这些方法无法稳定我们的GLM-130B测试运行(参见图3(a)和附录B.2的详细信息)。
位置编码和FFN。 我们在训练稳定性和下游性能方面经验性地测试了不同位置编码(PE)和FFN改进的选项(参见附录B.3的详细信息)。对于GLM-130B中的PE,我们采用了旋转位置编码(RoPE, Su et al. (2021))而不是ALiBi(Press et al., 2021)。为了改进Transformer中的FFN,我们选择了带有GeLU(Hendrycks & Gimpel, 2016)激活的GLU作为替代。
GLM-130B的预训练设置
受最近工作(Aribandi et al., 2022; Wei et al., ; Sanh et al., 2022)的启发,GLM-130B的预训练目标不仅包括自监督的GLM自回归空白填充,还包括多任务学习的一小部分token。这有望帮助提升其下游零样本性能。
自监督空白填充(95%的token)。 回想一下,GLM-130B使用[MASK]和[gMASK]来完成此任务。每个训练序列独立应用其中一个。具体来说,[MASK]用于在30%的训练序列中掩码连续跨度以进行空白填充。跨度的长度遵循泊松分布(λ=3),并加起来占输入的15%。对于其他70%的序列,每个序列的前缀保留为上下文,并使用[gMASK]掩码其余部分。掩码长度从均匀分布中采样。
预训练数据包括1.2T Pile(训练集)(Gao et al., 2020)英语、1.0T中文Wudao-Corpora(Yuan et al., 2021)和我们从网络上爬取的250G中文语料库(包括在线论坛、百科全书和问答),形成了英语和中文内容的平衡组合。
多任务指令预训练(MIP, 5%的token)。 T5(Raffel et al., 2020)和ExT5(Aribandi et al., 2022)表明,预训练中的多任务学习比微调更有帮助,因此我们提议在GLM-130B的预训练中包括各种指令提示数据集,包括语言理解、生成和信息提取。
与最近的工作(Wei et al., ; Sanh et al., 2022)相比,它们利用多任务提示微调来改进零样本任务迁移,MIP仅占5%的token,并在预训练阶段设置,以防止破坏LLMs的其他通用能力,例如无条件自由生成。具体来说,我们包括了74个来自(Sanh et al., 2022; Wang et al., )的提示数据集,列在附录C和表12中。建议GLM-130B用户避免根据第5节中说明的标准在这些数据集上评估其零样本和少样本能力。
平台感知的并行策略和模型配置
GLM-130B在96个DGX-A100 GPU(8×40G)服务器集群上训练,访问时间为60天。目标是尽可能多地通过token,因为最近的研究(Hoffmann et al., 2022)表明,大多数现有的LLMs在很大程度上训练不足。
3D并行策略。 数据并行(Valiant, 1990)和张量模型并行(Shoeybi et al., 2019)是训练十亿规模模型的实际做法(Wang & Komatsuzaki, 2021; Du et al., 2022)。为了进一步处理巨大的GPU内存需求和由于在节点之间应用张量并行而导致的整体GPU利用率下降——因为训练GLM-130B使用的是40G而不是80G A100,我们将管道模型并行与其他两种策略结合,形成3D并行策略。
管道并行将模型划分为每个并行组的顺序阶段,并进一步最小化由管道引入的气泡,我们利用DeepSpeed(Rasley et al., 2020)中的PipeDream-Flush(Narayanan et al., 2021)实现来训练GLM-130B,使用相对较大的全局批量大小(4,224)以减少时间和GPU内存浪费。通过数值和经验检查,我们采用了4路张量并行和8路管道并行(参见附录B.4的详细信息)。根据Chowdhery et al. (2022)中的计算,我们报告了硬件FLOPs利用率(HFU)为43.3%,模型FLOPs利用率(MFU)为32.5%,由于重新实现。
GLM-130B配置。 我们旨在使我们的100B规模LLM能够在单个DGX-A100(40G)节点上以FP16精度运行。基于我们从GPT-3中采用的隐藏状态维度12,288,结果模型大小必须不超过130B参数,因此为GLM-130B。为了最大化GPU利用率,我们根据平台及其相应的并行策略配置模型。为了避免由于两端额外的词嵌入而导致中间阶段内存利用率不足,我们通过从两端移除一层来平衡管道分区,使GLM-130B中的Transformer层数为9×8-2=70。
在60天的集群访问期间,我们设法训练GLM-130B处理了4000亿个token(大约2000亿个中文和2000亿个英文),每个样本的固定序列长度为2,048。对于[gMASK]训练目标,我们使用2,048个token的上下文窗口。对于[MASK]和多任务目标,我们使用512的上下文窗口并将四个样本连接在一起以适应2,048的序列长度。我们在前2.5%的样本中将批量大小从192预热到4224。我们使用AdamW(Loshchilov & Hutter, 2019)作为优化器,β1和β2设置为0.9和0.95,权重衰减值为0.1。我们在前0.5%的样本中将学习率从预热到
,然后通过10倍的余弦调度衰减。我们使用0.1的dropout率,并使用1.0的裁剪值裁剪梯度(参见表11的完整配置)。
3 GLM-130B的训练稳定性
训练稳定性是GLM-130B质量的决定性因素,这在很大程度上也受到其通过的token数量的影响(Hoffmann et al., 2022)。因此,在计算使用限制下,必须在效率和稳定性之间进行权衡,特别是在浮点(FP)格式方面:低精度FP格式(例如16位精度——FP16)提高了计算效率,但容易发生溢出和下溢错误,导致训练崩溃。
混合精度。 我们遵循混合精度(Micikevicius et al., 2018)策略(Apex O2)的常见做法,即FP16用于前向和后向,FP32用于优化器状态和主权重,以减少GPU内存使用并提高训练效率。与OPT-175B和BLOOM-176B类似(参见附录中的图10),GLM-130B的训练由于这一选择而面临频繁的损失尖峰,这些尖峰往往随着训练的进行而变得越来越频繁。与精度相关的尖峰通常没有明确的原因:一些会自行恢复;另一些则伴随着梯度范数突然飙升,最终导致损失尖峰甚至NaN。OPT-175B尝试通过手动跳过数据和调整超参数来修复;BLOOM-176B通过嵌入范数技术(Dettmers et al., 2021)来修复。我们花了几个月的时间经验性地调查这些尖峰,并意识到当Transformer规模扩大时会出现一些问题:
首先,如果使用Pre-LN,Transformer主分支的值规模在更深层中可能非常大。在GLM-130B中,通过使用基于DeepNorm的Post-LN(参见第2.1节)解决了这个问题,这使得值规模始终有界。
其次,随着模型规模的扩大,注意力分数变得如此之大,以至于超出了FP16的范围。在LLMs中有几种选择可以克服这个问题。在CogView(Ding et al., 2021)中,提出了PB-Relax来移除偏置项并在注意力计算中扣除极值以避免问题,但不幸的是,这并不能帮助避免GLM-130B中的发散。在BLOOM-176B中,使用BF16格式代替FP16,因为它在NVIDIA Ampere GPU(即A100)上具有广泛的值范围。然而,BF16在我们的实验中由于在梯度累积中转换为FP32而比FP16多消耗约15%的运行GPU内存,更重要的是,它不支持其他GPU平台(例如NVIDIA Tesla V100),限制了生成的LLMs的可访问性。BLOOM-176B的另一个选择是使用BF16应用嵌入范数,但以显著惩罚模型性能为代价,因为他们注意到嵌入范数可能会损害模型的零样本学习(参见第4.3节)。
嵌入层梯度缩小(EGS)。 我们的经验搜索发现,梯度范数可以作为训练崩溃的有用指标。具体来说,我们发现训练崩溃通常滞后于梯度范数的“尖峰”几个训练步骤。这些尖峰通常由嵌入层的异常梯度引起,因为我们观察到其梯度范数在GLM-130B的早期训练阶段通常比其他层大几个数量级(参见图4(a))。此外,它在早期训练中往往会剧烈波动。在视觉模型中,通过冻结补丁投影层来处理这个问题(Chen et al., 2021)。不幸的是,我们不能冻结语言模型中的嵌入层训练。
最后,我们发现嵌入层的梯度缩小可以克服损失尖峰,从而稳定GLM-130B的训练。它首先用于多模态Transformer CogView(Ding et al., 2021)。设αα为缩小因子,该策略可以通过word_embedding = word_embedding*α+word_embedding_detach()*(1−α)轻松实现。图4(b)表明,经验上,设置α=0.1可以消除我们遇到的大多数尖峰,且延迟可忽略不计。
事实上,最终的GLM-130B训练运行仅经历了三次后期损失发散情况,尽管由于硬件故障多次失败。对于这三个意外的尖峰,进一步缩小嵌入梯度仍然有助于稳定GLM-130B的训练。有关详细信息,请参阅我们的代码库中的训练笔记和Tensorboard日志。
4 在RTX 2080 Ti上进行GLM-130B推理
GLM-130B的主要目标之一是在没有效率和有效性劣势的情况下降低访问100B规模LLMs的硬件要求。
如前所述,130B的模型大小是为了在单个A100(40G×8)服务器上运行完整的GLM-130B模型,而不是OPT-175B和BLOOM-176B所需的高端A100(80G×8)机器。为了加速GLM-130B推理,我们还利用FasterTransformer(NVIDIA, 2022)在C++中实现GLM-130B。与Huggingface中BLOOM-176B的PyTorch实现相比,GLM-130B的解码推理在相同的单个A100服务器上快7-8.4倍(参见附录B.5的详细信息)。
RTX 3090s/2080s的INT4量化。 为了进一步支持普及的GPU,我们尝试在保持性能优势的情况下尽可能压缩GLM-130B,特别是通过量化(Zafrir et al., 2019; Shen et al., 2020; Tao et al., 2022),这为生成语言模型引入了很少的任务无关性能下降。
通常的做法是将模型权重和激活量化为INT8。然而,我们在附录B.6中的分析表明,LLMs的激活可能包含极端异常值。同时,OPT-175B和BLOOM-176B中的异常值也被发现(Dettmers et al., 2022),这些异常值仅影响约0.1%的特征维度,因此通过矩阵乘法分解来解决异常维度。不同的是,GLM-130B的激活中约有30%的异常值,使得上述技术效率大大降低。因此,我们决定专注于模型权重(即主要是线性层)的量化,同时保持激活的FP16精度。量化模型在运行时动态转换为FP16精度,引入了少量计算开销,但大大减少了存储模型权重所需的GPU内存。
图5:(左)attn-dense和w2的权重分布;(右)GLM-130B的INT4权重量化缩放定律。
令人兴奋的是,我们设法实现了GLM-130B的INT4权重量化,而迄今为止的成功仅达到INT8。在内存方面,与INT8相比,INT4版本帮助额外节省了一半所需的GPU内存至70GB,从而允许GLM-130B在4×RTX 3090 Ti(24G)或8×RTX 2080 Ti(11G)上进行推理。在性能方面,表2左表明,在没有进行任何后训练的情况下,INT4版本的GLM-130B几乎没有性能下降,从而保持了在常见基准测试上对GPT-3的性能优势。
GLM的INT4权重量化缩放定律。 我们研究了图5右中展示的这种独特INT4权重量化缩放定律的潜在机制。我们绘制了图5左中的权重值分布,结果发现它直接影响量化质量。具体来说,分布较宽的线性层需要使用更大的bin进行量化,导致更多的精度损失。因此,分布较宽的attn-dense和w2矩阵解释了GPT风格的BLOOM在INT4量化中的失败。相反,GLMs的分布比类似大小的GPTs窄得多,并且随着GLM模型规模的扩大,INT4和FP16版本之间的差距进一步缩小(参见附录中的图15的详细信息)。
5 结果
我们遵循LLMs(如GPT-3和PaLM)中的常见设置来评估GLM-130B的英语性能。作为一个双语LLM,GLM-130B也在中文基准测试上进行了评估。
关于GLM-130B零样本学习范围的讨论。 由于GLM-130B已经使用MIP进行了训练,这里我们澄清其零样本评估的范围。事实上,“零样本”似乎在没有社区共识的情况下存在有争议的解释。我们遵循其中一个有影响力的相关调查(Xian et al., 2018),其中说_“在测试时,在零样本学习设置中,目标是将测试图像分配给未见过的类别标签”_,其中涉及未见过的类别标签是关键。因此,我们得出选择GLM-130B零样本(和少样本)数据集的标准:
-
英语: 1)对于具有固定标签的任务(例如,自然语言推理):不应在此类任务中评估任何数据集;2)对于没有固定标签的任务(例如,(多项选择)问答、主题分类):仅应考虑那些与MIP中的数据集有明显领域转移的数据集。
-
中文: 所有数据集都可以进行评估,因为存在零样本跨语言转移。
过滤测试数据集。 遵循先前的实践(Brown et al., 2020; Lieber et al., 2021)和我们上面提到的标准,我们过滤并避免报告可能被污染的数据集的评估结果。对于LAMBADA和CLUE,我们在13-gram设置下发现最小的重叠。Pile、MMLU和BIG-bench要么被保留,要么在语料库爬取后发布。
语言建模
LAMBADA。 LAMBADA(Paperno et al., 2016)是一个测试最后一个词语言建模能力的数据集。图2中先前显示的结果表明,GLM-130B在其双向注意力下实现了80.2的零样本准确率,在LAMBADA上创下了新纪录。
表3:GLM-130B在Pile评估(18个子数据集)上的平均BPB。
Pile。 Pile测试集(Gao et al., 2020)包括一系列语言建模基准测试。平均而言,GLM-130B在其18个共享测试集上的加权BPB表现最佳,与GPT-3和Jurassic-1(Lieber et al., 2021)相比,后者的结果直接采用自后者,展示了其强大的语言能力(参见附录C.4的详细信息)。
大规模多任务语言理解(MMLU)
MMLU(Hendrycks et al., 2021)是一个多样化的基准测试,包括57个涉及人类知识的多项选择问答任务,从高中水平到专家水平。它在Pile爬取后发布,是LLMs少样本学习的理想测试平台。GPT-3的结果采用自MMLU,BLOOM-176B通过使用与GLM-130B相同的提示进行测试(参见附录C.6和表15的详细信息)。
GLM-130B在MMLU上的少样本(5-shot)性能在查看约300B token后接近GPT-3(43.9),如图6所示。随着训练的进行,它继续上升,在训练结束时(即总共查看400B token)达到了44.8的准确率。这与观察结果一致(Hoffmann et al., 2022),即大多数现有的LLMs远未充分训练。
超越模仿游戏基准测试(BIG-BENCH)
BIG-bench(Srivastava et al., 2022)基准测试了关于模型推理、知识和常识能力的挑战性任务。鉴于评估其150个任务对LLMs来说耗时,我们报告了BIG-bench-lite——一个官方的24任务子集——目前。从图7和表4中观察到,GLM-130B在零样本设置中优于GPT-3 175B,甚至优于PaLM 540B(4倍大)。这可能是由于GLM-130B的双向上下文注意力和MIP,这已被证明可以改进未见任务的零样本结果(Wei et al., 2022a; Sanh et al., 2022)。随着样本数量的增加,GLM-130B的性能继续上升,保持其对GPT-3的超越(参见附录C.5和表14的每个模型和任务的详细信息)。
局限性和讨论。 在上述实验中,我们观察到GLM-130B的性能增长(13.31到15.12)随着少样本样本的增加不如GPT-3的显著(4.35到13.18)。这里是我们直观地理解这一现象的尝试。
首先,GLM-130B的双向性质可能导致强大的零样本性能(如零样本语言建模所示),因此比单向LLMs更接近类似规模模型(即100B规模)的少样本“上限”。其次,这也可能归因于现有MIP范式(Wei et al., 2022a; Sanh et al., 2022)的不足,这些范式仅在训练中涉及零样本预测,可能会偏向于更强的零样本学习,但在上下文少样本性能上相对较弱。为了纠正这种偏差,我们提出的潜在解决方案是使用不同样本量的上下文样本进行MIP,而不仅仅是零样本样本。
最后,尽管GPT架构与GPT-3几乎相同,PaLM 540B在少样本上下文学习中的相对增长比GPT-3显著得多。我们推测这种性能增长的进一步加速是PaLM高质量和多样化私有收集训练语料库的来源。通过结合我们的经验和(Hoffmann et al., 2022)的见解,我们意识到应该进一步投资于更好的架构、更好的数据和更多的训练FLOPS。
中文语言理解评估(CLUE)
我们评估了GLM-130B在已建立的中文NLP基准测试CLUE(Xu et al., 2020)和FewCLUE(Xu et al., 2021)上的中文零样本性能。请注意,我们没有在MIP中包含任何中文下游任务。迄今为止,我们已经完成了对这两个基准测试的部分测试,包括7个CLUE和5个FewCLUE数据集(参见附录C.7的详细信息)。我们将GLM-130B与最大的现有中文单语语言模型——260B ERNIE Titan 3.0(Wang et al., 2021)进行了比较。我们遵循其设置,在开发数据集上报告零样本结果。GLM-130B在12个任务中始终优于ERNIE Titan 3.0(参见图8)。有趣的是,GLM-130B在两个抽象MRC数据集(DRCD和CMRC2018)上至少比ERNIE好260%,可能是由于GLM-130B的预训练目标自然与抽象MRC的形式产生共鸣。
6 相关工作
在本节中,我们回顾了与GLM-130B相关的预训练、迁移和预训练LLMs推理的工作(Qiu et al., 2020; Bommasani et al., 2021)。
预训练。 传统的语言建模指的是仅解码器的自回归模型(例如,GPT Radford et al. (2018)),但它也认可任何形式的文本自监督目标。最近,基于Transformer(Vaswani et al., 2017)的语言模型展示了一个迷人的缩放定律:随着模型规模的扩大,新能力(Wei et al., )突然出现,从1.5B(Radford et al., 2019)、10B规模的语言模型(Raffel et al., 2020; Shoeybi et al., 2019; Black et al., 2022),到100B规模的GPT-3(Brown et al., 2020)。后来,尽管有许多100B规模的LLMs(Lieber et al., 2021; Thoppilan et al., 2022; Rae et al., 2021; Smith et al., 2022; Chowdhery et al., 2022; Wu et al., 2021; Zeng et al., 2021; Wang et al., 2021)在英语和中文中,但它们对公众不可用或仅通过有限的API访问。LLMs的封闭性严重阻碍了其发展。GLM-130B的努力,以及最近的ElutherAI、OPT-175B(Zhang et al., 2022)和BLOOM-176B(Scao et al., 2022),旨在为我们的社区提供高质量的开源LLMs。
迁移。 尽管微调一直是迁移学习的实际方法,但由于其巨大的规模,LLMs的评估主要集中在提示和上下文学习上(Brown et al., 2020; Liu et al., )。然而,最近的一些尝试集中在语言模型上的参数高效学习(Houlsby et al., 2019)和提示调整(即P-tuning, Li & Liang (2021); Liu et al., (); Lester et al., (2021); Liu et al., (2022))。目前我们并不专注于它们,并将对GLM-130B的全面测试留待未来研究。
推理。 如今大多数可公开访问的LLMs通过有限的API提供服务。在这项工作中,我们努力的一个重要部分是LLMs的高效和快速推理。相关工作可能包括蒸馏(Sanh et al., 2019; Jiao et al., 2020; Wang et al., 2020)、量化(Zafrir et al., 2019; Shen et al., 2020; Tao et al., 2022)和剪枝(Michel et al., 2019; Fan et al., 2019)。最近的工作(Dettmers et al., 2022)表明,LLMs如OPT-175B和BLOOM-176B可以量化为8位,由于异常维度的特殊分布。在这项工作中,我们展示了GLM的INT4权重量化缩放定律,这使得GLM-130B能够在少至4×RTX 3090(24G)GPU或8×RTX 2080 Ti(11G)GPU上进行推理。
7 结论和经验教训
我们介绍了GLM-130B,一个双语预训练语言模型,旨在促进开放和包容的LLM研究。GLM-130B的技术和工程努力为LLMs的架构、预训练目标、训练稳定性和效率以及经济实惠的推理提供了见解。总的来说,它在112个任务的语言性能和偏见与毒性基准测试的伦理结果方面为GLM-130B的高质量做出了贡献。我们的成功和失败经验被浓缩为训练100B规模LLMs的经验教训,附在附录B.10中。
图8:GLM-130B和ERNIE Titan 3.0 260B在零样本CLUE和FewCLUE上的评估。
致谢
本研究得到了中国国家自然科学基金(NSFC)61825602、62276148和Zhipu.AI的支持。我们感谢所有来自清华大学知识工程组(KEG)、并行架构与编译器技术移动、加速和网络系统组(PACMAN)、自然语言处理组(THUNLP)和Zhipu.AI的合作者和合作伙伴。
伦理声明
我们在此确认,本工作的所有合著者均知晓提供的ICLR伦理准则并遵守行为准则。这项工作引入了一个开源的大型语言模型(LLM),它可能被用于生成有害应用的合成文本,如电话营销欺诈、政治宣传和个人骚扰,正如(Weidinger et al., 2021; Sheng et al., 2021; Dev et al., 2021)中所讨论的。我们不预期在使用该模型后会产生任何有害输出,特别是针对弱势和历史上处于不利地位的群体。
为了更好地与我们的社区合作,从技术上预防并最终消除风险,我们在这项工作中做出了以下关键的开放努力:
开源LLMs用于伦理风险研究。 虽然一些人认为限制LLMs的访问可以防止此类有害应用,但我们认为促进LLM的包容性可以更好地防御LLMs可能造成的潜在危害。目前,只有政府和大公司能够负担得起预训练LLMs的巨大成本。无法保证拥有大量财务资源的组织不会使用LLM造成伤害。如果没有访问这些LLMs,个人甚至无法意识到LLMs在危害中的作用。
相反,发布一个开放的LLM可以为所有研究人员提供访问和透明度,并促进研究以减少LLMs的潜在危害,如识别合成文本的算法(Gehrmann et al., 2019)。此外,众所周知,LLMs可能在公平性、偏见、隐私和真实性方面存在问题(Zhang et al., 2021; Lin et al., 2022; Liang et al., 2021; Bender et al., 2021)。一个开放的LLM可以揭示与特定输入对应的模型参数和内部状态,而不是提供黑箱模型的API。总之,研究人员可以深入分析LLMs的缺陷,并提出改进算法以解决问题。
伦理评估和改进。 我们还在一系列英语伦理评估基准测试上评估了我们的模型,包括偏见测量(Nadeem et al., 2021; Nangia et al., 2020)、仇恨言论检测(Mollas et al., 2020)和毒性生成估计(Gehman et al., 2020)。尽管它们存在不足(Blodgett et al., 2021; Jacobs & Wallach, 2021),这些数据集作为开放定量评估LLMs的有意义的初步步骤。
我们的评估表明,我们的算法设计,特别是LLM的双语预训练,可以显著减轻LLM可能呈现的偏见和毒性,同时保持其与其他使用单语英语语料库训练的LLMs(Brown et al., 2020; Zhang et al., 2022)相比的强语言性能(参见附录A的更多详细信息)。
可重复性
与包括GPT-3 175B(Brown et al., 2020)、PaLM 540B(Chowdhery et al., 2022)、Gopher(Rae et al., 2021)、Chinchilla(Hoffmann et al., 2022)、LaMDA(Thoppilan et al., 2022)、FLAN(Wei et al., )和许多其他主流闭源LLMs相比,GLM-130B是开源的,并从一开始就致力于促进LLM研究的开放性和包容性。
我们付出了巨大努力以确保我们评估的可重复性。对于预训练部分,尽管目前重现它的成本无法负担,我们仍然尽最大努力披露GLM-130B预训练的代码、细节和整个过程。我们努力使GLM-130B在3090/2080 Ti等普及GPU上进行推理,这也与可重复性努力一致,因为它允许大多数学术研究人员在其离线机器上重现GLM-130B的结果。我们还为个人用户提供免费API以测试GLM-130B的能力。
预训练。 我们在我们的代码库中提供了完整的训练笔记、Tensorboard日志和代码(参见摘要)。预训练超参数和集群配置在第2.3节和表11中提供。训练语料库的组成和多任务指令预训练的详细信息在第2.2节和附录C.1和C.2中提供。
评估。 我们将所有评估(包括语言基准测试(LAMBADA、Pile、MMLU、BIG-bench、CLUE和FewCLUE)和伦理基准测试(CrowS-Pairs、StereoSet、ETHOS、RealToxicPrompts))组织成一个命令运行的bash脚本,放在我们的代码库中。语言建模基准测试的数据处理详细信息在第5.1节和附录C.4中提供,MMLU的详细信息在第5.2节和附录C.6中提供,BIG-bench的详细信息在第5.3节和附录C.5中提供,CLUE和FewCLUE的详细信息在第5.4节中提供。所有伦理评估的详细信息请参见附录A。