本文为作为类ChatGPT的模型ChatGLM的前期基础论文2《AN OPEN BILINGUAL PRE-TRAINED MODEL》的精读笔记,基础论文1的精读笔记请见《GLM论文精读-自回归填空的通用语言模型》。希望对大家有帮助,欢迎讨论交流。GLM-130B,主要思想概述:一个双语(英文和中文)的基于GLM的双向稠密模型。并没有使用GPT风格的架构,而是采用通用语言模型(GLM)算法(Du et al.,2022)来利用其双向注意力优势和自回归空白填充目标,模型参数为1300亿,语料约训练了4000亿个文本标记,在语义理解和文本生成任务上性能强大。
论文地址: https://arxiv.org/abs/2210.02414
论文代码: GitHub - THUDM/GLM-130B: GLM-130B: An Open Bilingual Pre-Trained Model (ICLR 2023)
官方博客: GLM-130B:开源的双语预训练模型 | GLM-130B
学习完后的最大感受是这是一个非常扎实的工作,论文的附录里把相关架构的选择思考、数据的构成乃至训练的log和主要失败的实验都记录公开了,不愧是T大!
目录
DeepNorm 归一化,使用DeepNet的Post-LN。
论文架构概述
-
论文的主要贡献包括:
-
1)架构选择
-
通用语言模型GLM
-
组件改进:旋转位置编码、DeepNorm、GeGLU
-
-
2)工程实现
-
并行策略:数据、张量、流水线3D并行
-
多平台高效适配
-
-
3)训练策略改进
-
梯度爆炸的问题,采用了嵌入层梯度缩减策略
-
解决注意力数值溢出问题,采用了FP32的softmax计算策略,训练稳定性有提升
-
-
-
GLM-130B的代码: 目前只开源了evaluate部分代码和checkpoint,并没有直接开源train的代码,基于研究目的可以申请获得。
架构
-
训练目标
-
自监督的自回归文本填空(95%tokens)。GLM利用自回归文本填空作为其主要的预训练目标。它掩盖了随机的连续跨度(例如,下面的例子中的 "complete unknown"),并对其进行自回归预测。上下文之间的注意力(例如,"like a [MASK], like a rolling stone")是双向的。相反,被掩盖的标记之间的注意力,和从上下文到被掩盖的标识符的注意力是自回归掩码的。

-
(注: glm的注意力双向和单向的介绍,刘潇的视频大概在14min左右)
-
-
在GLM-130B的实现中,有两种不同的MASK标识符,表示两个不同的目的(To support both understanding and generation, it mixes two corruption objectives, each indicated by a special mask token):
-
[MASK]根据泊松分布 (λ=3)对输入中标识符进行短跨度的采样,主要服务对文本的理解能力目标;([MASK]: short blanks in sentences whose lengths add up to a certain portion of the input.)
-
[gMASK]掩盖一个长的跨度,从其位置到整个文本的结束,主要服务对文本的生成目标能力目标。 ([gMASK]: random-length long blanks at the end of sentences with prefix contexts provided)
-
-
-
多任务学习预训练(5%tokens)。T5(Raffel et al.,2020)和ExT5(Aribandi et al.,2022)表明,预训练中的多任务学习比微调更有帮助,因此论文建议在GLM-130B的预训练中包括各种指令提示数据集,包括语言理解、生成和信息抽取。
-
从概念上讲,与GPT风格的模型相比,具有双向注意力的填空目标能够更有效地理解上下文:当使用[MASK]时,GLM-130B表现为BERT(Devlin et al.,2019)和T5(Raffel et al.,2020);当使用[gMASK]时,GLM-130B的行为与Pre

GLM-130B是一个1300亿参数的双语预训练模型,采用GLM架构,利用自回归填空和旋转位置编码(RoPE)增强双向注意力。论文重点介绍了模型的训练策略,包括使用DeepNorm归一化和FP16混合精度训练,以及在处理梯度爆炸和训练稳定性方面的改进。模型在中文和英文的多项任务中表现出高精度,并支持高效的推理和量化。
最低0.47元/天 解锁文章
7万+





