大型语言模型实战指南:应用实践与场景落地
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.4 GLM系列模型

GLM(General Language Model pretraining with autoregressive blank infilling,基于自回归空白填充的通用语言预训练模型)是由清华大学于2021年3月提出的。GLM通过修改注意力掩码机制实现统一模型,使得模型既可以用于NLU任务,又可以用于NLG任务。

在预训练过程中,GLM会从一个文本中随机挑选出多个文本片段(片段长度服从λ为3的泊松分布),利用[MASK]标记替换挑选出的片段并组成文本A,同时将这些挑选出的文本片段随机排列组合成文本B。通过对[MASK]标记进行预测,达到模型预训练的目的。GLM模型利用特殊的掩码技术,使得文本A中的所有Token内容可以相互看见,而文本B中的Token只能看到当前Token以前的内容,具体如图1-8所示。

为了解决每个[MASK]标记与文本B中文本片段对齐的问题,在预训练过程中,GLM使用了两种位置编码方式。第一种位置编码方式是,文本A的位置编码按照Token顺序进行递增编码,而文本B中每个文本片段的位置编码与文本A中对应的[MASK]标记的位置编码相同。第二种位置编码方式是,文本A的位置编码全为0,而文本B中每个文本片段按照Token顺序递增编码,具体如图1-9所示。

图1-8 GLM模型注意力掩码矩阵

图1-9 GLM模型位置编码示意图

采用以λ为3的泊松分布选取文本片段长度的策略,使得GLM模型更偏向于完成NLU任务。为了更好地适应NLG任务,GLM模型在预训练过程中增加了文档级任务和句子级任务。在文档级任务中,GLM模型选择仅抽取单个长度为原始文本长度的50%~100%的文本片段作为后续生成内容。在句子级任务中,GLM模型选择抽取多个完整句子的文本片段,使其总长度不超过原始文本长度的15%,再将多个句子拼接成一段作为后续生成内容。

2022年10月,清华大学又发布了GLM-130B模型的开源版本。相较于GLM模型,GLM-130B模型在以下方面进行了优化。

●模型参数量更大,支持中、英两种语言。

●采用两种不同的掩码标记[MASK]和[gMASK],分别用于短文本和长文本。

●位置编码采用了旋转位置编码。

●采用深度归一化(DeepNorm)方案作为层归一化方案。

在ChatGPT出现之后,清华大学和智谱AI参考了ChatGPT的设计思路,以GLM-130B模型为底座,通过有监督微调等技术实现人类意图对齐的ChatGLM模型,并在2023年3月14日开启了ChatGLM-130B模型的内测,开源了具有60亿个参数的ChatGLM-6B模型,在业界受到了不少好评。

2023年6月25日,清华大学和智谱AI开源ChatGLM2-6B模型,在保留了Chat-GLM-6B模型对话流畅、部署门槛较低等众多优秀特性的基础上,又利用更多的数据进行预训练并与人类偏好对齐,进一步改善模型的相关性能指标;利用Flash Attention技术将模型支持的长上下文扩展到了3.2万个Token;利用Multi-Query Attention技术使模型有更快的推理速度和更低的显存占用,推理速度比ChatGLM-6B模型提升了42%。

同年10月27日,智谱AI又开源第三代基座大模型ChatGLM3-6B。ChatGLM3-6B模型在ChatGLM2-6B模型的基础上,采用了更多样的训练数据、更充分的训练步数、更长的上下文,并采用ChatML格式的数据(涉及系统信息、用户信息、AI助手信息、外部工具返回信息)来进行模型训练。ChatGLM3-6B模型除了正常的多轮对话外,还支持工具调用、代码执行及智能体任务等。ChatGLM2-6B和ChatGLM3-6B模型的权重均对学术研究完全开放,在填写问卷进行登记后也允许免费商业使用。