跳转至

里程碑模型

BERT 模型的结构和预训练任务是什么?它开启了什么范式?

模型结构

BERT(Bidirectional Encoder Representations from Transformers)是一个多层双向 Transformer 编码器。主要结构特点:

  • 纯粹由 Transformer 的 Encoder 堆叠而成(BERT-base: 12 层, 12 头, 隐层维度 768;BERT-large: 24 层, 16 头, 1024 维)。

  • 利用自注意力机制的全连接拓扑,能够同时关注左右两侧的上下文(双向)。

  • 输入表示是三种嵌入的和:词元嵌入(WordPiece 分词)、位置嵌入(学习式)和段嵌入(用于句子对任务)。

预训练任务

BERT 设计了两个自监督预训练任务:

  1. 掩码语言模型(Masked Language Model, MLM):随机遮盖输入中 15% 的 token,其中 80% 替换为 [MASK],10% 替换为随机 token,10% 保持不变。模型基于双向上下文预测被遮盖的原始 token。这迫使模型学习深层的双向表征。

  2. 下一句预测(Next Sentence Prediction, NSP):输入两个句子 A 和 B,50% 的情况下 B 是 A 的真实下一句,50% 是随机句子。模型用 [CLS] token 的输出进行二分类,判断 B 是否为 A 的下一句。旨在学习句子间关系。

开启的范式

BERT 开创了 “大规模预训练 + 微调” 的 NLP 范式。通过在巨量无标签语料上进行预训练,模型获得通用的语言理解能力,然后在下游任务(分类、问答、推理等)上利用少量标注数据进行微调,即可达到当时最优水平。这种两阶段模式(pre-training then fine-tuning)取代了之前训练任务专用模型的方式,成为 NLP 的基础方法论,并深刻影响了整个深度学习领域。


RoBERTa 相比 BERT 做了哪些改进?动态掩码和大 batch 的意义。

RoBERTa(Robustly optimized BERT approach)并没有改变模型结构,而是通过精心的训练策略和超参数优化大幅提升了 BERT 的性能。主要改进包括:

  1. 动态掩码
  2. BERT 在数据预处理时对每个样本只执行一次静态掩码,之后该样本在多个 epoch 中被重复使用时掩码模式不变。
  3. RoBERTa 每次将序列输入模型前才动态生成掩码,同一个句子在不同 epoch 中看到不同的掩码模式。这增加了训练数据的有效多样性,尤其对大语料训练更有益。

  4. 移除 NSP 任务

  5. 实验表明,仅使用 MLM(且输入不限于句子对,而是填充长连续文本)比 MLM + NSP 效果更好或相当。NSP 反而限制了上下文长度并引入噪声。RoBERTa 丢弃 NSP,改为从文档中连续采样完整段落(FULL-SENTENCES),并调整序列长度使其尽可能跨句子边界,以建模更长程的依赖。

  6. 更大 batch size 和更长的训练

  7. BERT-base 使用 256 的 batch size,RoBERTa 将其提升至 8K,并配合更大的学习率。大 batch 提供了更稳定的梯度估计,有利于使用更大的学习率,并充分利用大规模并行硬件加速。
  8. 同时在显著更多的数据(160GB 语料,远超 BERT 的 16GB)上进行了更长时间的训练。大 batch 与大数据量协同,使模型更好地收敛,防止在小批量下陷入局部极小。

  9. 字节级 BPE 分词

  10. 替换 WordPiece 为字节级 Byte-Pair Encoding(BBPE),词表扩大到 50K 子词,可处理任意输入而不产生未登录词,并减少 token 化过程中的语义损失。

  11. 动态调整学习率与预热

  12. 使用线性衰减、更长的预热步数等优化策略,使训练更稳定。

意义:RoBERTa 证明了精心设计的训练规程与超参数对模型质量的影响甚至超过模型架构创新。它把 BERT 的潜力发挥到极致,成为后续预训练模型训练的标准化参考。


ALBERT 如何通过参数共享和嵌入分解来降低参数量?性能变化如何?

ALBERT(A Lite BERT)通过两种关键技术大幅度压缩模型参数量,以解决 BERT 内存占用大、难以扩展的问题。

参数降低方法:

  1. 跨层参数共享
  2. ALBERT 将所有 Transformer 层的参数(自注意力的 Q、K、V、FFN 权重)全部共享。即整个网络只有一组层参数,重复计算 L 次。这使得参数量与层数几乎无关,层数增加只增加计算量而参数量几乎不增。
  3. 例如,ALBERT-xxlarge 有 12 层参数共享,总参数量远小于同深度的 BERT,却能利用更深网络(如 24 层)提供更强的表征能力。

  4. 因子化嵌入参数化

  5. 原始 BERT 中,词嵌入矩阵的维度直接等于隐藏层维度 HH(如 768),这在词表很大时占用大量参数。
  6. ALBERT 将嵌入矩阵分解为两个小矩阵:先用一个低维嵌入 EE(如 128)表示 token,再通过线性投影映射到隐藏维度 HH。参数量从 V×HV×H 降为 V×E+E×HV×E+E×H,当 E≪HEH 时节省显著(如 80% 以上)。

性能变化:

  • 在同参数量下,ALBERT 的性能明显不如 BERT(因为共享限制了层多样性)。但在同等计算量和显存限制下,由于参数效率极高,可以堆叠更深的层,ALBERT-xxlarge(12 层参数共享,总 235M 参数,但计算量极大)在多个基准上达到了与 BERT-large 相当甚至更优的性能,同时模型参数仅为其 1/18。

  • 代价是推理速度:参数共享不减少每层的计算 FLOPs,因此推理时间与层数成正比,需要更高吞吐的场景下速度更慢。


ELECTRA 的生成器-判别器结构是什么?为什么它比 MLM 更高效?

ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)提出了一种更高效的预训练框架,由生成器和判别器两个网络构成。

结构:

  • 生成器 G:通常是一个小型的 MLM 模型(如一个小 BERT)。对输入中被随机 mask 的 token,G 预测原词,生成替换后的“被破坏”的句子。

  • 判别器 D:主要的预训练模型(Encoder)。对于输入句子中的每一个 token,D 需要判断该 token 是来自原始句子还是由生成器替换的“假” token。这是一个二分类任务(替代 token 检测)。

训练过程:G 和 D 联合训练。G 用 MLM 损失训练,D 用二分类交叉熵(针对所有 token,不仅仅是 mask 位置)训练。生成器将难以区分的难例提供给判别器。

为什么比 MLM 高效:

  • 标准 MLM 只在 15% 的被 mask 位置上计算损失,其余 85% 的 token 被浪费。ELECTRA 的判别器对所有输入 token都进行监督,相当于获得了大约 6 倍(1/15%)的监督信号密度,极大提高了数据效率。

  • 实验表明,在相同的计算量和数据下,ELECTRA 学习到的表征质量远高于 MLM。例如,一个 ELECTRA-base 模型可以媲美甚至超越 RoBERTa-large 的性能,而训练成本只有其 1/4。

  • 这种“替换 token 检测”任务比纯生成更难,迫使模型学习更细致的上下文表示。


GPT 系列从 GPT-1 到 GPT-4,核心的缩放路径和能力提升体现在哪些方面?

GPT 系列遵循一致的自回归语言模型框架,核心缩放路径表现为模型规模、数据规模和训练策略的阶梯式扩展,并涌现出质变的能力。

GPT-1 (2018)

  • 12 层 Transformer Decoder,1.17 亿参数。验证了无监督预训练 + 有监督微调的效果,引入“通用语言模型”概念。

GPT-2 (2019)

  • 参数扩大到 15 亿(48 层)。核心创新:强调零样本学习,无需微调即可通过 prompt 完成多任务。展示了规模带来的语言连贯性提升,并探索了多任务能力的涌现。

GPT-3 (2020)

  • 参数暴增到 1750 亿(96 层,12288 维)。引入上下文学习:在 prompt 中提供少量示例(Few-shot),模型即可直接完成任务,无需梯度更新。能力开始质变:可执行翻译、算术、代码生成等。

GPT-4 (2023)

  • 多模态模型(图文输入),参数规模推测超万亿。能力提升:
  • 推理和考试:在律师资格、生物奥赛等专业考试中超过人类平均水平。
  • 指令跟随和安全性:通过 RLHF(人类反馈强化学习)和规则建模,显著提高对齐程度。
  • 长上下文和多语言:支持超长窗口和多语言优质生成。
  • 工具使用与 Agent:能够自主调用计算器、浏览器、API 等。

缩放路径核心是:模型参数 + 数据 + 训练计算的指数级增长,带来性能的平滑提升和能力的“涌现”,继而通过后训练对齐(RLHF)使其可安全地部署为助手。


GPT-2 为什么强调零样本学习?它的多任务能力是涌现的吗?

零样本学习的强调

GPT-2 的论文标题是《Language Models are Unsupervised Multitask Learners》。它指出,大规模语言模型如果训练在足够多样的 web 文本上,将隐式地学会执行许多 NLP 任务,只要将任务描述作为 prompt 条件输入即可,无需任何特定任务的有标签数据。因此 GPT-2 强调零样本,旨在证明语言模型本身就可以被视为多任务学习器,语言建模的目标与任务求解的边界模糊。

多任务能力是涌现的吗

GPT-2 的多任务能力更多是规模带来的平滑进步,而非严格意义上的“涌现”。在 GPT-2 的 15 亿参数规模下,零样本翻译、摘要、问答等能力虽然远超此前模型,但整体性能仍较差,并且随着模型尺寸增大呈现连续提升的趋势。真正的“涌现”现象(能力从不存在到突然存在)在 GPT-3 中才被明确观察到,例如在 175B 模型上,算术能力和上下文学习能力出现了非线性的质变。因此,GPT-2 可视为涌现前夜,它奠定了规模扩展的方向。


GPT-3 的上下文学习(In-context Learning)是怎样的?为什么不需要微调?

上下文学习机制

上下文学习是指将少量带标签的示例(demonstrations)以自然语言的形式拼接到推理 Prompt 中,然后让模型直接根据模式输出新问题的答案,无需对模型参数进行任何梯度更新。

例如:在情感分类任务中,Prompt 写为 “Review: ... Sentiment: Positive. Review: ... Sentiment: Negative. Review: [Target] Sentiment:”,模型会自动完成 “Positive/Negative”。

为什么不需要微调

  1. 大规模预训练时,模型在无数网页上见过类似的输入-输出模式(如列表、表格、问答对)。这相当于在训练中隐式地执行了元学习(meta-learning):模型学会了从上下文序列中识别模式并类比应用。

  2. Transformer 的自注意力机制能够将上下文中的示例信息与当前查询关联,形成一个内部“工作记忆”,在正向传播中执行近似于梯度优化的联想推理。

  3. 因此,GPT-3 仅凭条件概率 P(answer∣context)P(answer∣context) 就能零样本或少量样本泛化,无需外部的梯度更新和存储参数。


T5 如何将所有 NLP 任务转化为文本到文本的格式?这种统一的优势是什么?

文本到文本统一框架

T5(Text-to-Text Transfer Transformer)将所有 NLP 任务重铸为“输入文本 → 输出文本”的形式:

  • 分类:如情感分析,输入 “sst2 sentence: This movie is great”,输出 “positive”。

  • 翻译:输入 “translate English to German: Hello”,输出 “Hallo”。

  • 摘要:输入 “summarize: [文章]”,输出摘要。

  • 问答:输入 “question: [Q] context: [C]”,输出答案文本。 模型采用 Encoder-Decoder 结构,编码器处理输入文本,解码器自回归生成目标文本,所有任务共享同一架构、同一损失函数(交叉熵)。

统一优势

  • 极简流水线:无需为不同任务设计特定的分类头、损失函数或数据处理管道,所有任务只用同一套代码。

  • 多任务联合训练:可以在所有任务上混合数据训练单一模型,促进知识共享和正迁移。

  • 便于扩展:无论增加新任务还是新模态,只要能将输入输出转换为文本,就能纳入同一框架。

  • 预训练目标自然统一:T5 将 span corruption 去噪作为预训练任务,也与下游格式保持一致。


BART 的去噪自编码器预训练是如何设计的?适合哪些生成任务?

去噪自编码器预训练

BART(Bidirectional and Auto-Regressive Transformer)是一个标准的 Encoder-Decoder 模型。其预训练目标是还原被破坏的文本:

  1. 对输入文本施加多种噪声函数(任意顺序):token 遮蔽、token 删除、文本填充(将连续 span 替换为单个 [MASK])、句子重排、文档旋转等。

  2. Encoder 接收被破坏的文本并编码成潜在表示,Decoder 自回归地生成原始未破坏文本。 这种训练结合了双向编码(编码器看到所有破坏文本)和自回归解码,迫使模型学习语言的整体结构和生成能力。

适合的生成任务

BART 特别擅长序列到序列的生成任务,因为它天然就是为生成而设计的。微调后表现优异的任务包括:

  • 文本摘要(CNN/DailyMail, XSum)

  • 机器翻译(作为预训练 Decoder 初始化)

  • 对话生成

  • 文本复述 它可以视为 BERT 和 GPT 的泛化:编码器类似 BERT 的双向,解码器类似 GPT 的自回归,因此对理解和生成任务都友好,但尤以生成见长。


XLNet 的排列语言模型是如何结合自回归和自编码优点的?

排列语言模型

XLNet 使用自回归框架,但为了捕获双向上下文,它引入了对输入序列进行随机排列的操作。其核心思想:

  • 对于长度为 T 的序列,采样一个排列顺序 z,然后按照该顺序分解联合概率 P(x)=∏t=1TP(xzt∣xz<t)P(x)=∏t=1TP(xztxz<t)。

  • 在预测某个位置 token 时,模型只能看到排列中排在它前面的 token(包括两侧的上下文信息,取决于排列),从而同时获得了双向信息。

  • 具体实现时,不实际打乱输入顺序,而是通过双流注意力(内容流和查询流)来实现:内容流用于编码上下文完整信息,查询流只编码位置但看不到当前 token 的内容,以满足自回归的一致性。

结合优势

  • 避免 MLM 的独立假设:BERT 的 MLM 假设被遮 token 之间相互独立,而 XLNet 的自回归分解捕获了 token 间的依赖关系。

  • 双向上下文:排列保证了模型期望上能见到所有可能的上下文组合,具备了自编码模型的优点。

  • 因此 XLNet 在多个基准上超越了 BERT,但计算成本较高。


对比 BERT 和 GPT 系列,为何现在 Decoder-only 成为主流?历史和技术原因是什么?

历史脉络

BERT(2018)双向编码器引爆 NLP,但其 fine-tuning 范式需要为每个下游任务准备特定头部和数据。GPT 系列(2018~)坚持 Decoder-only 自回归路线。GPT-3 将上下文学习推向实用,ChatGPT(2022)和 GPT-4 凭借强大生成和指令跟随能力爆火,引发业界全面拥抱 Decoder-only 架构。

技术原因

  1. 统一的生成式能力:Decoder-only 模型天然支持文本生成,并且随着规模扩大,涌现出推理、代码、工具使用等高级能力,而 Encoder 模型不具备生成能力,应用面窄。

  2. 上下文学习取代微调:超大 Decoder 模型通过上下文学习即可解决各类任务,省去繁琐的微调流程,使单一模型可以即时服务无限任务。

  3. 对齐训练(RLHF)友好:Decoder-only 的序列生成方式与人类对话、指令跟随等对齐训练流程完美契合,易于构建对话助手。

  4. 工程与生态:Decoder-only 模型的训练和推理架构更单一(全是生成式),使得 KV-cache、FlashAttention、Continuous batching 等优化技术栈可以高度聚焦和标准化,形成了以 GPT 系列为中心的强大开源生态(LLaMA、Mistral、Qwen 等)。

  5. 参数效率:Decoder-only 没有独立的 Encoder,在同等参数量下可以堆叠更深的层,处理长序列时运算分配更均衡。

简言之:Decoder-only 统一了理解和生成,释放了规模涌现的潜能,并拥有更简洁的推理优化路径,因此在实用性和性能上胜出。


Transformer 从 2017 年至今的重要模型演进时间线,并标注关键创新。

查看内嵌表格

这种演进表明,在追求效率、规模和通用性的道路上,注意力机制本身和预训练范式都在不断被提炼和革新。