背景:
预训练框架主要有三种:自回归模型,通常用于生成式任务,只能用于前向或者后向建模,不能同时使用双向的上下文信息,不能完全捕捉token的内在联系,代表作gpt。自编码模型,通过每个降噪目标训练双向文本编码器,代表作bert。encoder-decoder,采用双向注意力机制,通常用于条件生成任务,代表作T5、BART。自回归填空模型,可以根据给定的上下文生成缺失的部分内容。根据已知的部分文本内容生成可能的填空内容。
GLM预训练框架
GLM特点
- 自编码思想:在输入文本中,随机删除连续的tokens。
- 自回归思想:顺序重建连续tokens。在使用自回归方式预测缺失tokens时,模型既可以访问corrupted文本,又可以访问之前已经被预测的spans。
- span shuffling + 二维位置编码技术。
- 通过改变缺失spans的数量和长度,自回归空格填充目标可以为条件生成以及无条件生成任务预训练语言模型。
(1)自回归空格填充任务
ChatGLM核心:输入可以被分成两部分:Part A是被mask的文本 ,Part B由masked spans组成。假设原始输入文本是[x1,x2,x3,x4,x5,x6],采样的两个文本片段是[x3]以及[x5,x6]。那么mask后的文本序列是:x1,x2,x3,[M],x4,[M],即Part A;同时需要对Part B的片段进行shuffle。每个片段使用[S]
填充在开头作为输入,使用[E]
填充在末尾作为输出。二维位置编码:第一个位置id用标记part a 中的绝对位置,第二个位置id用表示跨都内部的相对位置。这两个位置id会通过embedding表被投影为两个向量,最终都会被加入到输入token的embedding表达中。观察GLM中自定义attention mask的设计,非常巧妙:Part A中的tokens彼此可见,但是不可见B中的任意tokens。Part B tokens可见Part A。Part B tokens可见B中过去的tokens,不可见B中未来的tokens。采样方式:文本片段的采样遵循泊松分布,重复采样,直到原始tokens中有15%被mask。总结:模型可以自动学习双向encoder(Part A)以及单向decoder(Part B)。自注意力掩码。 灰色区域被掩盖。 Part A 的词语可以自我看到(图2(d)蓝色框),但不能看到 Part B。 Part B 的词语可以看到 Part A 和 Part B 中的前面的词语(图2(d)黄色和绿色框对应两个片段)。