论文理解【LLM】—— What Language Model Architecture and Pretraining Objective Work Best for Zero-Shot...


  • 一句话总结:作者对三种主流 LLM 模型架构(Causal Decoder, CD / Non-Causal Decoder, ND / Encoder-Decoder, ED)、两种主流预训练目标(Autoregress, FLM / Masked Language Modeling, MLM)、是否进行多任务微调等进行排列组合实验,找出使得 zero-shot 泛化性最佳的设定,结论如下
    1. 如果只做预训练,使用 FLM 目标训练的 CD 架构最优
    2. 如果进一步做多任务微调(MTF),使用 MLM 目标训练的 ED 架构最优
    3. ED 架构不适合做开放生成任务,CD / ND 之间则可以通过切换 Attention Mask 和训练目标(FLM / MLM)快速互相适配。作者提出一种在训练成本和性能之间折衷的训练方案 CD:FLM + ND:MLM + ND:MTF,可以同时得到一个最优的开放生成模型和一个接近最优的 Zero-shot 泛化模型,具体如下
      1. 首先用 FLM 目标训练预训练 CD,得到以上 1 中的最优开放生成模型
      2. 切换 Attention mask 使得 CD 变成 ND 模型,再用 MLM 目标继续预训练,得到一个 ND 模型
      3. 对 ND 模型进行多任务微调,得到类似以上 2 中的最优 zero-shot 泛化模型
  • 摘要:大型预训练 LLM 表现出 zero-shot 泛化能力,即它们可以执行各种没有明确训练的任务。然而目前各种 SOTA 模型之间的架构设计预训练目标存在显著差异,并且对这些因素的系统比较也很有限。在这项工作中,我们针对模型的 zero-shot 泛化能力,对训练方案(架构 & 预训练方法)进行了大规模对比评估。我们重点关注三种流行的 text-to-text 模型架构(CD / ND / ED)和两种不同的预训练前目标(FLM / MLM),并在有无多任务提示微调(MTF) 的情况下进行评估。我们为超过 1680 亿个代币训练了超过 50 亿个参数的模型,使我们的结论可以更可靠地扩展到更大尺度。实验表明,在 FLM 目标上训练的 CD 模型在纯自监督预训练后表现出最强的 zero-shot 泛化能力;经过多任务微调之后则是使用 MLM 目标上预训练的 ND 模型表现最好。因此,我们进一步考虑了跨架构和目标的预训练模型的适应方法。代码和检查点可在https://github.com/bigscienceworkshop/architecture-objective.上获得

1. 概念说明

1.1 模型架构

  • 目前主流的 Transformer 类模型可分为以下四类

    1. 自编码模型:Encoder-Only 结构,拥有双向的注意力机制,即计算每一个词的特征时都看到完整上下文。这种结构生成能力不佳,不适合 zero-shot 泛化,因此在本文中忽略

    2. 自回归模型:Causal Decoder-Only (CD) 结构,拥有单向的注意力机制,即计算每一个词的特征时都只能看到上文,无法看到下文。单向注意力导致其对序列特征的表示能力相比 Encoder 较弱,但同时它也产生了一个更简单的架构,自然适配于自回归下一步预测的 FLM 训练目标。基于 CD 架构的 GPT 系列模型在一些列序列生成任务上表现良好

      • 不要求给出明确的条件序列,对于开放生成任务更自然,可以一直自回归生成句子
      • 要求条件生成时(比如遵循指令进行条件生成时),将 prompt 作为前驱序列输入模型,自回归生成答案
      • 经过指令微调(多任务微调),CD 模型可以处理各类 NLP 任务
    3. 序列到序列模型:Encoder-Decoder (ED) 结构,Encoder部分使用双向的注意力,Decoder部分使用单向注意力。相比 CD,直觉上 EN 模型的条件序列特征提取能力可能更强,但由于 Decoder 生成时总是要参考 Encoder 给出的特征条件,其不太适合于开放生成任务,更适合文本摘要、文本分类、问答等带有指令的任务

      • 求给出明确的条件序列作为 Encoder 输入,对于指令任务更自然,但是不太适用于开放式生成任务,因为后者不容易自然地划分出固定的指令部分
      • 要求条件生成时(比如遵循指令进行条件生成时),将 prompt 输入 Encoder,在 Decoder 自回归生成答案
      • 经过指令微调(多任务微调),ED 模型也可以处理各类 NLP 任务,但需要指定各个任务的输入输出格式。本文和另一个大规模排列组合实验 T5 都发现 ED 对于新问题的 zero-shot 泛化性能更强。T5 设计的输入输出格式为 “前缀任务说明 + 指令”,如下图所示
        在这里插入图片描述
    4. 前缀模型:Non-Causal Decoder-Only (ND) 结构,也叫 prefix decoder-only 模型,它对输入序列的前缀部分使用双向注意力机制,后半部分使用单向注意力机制,前缀片段内部的所有 token 都能看到完整上下文,其他部分只能看到前文。一方面这可以看作 ED 的一个变体;另一方面其代码实现上相比 CD 模型仅有 Attention Mask 设置不同

  • 本文主要关注 CD、ND 和 ED 三种结构,其中 ED 有独立的两个独立的 Transformer 堆叠结构,CD 和 ND 都只有一个 Transformer 堆叠结构,三者的 attention mask 示意图如下
    在这里插入图片描述

    • ND 和 ED 的主要区别在于:前者对编码部分的 attention 是在每一层 Transformer Block 内部施加的,即第任意一层 Block 中的解码部分片段可以关注到该层的前缀片段;后者则是 Decoder 中每层 Block 都能只能关注到 Encoder 最后一层的编码片段结果
    • ND 和 CD 非常类似,它们能执行的任务类型也差不多,下图更清晰地指示了二者的不同
      在这里插入图片描述
  • 总结一下各类结构的经典模型和主要适用任务

    模型类型预训练目标常用预训练模型主要适用任务
    Encoder-onlyMLMALBERT,BERT,DistilBERT,RoBERTa文本分类、命名实体识别、阅读理解
    Decoder-onlyFLMGPT,GPT-2,Bloom,LLaMA文本生成
    Encoder-DecoderPLMBART,T5,Marian,mBART文本摘要、机器翻译
    Prefix-DecoderPLMChatGLM、ChatGLM2、U-PaLM文本摘要、机器翻译、文本生成

    注意这里的适用任务并不绝对,比如 CD 配合指令微调,在参数规模大了之后其实什么都能做;用 MLM 目标预训练的模型,经过 PLM 或 FLM 继续训练后,也能做翻译和生成等任务,反之亦然

  • 顺带一提,相同参数量的 Decoder-only 模型 (CD/ND),其计算量为 Encoder-Decoder 模型 (ED) 的两倍(假设 Encoder 和 Decoder 各占一半参数),具体分析参考 序列模型(3)—— LLM的参数量和计算量

1.2 预训练目标

  • 不同的模型结构适用不同的预训练目标,主要有以下几种
    在这里插入图片描述

    1. FLM (full language modeling):标准语言模型训练目标,基于上文预测下一个 token,适用于 CD 模型
    2. PLM (prefix language modeling) :一段话分成两截,前一截作为输入,预测后一截。适用于 ED 模型和 ND 模型
    3. MLM (masked language modeling):遮盖住文本中的一部分 token,让模型通过上下文猜测遮盖部分的 token。这是一种经典的去噪特征学习目标,原本是专门为作为自编码器的 Encoder-Only 模型设计的,但是经过调整后也可以适用于 ED 模型和 ND 模型
      • T5 论文给出了一种将 MLM 用于 ED 模型的经典方案,它将原始序列破坏后输入 Encoder,然后要求 Decoder 自回归输出被破坏的部分从而实现去噪,如下图所示
        在这里插入图片描述
        注意这样预训练的模型不能直接执行 NLP 任务,因为其输出并不是正常的自然语言,还需执行 1.4 节的多任务微调
  • 当前最流行的生成式序列模型训练方案是 CD:FLM 而非 ED:PLMED:MLM,其中可能包含多方面原因,比如

    • 注意力满秩的问题,双向attention的注意力矩阵容易退化为低秩状态,而 causal attention 的注意力矩阵是下三角矩阵,必然是满秩的,建模能力更强;
    • 预训练任务难度问题,纯粹的 CD + FLM 预训练,每个位置所能接触的信息比其他架构少,要预测下一个token难度更高,当模型足够大,数据足够多的时候,CD 模型学习通用表征的上限比 Encoder + MLM 更高
    • 在 in-context learning 场景下,prompt 信息可以直接地作用于 CD 模型的每一层的参数,可以视为对一种隐式微调
    • 单向 attention 具有隐式的位置编码功能,打破了transformer的位置不变性,而带有双向attention的模型,如果不带位置编码,双向 attention 的部分token可以对换也不改变表示,对语序的区分能力天生较弱
    • 关于 CD 类模型的研究更多,配套工具和优化方案更完善,形成了路径依赖

    这些理论分析不一定有足够的说服力,比如第一个注意力满秩问题就在 【大模型慢学】GPT起源以及GPT系列采用Decoder-only架构的原因探讨 这篇文章中被驳斥,另外本文和 T5 的排列组合实验都说明 ED 在新任务上的 zero-shot 泛化能力更强。我个人理解如下

    1. 相比 ED,CD 不要求划分显式的条件序列部分,因此自由度更大,更适合做开放式生成,这种特性可能和现在 LLM 常用于的开放聊天场景更契合
    2. 仅从特征提取的角度看,ED 提取特征的能力应该更强,因为它计算的每个 hidden state 都参考了前文和后文的信息,相比 CD 仅能从前文汇聚特征一定是更丰富的。所有非开放式的、依据指令要求的任务,某种程度上都可看作建立 指令 / 问题特征 → 答案句子 指令/问题特征 \to 答案句子 指令/问题特征答案句子 的映射,这时使用独立 Encoder 模型提取到的更好的特征应该有利于学到更好的映射关系

1.3 模型适配(Model adaptation)

  • 适配adaptation 指以不同的目标和/或模型架构扩展预训练的过程。和微调不同,模型适配时不使用新的下游任务数据,只使用额外的预训练数据。作者在本文中考虑了两种适配方案
    1. Language modeling adaptation (LM-A):先使用 MLM 预训练 ED 或 ND 模型(专注于特征提取),然后使用 PLM 或 FLM 目标将其扩展训练为 ND 或 CD 模型(专注于生成)
      • 该方法已被广泛用于将 MLM 预训练的 ED 模型转换为更好的生成模型(如 T5)
      • 本文中作者通过修改 attention mask,将 ND:MLM 适配到 CD:FLM
    2. Non-causal masked language modeling adaptation (NC-A):先使用 FLM 预训练 CD 模型开始(专注于生成),然后使用 MLM 目标将其扩展训练为 ED 或 ND 模型(专注于特征提取)
      • 本文中作者通过修改 attention mask,将 CD:FLM 适配到 ND:MLM

1.4 多任务微调(Multitask finetuning)

  • 多任务微调Multitask finetuning(MT-F):也称为指令微调,是一种利用专门构造的 prompt task 数据集微调模型,使模型可以更好地遵循输入指令引导生成符合指定要求的文本的技术。实验表明,多任务微调可以有效增强模型的 zero-shot 泛化能力
  • 通常假设预训练后模型已经掌握了足够的知识,但遵循指令的能力不足(比如 CD 模型预训练后只有开放式续写能力)。 指令微调的核心目标是增强模型遵循提示引导的能力,旨在完成具体任务,如生成特定主题的文本、回答特定问题等。具体而言,通常遵循以下步骤
    1. 构造数据集:首先需要为每个任务提供一组具有多样性的指令集,指令可以是单词、短语、完整的句子或指令模板。通过把指令、问题输入和目标回复拼接在一起来构造数据样本,并构成数据集
    2. 微调模型:微调过程中,将指令(模板)作为 prompt,微调模型使其输出目标回复
    3. 目标任务:微调后,用和 1 中类似的规则,对要评估的目标问题编写指令(模板)作为 prompt,引导模型回答目标问题
  • 下面给出一些例子
    • T5 使用一个简单的前缀任务说明作为指令,如下所示进行微调
      在这里插入图片描述
    • T0 没有设置显式的指令本文,直接用多任务问题输入进行微调 在这里插入图片描述

2. 实验设定 & 结论

2.1 实验设置

  • 为了探索最优 LLM 训练方案,作者根据下图开展排列组合实验
    在这里插入图片描述
  • 实验细节如下
    1. 尽量保持每种设定下,整个流程(含预训练、微调、模型适配等)的计算成本类似
    2. 预训练使用 C4 数据集、Adafactor 优化器、反平方根学习率调度。上下文长度设为 626,batch size 设为 2048,详细的预训练超参数如下
      在这里插入图片描述
      使用 T5 的辅助损失 L ( Z ) = 1 0 − 4 ∗ l o g 2 ( Z ) L(Z)=10^{−4}∗log^2 (Z) L(Z)=104log2(Z) 来稳定训练。三种预训练目标细节如下
      1. 对于 FLM 目标,在所有 626 个 token 上计算损失
      2. 对于 PLM 目标,首先在 [ 1 , 626 ] [1,626] [1,626] 之间选择一个随机分裂点划分前缀和后缀,通过 attention mask 在后缀部分计算损失(平均 50% 的 token)
      3. 对于 MLM 目标,使用类似 T5 的遮盖方案,遮盖 15% 的输入 token,遮盖片段的平均跨度为 3,这样大约有512个输入令牌和114个目标 token,仅在目标 token 位置计算损失(平均 18% 的 token)
    3. 使用类似 T0 的方案进行多任务微调,超参数如下
      在这里插入图片描述
  • 作者使用两个测试集评估模型的 zero-shot 泛化能力,二者都是用 prompt 的方式进行测试,即直接构建 prompt 输入给预训练模型,让模型生成预测结果。两个测试集不同的地方在于
    1. T0-Eval 为每个任务提供多个 prompt,用所有 prompt 中位数精度在所有 11个数据集上的平均值作为性能度量
    2. EAIEval 为每个任务只提供一个 prompt,直接用 31 个数据集中获得的平均精度作为性能度量

2.2 结论

2.2.1 只进行预训练

  • 只做预训练时,CD:FLM 组合具有最好的 zero-shot 泛化性能,这和现在的主流做法一致
    在这里插入图片描述

2.2.2 预训练 + 多任务微调

  • 做预训练 + 多任务微调时,ED:MLM + ED:MTF 组合具有最好的 zero-shot 泛化性能,这和 T5 的实验结果一致
    在这里插入图片描述
    如图是两个测试集的实验结果,左中右分别是 Baseline、使用 PLM/FLM 预训练+微调的模型和使用 MLM 目标预训练+微调的模型。可见,最右边 MLM 组模型性能大幅超过中间使用 FLM/PLM 训练的模型,其中 ED:MLM+ED:MTF 是最好的

2.2.3 模型的跨架构/跨目标适配

  • 经过多任务微调后 ED 模型的 zero-shot 泛化性能最好,但这种模型很不方便,因为它不适合做开放生成任务。为此,作者使用不同的架构和/或预训练目标来扩展预训练,最终目标是以最低成本有效地获得两种不同的模型:
    1. “目标模型1”:用于高质量语言生成的模型。根据 2.2.1,这是一个 CD:FLM 模型
    2. “目标模型2”:经过多任务微调后 zero-shot 泛化性能最佳的模型,它应该在 “目标模型1” 的基础上得到
  • 作者针对 CD:FLMND:MLM 两种设定之间的相互转换展开实验。这两种设定的相互适配并不复杂,只需要切换 attention mask 和训练使用的数据即可。实验结果如下图所示
    在这里插入图片描述
    可见,ND:MLM + CD:FLM(LM-A)相比从头训练提速 1.6 倍;CD:FLM + ND:MLM(NC-A)相比从头训练提速 3.3 倍,两种通过扩展预训练进行模型适配的方法都可行,且能有效加快收敛速度
  • 利用以上结论,作者展开实验,尝试从 “目标模型1”(CD:FLM)开始得到最好的 “目标模型2”,即经过 MTF 后 zero-shot 泛化性能最好的模型,实验如下
    在这里插入图片描述
    可见,CD:FLM + ND:MLM + ND:MTF 方案最佳

2.2.4 其他结论

  • 处理以上三个主要结论外,作者实验过程中还得到一些小结论
    1. 对于各类模型架构,在多任务微调时施加 dropout 可以有效提升 zero-shot 泛化性能
      在这里插入图片描述
    2. 多任务微调前,将 MLM 模型通过扩展预训练适配成 FLM 模型,会导致微调后性能下降
      在这里插入图片描述
    3. 模型适配 ED:MLM + CD:FLM 会导致性能下降,即无法达成从头训练 CD:FLM 的性能
      在这里插入图片描述
      这里作者将使用 168B token 预训练的 ED:MLM 模型扩展预训练为 CD:FLM,具体做法是将空输入输入 Encoder,并在 Decoder 上使用 FLM 目标进行训练。导致性能损失的原因可能是
      1. Decoder 在预训练后具有了融合 Encoder 输出特征进行生成的归纳偏置,这种归纳偏置对于仅基于 Decoder 自身提取的前驱序列特征进行自回归生成是有害的,相当于有害的初始化
      2. 注意到适配训练早期其损失下降是比从头训练快的,这可能说明 ED:MLM 预训练还是使其 Decoder 具有了一定的通用知识,比如了解了语法、词汇等,但是深层次的归纳偏置难以快速调整,这种有害的初始化导致模型后期收敛速度下降
      3. 和 ED:MLM 相比,ND:MLM 能更好地扩展预训练为 CD:FLM,这可能是因为 ND 模型到 CD 模型的 LM-A 过程仅调整 attention mask,而 ED 模型到 CD 模型的 LM-A 过程直接去掉了 Encoder 部分的 attention head,这种参数缺失使得 LM-A 过程中 ED 模型迁移困难

3. 总结

  • 本文是类似 T5 的大规模排列组合实验文章,最终找到最好的模型设计和训练方式。虽然可能没有特别创新的地方,但是得到的结论是非常非常宝贵的,对于我们自己设计实验能起到很好的借鉴作用
  • 这大半年做了一些模型预训练工作,虽然最大规模没有超过 600M 的,但也已经感觉到大模型训练的工程难度之大,成本之高,多看一些工程性质的文章还是很有必要的
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端FFF

所有博文免费阅读,求打赏鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值