ChatGLM系列模型
ChatGLM系列算法是清华大学研发的一个开源的、支持中英双语的对话语言模型,基于General Language Model(GLM)架构。采用了和ChatGPT相似的技术,针对中文问答和对话进行了优化。因此在了解对应算法之前需要对GLM架构进行相应的了解。
GLM是一个基于自回归的空白填充目标的通用预训练框架。将NLU任务转化为包含任务描述的完形填空问题,可以通过自回归生成的方式来进行回答。所谓自回归空白填充是指在输入文本中随机挖去一些连续的文本片段,然后在模型训练的时候按照任意顺序来重构这些片段。
自回归空白填充
GLM通过优化一个自回归空白填充目标来进行模型的训练,给定一个输入文本 x = [ x 1 , . . . , x n ] x=[x_1,...,x_n] x=[x1,...,xn],从中采样多个文本片段 { s 1 , . . . , s m } \{s_1,...,s_m\} { s1,...,sm},其中每个片段 s i si si对应于 x x x中的一系列连续的词 [ s i , 1 , . . . , s i , l i ] [si,1,...,si,li] [si,1,...,si,li] 。每个片段都用一个单独的 [MASK] 符号替换,形成一个损坏的文本 x c o r r u p t x_{corrupt} xcorrupt。模型以自回归的方式从损坏的文本中预测缺失的词,这意味着在预测一个片段中的缺失词时,模型可以访问损坏的文本和之前预测的片段。为了充分捕捉不同片段之间的相互依赖关系,我们随机打乱片段的顺序,类似于排列语言模型。令 Z m Z_m Zm 为长度为 m m m的索引序列 [ 1 , 2 , . . . , m ] [1,2,...,m] [1,2,...,m] 的所有可能排列的集合,令 s z < i ∈ [ s z 1 , .