【自然语言处理】【大模型】GLM

您所在的位置:网站首页 自然语言的处理 【自然语言处理】【大模型】GLM

【自然语言处理】【大模型】GLM

2023-03-22 22:01| 来源: 网络整理| 查看: 265

作者: @白强伟 (已授权转载)链接:https://zhuanlan.zhihu.com/p/604958461点击关注@LiteAI,跟进最新Efficient AI & 边缘AI & 模型轻量化技术,跟进最新DL & CV技术。

《GLM-130B: An open bilingual pre-trained model》​

论文:https://arxiv.org/pdf/2210.02414.pdf

一、简介

大语言模型(LLMs),特别是参数超过100B的模型呈现出诱人的scaling laws,其会突然涌现出zero-shot和few-shot能力。具有175B参数的GPT-3率先对100B尺度的LLM进行了研究:在各种基准上,使用32个标注示例可以显著超越全监督的BERT-Large模型。然而,GPT-3本身以及如何训练仍然是无法公开获得的。训练出如此规模的高质量LLM,并对每个人分享模型和训练过程非常的有价值。

我们的目标是预训练一个开源且高准确率的100B模型。在我们尝试的过程中,我们逐渐意识到相比于训练10B的模型,训练一个100B以上的稠密LLM面临着许多意想不到的技术和工程的挑战,例如预训练效率、稳定性和收敛等。类似的困难也发生在OPT-175B和BLOOM-176B的训练中,进一步证明了GPT-3作为先驱研究的重要性。

在本文中,我们介绍了100B规模模型GLM-130B的预训练,包括工程上的努力、模型设计选择、为了效率和稳定性的训练策略、用于降低推理成本的量化。因为人们已经普遍意识到,枚举训练100B规模LLM的所有可能设计在计算资源上无法负担,因此我们不仅程序训练GLM-130B成功的部分,也介绍许多失败的选择来吸取经验。训练稳定性是这种规模模型能够训练成功的关键因素。不同于OPT-175B中的人工调整学习率,以及BLOOM-176B中使用embedding norm,我们实验了各种选项并发现embedding梯度shrink策略可以显著稳定GLM-130B的训练。

具体来说,GLM-130B是一个具有1300亿参数的双语双向稠密模型,其在96个NVIDIA DGX-100(8*40G)节点的集群上用400B的token进行了预训练,训练从2022年5月6日至2022年7月3日。相比于使用GPT风格的架构,我们采用General Language Model(GLM)算法来利用双向注意力优势和自回归空白填充目标函数。上表1比较了GLM-130B、GPT-3、OPT-175B、BLOOM-176B和PaLM540B。

总的来说,概念独立性和工程上的努力使得GLM-130B在广泛的基准上展现出了超过GPT-3的性能,在许多例子中也超过了PaLM540B,而OPT-175B和BLOOM-176B并没有展现出超越GPT-3的性能。对于zero-shot的表现,在LAMBADA上GLM-130B优于GPT-3 175B(+5.0%)、OPT-175B(+6.5%)和BLOOM-176B(+13.0%),并在BIG-Bench-Lite上优于GPT-3三倍。对于5-shot MMLU任务,其优于GPT-3 175B(+0.9%)和BLOOM-176B(+12.7%)。由于一个包含中文的双语LLM,其显著的优于ERNIE TITAN 3.0 260B,在7 zero-shot CLUE数据集上(+24.26%),以及5 zero-shot FewCLUE(+12.75%)。重要的是,GLM-130B作为一个开放模型,相比于其他100B模型,其偏见和毒性明显小很多。

最后,我们设计GLM-130B的目标是让更多的人进行100B LLM的研究。首先,相比于175B+参数的OPT和BLOOM,130B尺寸能够在单台A100(8*40G)服务器上进行推理。其次,为了进一步减低对GPU的需要,我们在不使用量化感知训练的情况下将GLM-130B量化至INT4的精度,而OPT和BLOOM仅能够达到INT8。由于GLM-130B架构的独特性,GLM-130B的INT4量化引入了可以忽略不计的性能下降,例如LAMBADA的-0.74%甚至在MMLU上+0.05%,使其仍然优于未压缩的GPT-3。这使得GLM-130B在保证性能的情况下,在4xRTX3090(24G)或者8xRTX2080 Ti(11G)上进行快速推理,迄今为止100B LLM所需的最实惠GPU。

二、GLM-130B的设计选择1. GLM-130B的架构

GLM作为主干。大多数近期的100B规模的LLM,例如GPT-3、PaLM、OPT和BLOOM遵循GPT风格的架构,decoder-only自回归语言模型。在GLM-130B中,我们尝试利用双向GLM的潜力作为主干网络。

GLM是一种基于transformer的语言模型,利用自回归空白填充作为训练目标。简单来说,对于文本序列 \textbf{x}=[x_1,\dots,x_n] ,从其中采样文本片段 \{\textbf{s}_1,\dots,\textbf{s}_m\} ,每个 \textbf{s}_i 表示连续tokens片段 [s_{i,1},\dots,s_{i,l_i}] 并被替换为单个mask token,从而形成 \textbf{x}_{corrupt} 。模型被要求使用自回归的方式进行恢复。为了允许被破坏的片段间交互,彼此之间的可见性由一个随机采样的排列决定。预训练目标定义为:

\mathcal{L}=\max_{\theta}\mathbb{E}_{\textbf{z}\sim Z_m}\Big[\sum_{i=1}^m\log\prod_{j=1}^{l_i} p(s_{i,j}|\textbf{x}_{corrupt},\textbf{s}_{z_{

GLM-130B的主要目标是在不减低效率和有效性的情况下,降低访问100B规模LLM的硬件需求。

130B的模型尺寸可以使得在单个A100(40G*8)机器上运行完整的GLM-130B,而不是像OPT-175B和BLOOM-176B那样运行在高端A100(80G*8)机器上。为了加速GLM-130B的推理,我们也利用FasterTransformer来实现GLM-130B。相比于Huggingface中Pytorch实现的BLOOM-176B,GLM-130B在相同的单A100服务器上解码推理快7-8.4倍。

用于RTX 3090/2080的INT4量化。为了进一步支持流行的GPU,在保存性能优势的前提下尽可能的压缩GLM-130B,特别是通过量化。

通常的实践是将模型权重和激活都量化为INT8。然而,我们的分析表明LLM的激活可能包含极端异常值。同时,在OPT-175B和BLOOM-176B中也发现了涌现的异常值,其仅影响0.1%的特征维度,因此可以通过矩阵乘法分解来解决问题。

不同的是,GLM-130B的激活中存在约30%的异常值,使得上述的技术效率大大降低。因此,我们决定专注在良好模型权重,而保持模型激活为FP16精度。我们简单的使用训练后absmax量化,在运行时权重动态转换为FP16精度,引入了少量的计算开销,但是大幅度的降低了GPE显存的使用。

令人兴奋的是,GLM-130B达到了INT4全量量化,而现有成功案例仅实现了INT8级别。相比于INT8,INT4版本有助于额外节约所需显存的一半至70GB,这样就允许GLM-130B在4 x RTX 3090 Ti(24)或者8 x RTX 2080 Ti(11G)上进行推理。上表2左侧表明,没有使用任何的后训练,INT4版本的GLML-130B几乎没有性能的下降,在常见基准上维持对GPT-3的优势。

GLM INT4全量量化scaling law。上图5右侧展示了性能随模型尺寸增加的趋势,表明GLM INT4权重量化性能存在scaling law。我们评测了GLM中这种唯一的潜在机制。上图5左侧绘制了权重值分布,其表明了对量化质量的直接影响。具体来说,值分布根据广泛的的线性层需要更大的bins进行量化,否则会导致更多的精度损失。值广泛分布的attn-dense和w2矩阵解释了BLOOM的INT4量化失败原因。相反地,GLM相比于类似尺寸的GPT,有着更窄的值分布。随着GLM模型尺寸的增大,INT4和FP16版本的差距进一步减小。

五、结果

我们遵循GPT-3和PaLM等LLM的常用设置来评估GLM-130B。GLM-130B除了在英文上进行评估,作为双语模型也会在中文基准上进行评估。

GLM-130B中Zero-shot Learning范围讨论。因为GLM-130B已经使用MIP进行训练,这里明确了zero-shot评估的范围。事实上,“zero-shot”似乎有着争议性的解释,在社区没有达成共识。我们遵循一个重要的相关综述,其中“zero-shot learning设置在测试时,其目标是为测试图像分配一个未见过的类别标签”,其中涉及到未见过的类别标签是关键。因此,我们得出选择GLM-130B zero-shot数据集的准则是:

英语:1) 对于那些带有固定标签的任务(如自然语言推断),不应该对此类任务中的任务数据集进行评估;2) 对于没有固定标签的任务(问答、主题分类):只有与MIP有明确领域迁移的数据集被考虑;中文:所有数据集多可以被评估,因为存在zero-shot跨语言迁移;

过滤测试数据集。遵循先前工作的实践和上面提及的准则,我们过滤并避免报告可能受到污染的数据集评估结果。对于LAMBADA和CLUE,我们发现在13-gram设定下是最小的覆盖。Pile、MMLU和BIG-bench要么被留出一部分,或者在爬取语料之后发布。

1. 语言建模

LAMBADA。LAMBADA是测试最后一个单词语言建模能力的数据集。GLM-130B使用双向注意力实现了80.2的zero-shot准确率,在LAMBADA上实现了新的记录。

Pile。Pile的测试集中包含了一系列的语义建模准则。与GPT-3和Jurassic-1相比,GLM-130B在18个加权BPB的共享测试集上实现了最好的表现,证明了其强大的语义能力。

2. 大规模多任务语言理解(MMLU)

MMLU是一个包含了57个多项选择问答任务的多样性基准,主要是从高中水平至专家水平的人类知识。其是在Pile爬取之后发布的,是一个LLM few-shot learning的理想测试基准。GPT-3的结果来自于MMLU,BLOOM-176B则是使用与GLM-130B相同的prompts来测试。

如上图6所示,在见过大约300B的tokens后,GLM-130B在MMLU上的few-shot(5-shot)性能接近GPT-3(43.9)。随着训练的进行其会继续的上升,当训练结束是实现准确率44.8。这与观察结果一致,大多数现有的LLM远远没有得到充分的训练。

3. BIG-bench

BIG-bench对涉及模型推理、知识和常识能力的挑战性任务上进行基准测试。对于LLM来说,在150个任务上进行评估是耗时的,因此我们报告了BIE-bench-list,一个官方包含24个任务的子集合。观察上图7和表4,GLM-130B在zero-shot上优于GPT-3 175B,甚至是PaLM 540B。这可能要归功于GLM-130B的双向上下文注意力和MIP,其被证明能够在未见过的任务上改善zero-shot结果。随着shot的数量增加,GLM-130B的效果持续增加,并依旧领先于GPT-3。

限制与讨论。在上面的实验中,我们观察到GLM-130B随着few-shot样本增加而改善的性能没有GPT-3显著。这里从直觉上尝试理解这个现象。

首先,GLM-130B的双向本质能够带来很强的zero-shot效果,使其能够接近相同规模的few-shot上界。其次,这可以是因为现有的MI范式缺陷,其仅涉及在训练中的zero-shot预测并导致GLM-130B偏向于更强的zero-shot学习能力,但是相对较弱的in-context few-shot效果。为了纠正这个偏差,我们提出的潜在解决方案是,若我们有机会为GLM-130B继续预训练,那么MIP会使用不同in-context样本的各种shot,而不仅仅是zero-shot样本。

最后,尽管采用了与GPT-3相同的GPT架构,PaLM 540B在in-context learning中的few-shot相对增长要比GPT-3显著的多。我们推测,这种性能增长的进一步加速是PaLM高质量且多样化的私有训练语料导致的。

4. 中文语言理解评估(CLUE)

我们在中文NLP基准CLUE和FewCLUE上评估GLM-130B的中文zero-shot效果。注意,我们在MIP中没有包含任何的中文下游任务。到目前为止,我们已经完成了两个基准的部分测试,包括7个CLUE和5个FewCLUE数据集。我们将GLM-130B与现有最大的中文单语模型260B的ERNIE Titan 3.0进行了比较。我们准确其设置来报告开发集上的zero-shot结果。GLM-130B在12个任务上优于ERNIE Titan 3.0。有趣的是,GLM-130B在两个抽象MRC数据集上比ERNIE至少好260%,可能是由于GLM-130B的预训练目标天然与抽象MRC形式契合。

相关文章:

B.QW:【自然语言处理】【大模型】DeepMind的大模型Gopher

B.QW:【自然语言处理】【大模型】GLM-130B:一个开源双语预训练语言模型

B.QW:【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍

B.QW:【自然语言处理】【大模型】BLOOM:一个176B参数且可开放获取的多语言模型

B.QW:【自然语言处理】【大模型】PaLM:基于Pathways的大语言模型



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3