现有的预训练架构,如BERT、GPT和T5,在自然语言理解(NLU)、无条件生成和条件生成的所有任务中表现都不尽如人意。而GLM通过引入二维位置编码并允许任意顺序预测的跨度,改进了填空预训练。以下是该论文的详细内容介绍:
现有模型的不足:
现有的预训练框架如BERT、GPT和T5,在NLU、无条件生成和条件生成三大类任务中没有一个能够在所有任务上表现最优。
GLM的改进:
GLM(General Language Model)基于自回归填空的预训练方法,在多个方面对现有的预训练模型进行了改进,以提高在自然语言理解(NLU)、无条件生成和条件生成任务中的表现。以下是GLM的主要改进:
1. 引入二维位置编码
-
挑战:自回归填空任务中如何编码位置信息是一个挑战。Transformer依赖位置编码来注入token的绝对和相对位置。
-
改进:GLM引入了二维位置编码,每个token有两个位置ID。第一个位置ID表示在损坏文本中的位置,第二个位置ID表示在跨度内的位置。
-
对于Part A中的token,第二个位置ID为0。
-
对于Part B中的token,第二个位置ID从1到跨度长度不等。
-
这两个位置ID通过可学习的嵌入表投射到两个向量中,并添加到输入token嵌入中。
-
这种编码方法确保模型不知道被遮掩跨度的长度。
-
2. 任意顺序预测
-
传统方法的局限性:传统的填空方法通常要求以固定顺序(如从左到右)预测被遮掩的跨度。
-
改进:GLM允许任意顺序预测跨度,提高了模型的灵活性和性能。这样,模型可以更好地适应不同任务的需求。
3. 多任务预训练
-
目标:预训练一个能够处理NLU和文本生成的单一模型。
-
方法:采用多任务预训练设置,联合优化生成长文本和填空的目标。具体包括:
-
文档级目标:从原始长度的50%–100%之间均匀分布采样单个跨度,旨在生成长文本。
-
句子级目标:要求遮掩的跨度必须是完整的句子,多个跨度(句子)被采样以覆盖15%的原始token。这一目标旨在序列到序列任务中生成完整句子或段落。
-
4. 架构修改
-
统一的Transformer架构:GLM使用单一的Transformer架构,并进行了以下修改:
-
层归一化和残差连接顺序调整:这种调整对大型语言模型避免数值误差至关重要。
-
输出token预测的单线性层:简化了输出层结构。
-
GeLU激活函数:替代了传统的ReLU激活函数,增强了模型的非线性表达能力。
-
GLM的性能详细介绍
通过上述改进,GLM在多个任务上的表现均优于现有模型。以下是GLM在多任务设置下的性能表现:
-
NLU任务:在SuperGLUE基准测试中,GLM在多个子任务上的表现均优于BERT和其他现有模型。
-
文本生成任务:GLM在生成长文本时表现出色,特别是在编码上下文时使用双向注意力时,GLM的表现优于传统的单向GPT模型。
-
参数效率:GLM在使用较少参数的情况下,实现了优于BERT Large的性能,证明了其高效性和通用性。
多任务预训练
GLM在多任务设置下进行了评估,包括NLU(自然语言理解)、序列到序列(seq2seq)任务、填空任务以及零样本语言建模任务。
-
SuperGLUE基准测试:
-
GLM在SuperGLUE基准测试中的表现明显优于BERT和其他模型。在SuperGLUE开发集上,GLM在ReCoRD、COPA、WSC、RTE、BoolQ、WiC、CB和MultiRC等任务中的表现如下表所示:
-
模型 | ReCoRD F1/Acc. | COPA Acc. | WSC Acc. | RTE Acc. | BoolQ Acc. | WiC Acc. | CB F1/Acc. | MultiRC F1a/EM | 平均分 |
---|---|---|---|---|---|---|---|---|---|
BERTBase | 65.4 / 64.9 | 66.0 | 65.4 | 70.0 | 74.9 | 68.8 | 70.9 / 76.8 | 68.4 / 21.5 | 66.1 |
GLMBase | 73.5 / 72.8 | 71.0 | 72.1 | 71.2 | 77.0 | 64.7 | 89.5 / 85.7 | 72.1 / 26.1 | 70.7 |
BERTLarge | 76.3 / 75.6 | 69.0 | 64.4 | 73.6 | 80.1 | 71.0 | 94.8 / 92.9 | 71.9 / 24.1 | 72.0 |
UniLMLarge | 80.0 / 79.1 | 72.0 | 65.4 | 76.5 | 80.5 | 69.7 | 91.0 / 91.1 | 77.2 / 38.2 | 74.1 |
GLMLarge | 81.7 / 81.1 | 76.0 | 81.7 | 74.0 | 82.1 | 68.5 | 96.1 / 94.6 | 77.1 / 36.3 | 77.0 |
-
抽象摘要:
-
GLM在CNN/DailyMail和XSum测试集上的抽象摘要任务中也表现出色。
-
-
长文本生成:
-
GLM在长文本生成任务中表现优异。与GPTLarge相比,GLM在相同参数条件下表现更好,特别是在编码上下文时使用双向注意力时,GLM表现出显著优势。
-
消融研究
消融研究表明,GLM在处理可变长度空白方面具有明显优势。以下是不同变体的表现:
-
去掉跨度洗牌:
-
如果移除跨度洗牌(总是从左到右预测被遮掩的跨度),GLM在SuperGLUE上的表现显著下降。
-
-
哨兵标记替换:
-
使用不同的哨兵标记代替单一的[MASK]标记会导致模型性能下降,因为这会浪费一些建模能力。
-
-
二维位置编码:
-
移除二维位置编码会降低长文本生成的准确性和提高困惑度。
-
总结而言,GLM在自然语言理解和生成任务中有效地共享了模型参数,表现优于独立的BERT、编码器-解码器或GPT模型。
参考论文
GLM: General Language Model Pretraining with Autoregressive Blank Infilling。