GPT、BERT、T5 的核心差异是什么?
GPT、BERT、T5 的核心差异是什么?
一句话核心:GPT、BERT、T5 是基于同一 Transformer 内核的三种不同架构范式,它们的根本区别在于使用 Transformer 的哪部分结构、注意力机制的方向以及预训练目标,这直接决定了它们在理解与生成任务上的不同表现,是 NLP 面试中必考的“架构选择”基础题。
核心概念(术语表)
- Transformer:一种基于自注意力机制的序列模型架构,包含编码器(Encoder)和解码器(Decoder)。
- Encoder-only:仅使用 Transformer 的编码器部分,擅长深度理解输入序列(双向注意力)。
- Decoder-only:仅使用 Transformer 的解码器部分,擅长从左到右生成序列(单向掩码注意力)。
- Encoder-Decoder:同时使用编码器和解码器,擅长将一个序列转换为另一个序列(如翻译、摘要)。
- 自回归语言模型:从左到右逐个预测下一个词(token)的模型,GPT 是其代表。
- 掩码语言模型:随机掩盖输入中的部分词,并让模型去预测这些被掩盖的词,BERT 是其代表。
- 文本到文本框架:将所有 NLP 任务统一建模为“输入文本 → 输出文本”的格式,T5 是其代表。
历史背景 / 来源
- BERT:由 Google 于 2018 年在论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》中提出,旨在通过双向上下文表示解决单向模型的语义理解局限。
- GPT:由 OpenAI 提出。GPT-1(2018)奠定了“预训练+微调”范式;GPT-2(2019)展示了零样本能力;GPT-3(2020)以 1750 亿参数和少样本学习(few-shot)震撼业界;后续演进催生了 ChatGPT。
- T5:由 Google 于 2019 年在论文《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》中提出,核心思想是将所有文本任务统一成“文本到文本”格式,使用 Encoder-Decoder 架构,并系统研究了预训练策略。
工作原理 / 核心机制(详细讲解)
- 整体思路:三者均以 Transformer 为核心,但通过组合不同的模块并设计不同的预训练任务,塑造了不同的能力倾向:BERT 擅长“理解”,GPT 擅长“生成”,T5 擅长“转换”。
- 输入/输出与结构:
- BERT(Encoder-only):输入为带有掩码标记(
[MASK])的句子,输出为每个位置对应的上下文语义向量(用于填空或分类)。 - GPT(Decoder-only):输入为一个文本序列(或上文),输出为下一个词(token)的概率分布(用于续写或对话)。
- T5(Encoder-Decoder):输入为带破坏的原始文本(如“Thank you
<X>me to your party<Y>week”),输出为重建后的完整文本(“Thank you for inviting me to your party last week”)。
- BERT(Encoder-only):输入为带有掩码标记(
- 核心步骤详解(以预训练为例):
- BERT 的预训练:
- 第一步(输入构造):随机选取语料中 15% 的 token 进行破坏。
- 第二步(破坏策略):对于被选中的 token,80% 替换为
[MASK],10% 替换为随机词,10% 保持不变。 - 第三步(预测目标):模型需根据双向上下文,预测出被破坏位置原来的 token(掩码语言模型任务)。
- 第四步(辅助目标):同时训练一个二分类任务,判断句子 B 是否是句子 A 的下一句(NSP 任务)。
- GPT 的预训练:
- 第一步(输入构造):将文本序列输入模型。
- 第二步(注意力约束):解码器中的自注意力使用掩码,确保每个位置只能看到它之前的 token(单向)。
- 第三步(预测目标):模型在每个位置预测下一个 token(自回归语言模型任务)。
- T5 的预训练:
- 第一步(输入构造):对输入文本进行“破坏”(Corrupting),例如随机选取文本中 15% 的连续片段(span),并用一个特殊的哨兵标记(
<X>)替换。 - 第二步(破坏策略):采用“小段替换”策略,被破坏的文本长度通常为 3 个 token 左右,破坏百分比为 15%。
- 第三步(预测目标):模型的输出需要将这些哨兵标记替换为原始被破坏的内容,从而重建整个文本(文本重建任务)。
- 第一步(输入构造):对输入文本进行“破坏”(Corrupting),例如随机选取文本中 15% 的连续片段(span),并用一个特殊的哨兵标记(
- BERT 的预训练:
关键知识点(15 条 bullet,每条都要具体)
- 结构差异:BERT 用 Encoder,GPT 用 Decoder,T5 用 Encoder-Decoder。
- 注意力方向:BERT 可双向看全文,GPT 只能看前文(左到右),T5 编码器双向、解码器单向。
- 预训练目标:BERT 是“完形填空”(MLM),GPT 是“续写下一个词”(CLM),T5 是“破坏与重建”。
- 任务形式:BERT 输出每个 token 的向量(用于分类/抽取),GPT 输出下一个 token(用于生成),T5 输出完整目标文本。
- 模型规模代表:BERT-base 有 12 层、110M 参数;GPT-1 参数量与之相当(1.17 亿)。
- 模型规模飞跃:GPT-2 达到 15 亿参数,GPT-3 跃升至 1750 亿参数,训练数据达 45TB。
- T5 的具体策略:采用 BERT-style 预训练法、小段替换破坏策略、15% 破坏比、破坏片段长度为 3。
- BERT 的破坏细节:15% 被选中的 token 中,80% 替换为
[MASK],10% 随机替换,10% 保留原词。 - 应用场景分化:BERT 擅长分类、匹配、抽取;GPT 擅长对话、写作、代码生成;T5 擅长翻译、摘要、问答转换。
- 核心架构选择根源:使用 Encoder-only 适合理解任务(双向语义),Decoder-only 适合生成任务(单向连贯)。
- T5 的“统一性”:所有任务(翻译、摘要等)都转化为“输入文本 + 任务前缀 → 输出文本”的统一格式。
- ChatGPT 的核心:基于 GPT 架构,但通过 RLHF(人类反馈强化学习)对齐了人类意图,包含监督微调(SFT)、奖励模型(RM)、PPO 优化三个阶段。
- GPT 的少样本学习:GPT-3 证明,在不微调的情况下,仅通过提供少量示例(few-shot)或任务描述(zero-shot),大模型也能执行新任务。
- 参数效率:BERT 和 GPT-1 参数规模相近(~1.1 亿),但架构选择导致能力迥异。
- 训练数据量级:GPT-3 使用了 45TB 的文本数据进行预训练,这是其强大泛化能力的基础。
应用场景(3-5 个真实例子)
- 场景 1:Google 搜索。利用 BERT 的双向理解能力,对搜索查询和网页内容进行更精准的语义匹配,提升了长尾搜索的准确率。
- 场景 2:OpenAI 的 ChatGPT。作为基于 GPT 架构(如 GPT-3.5/GPT-4)的对话产品,通过 RLHF 对齐人类偏好,服务于全球上亿用户,用于问答、创作、编程等。
- 场景 3:自动摘要与翻译。T5 的 Encoder-Decoder 架构天然适合这类序列到序列的转换任务,被用于构建文摘生成、跨语言翻译等模型。
- 场景 4:代码生成(如 GitHub Copilot)。基于 GPT 类模型,根据代码上下文或自然语言注释生成完整的代码片段。
常见误区 / 踩坑
- ❌ 误区 1:BERT 也能做很好的生成任务。
✅ 正解:BERT 的架构(Encoder-only)和预训练目标(MLM)决定了它更擅长理解而非生成。生成流畅连贯的文本需要自回归的 Decoder 结构。 - ❌ 误区 2:T5 和 GPT 是同级别的不同模型。
✅ 正解:T5 代表 Encoder-Decoder 架构范式,而 GPT 是 Decoder-only 范式的代表。后续的很多大模型(如 LLaMA)都属于 GPT 这一架构家族。 - ❌ 误区 3:GPT 模型没有用到 Transformer 的编码器部分。
✅ 正解:严格来说,GPT 使用的是 Transformer 解码器的一部分(自注意力层+前馈网络),但去除了其中用于关注编码器输出的交叉注意力层,形成了纯解码器结构。 - ❌ 误区 4:模型参数越多,在所有任务上都越好。
✅ 正解:GPT-3 证明了参数量对少样本学习的巨大提升,但巨大的参数量也带来了推理成本高昂、难以微调等问题,且在某些需要精确理解的特定任务上,经过充分微调的小模型可能效果更优。
性能 / 复杂度(数据驱动)
- 推理复杂度:对于相同序列长度 n,Decoder-only (GPT) 和 Encoder-only (BERT) 的自注意力层计算复杂度均为 O(n²)。但 GPT 的生成是逐 token 的,生成 m 个 token 的总复杂度约为 O(m * n²);而 BERT 处理一个固定长度输入是单次前向传播 O(n²)。
- 与替代方案对比:
- 方案 A (BERT):Encoder-only,时间/空间复杂度 O(n²),擅长语义理解,推理为单次。
- 方案 B (GPT):Decoder-only,时间/空间复杂度 O(m * n²) (生成),擅长序列生成,但生成慢。
- 方案 C (T5):Encoder-Decoder,复杂度为 O(n_e² + m * n_d²),兼顾理解与生成,但参数量通常更大。
- 性能数字:GPT-3 有 1750 亿参数,训练数据 45TB;BERT-base 110M 参数;GPT-2 最大版本 15 亿参数。
与相关概念的区别
- vs BERT vs GPT:
- 架构维度:BERT 是 Encoder-only,GPT 是 Decoder-only。
- 注意力维度:BERT 是双向注意力(能看全部),GPT 是单向掩码注意力(只能看前文)。
- 任务维度:BERT 适合理解类(分类、匹配),GPT 适合生成类(对话、续写)。
- 怎么选:需要深度理解输入选 BERT,需要创作生成选 GPT。
- vs T5 vs BART:
- 预训练任务维度:T5 采用 Span Corruption(破坏一段并重建),BART 采用多种破坏(删除、替换、打乱)后重建。
- 框架维度:两者都是 Encoder-Decoder 架构,但 T5 强调“文本到文本”统一建模。
- 怎么选:T5 的统一框架更灵活,BART 在某些生成任务上表现优异,可根据具体任务和实验数据选择。
- vs 编码器-解码器 vs 解码器-only:
- 效率维度:编码器-解码器(如 T5)对输入的理解更充分,但参数更多;解码器-only(如 GPT)结构更简单,在海量数据下可通过增大规模涌现能力。
- 适用任务维度:编码器-解码器天生适合输入输出结构不同的任务(如翻译);解码器-only 适合续写类任务。
进阶 / 面试加分项
- 最新进展与趋势:当前业界最强大的模型(如 GPT-4、Claude、PaLM 等)普遍采用 Decoder-only 架构,并将其规模推到万亿参数级别。同时,也有研究(如 Flan-T5, UL2)在持续探索 Encoder-Decoder 架构的潜力,证明其在某些任务上仍具优势。
- 业界争议/未解问题:一个核心争议是,为什么看似更简单(没有编码器)的 Decoder-only 架构,能在通用能力上超越结构更复杂的 Encoder-Decoder 架构? 可能的解释包括:Decoder-only 的自回归目标与生成任务更契合,在超大规模下能更好地记忆世界知识,以及训练和推理的工程优化更成熟。
- 一句话送给候选人:“架构决定能力边界,数据与规模决定能力上限。理解 GPT、BERT、T5 的差异,不是为了背诵历史,而是为了在面对新模型时,能快速判断它‘是哪一路的’以及‘能做什么’。”
面试如何回答
🟢 GPT、BERT、T5 分别使用了 Transformer 的哪些部分?
回答要点:
这是一个关于模型架构的基础问题。GPT、BERT、T5 代表了三种不同的 Transformer 架构范式。首先,BERT 使用了 Transformer 的编码器(Encoder)部分,这使其能够通过双向注意力机制同时看到上下文的所有信息,擅长理解。其次,GPT 使用了 Transformer 的解码器(Decoder)部分(更准确地说是解码器中的自注意力和前馈网络,但去除了与编码器的交叉注意力),这使其只能看到当前位置之前的信息,非常适合从左到右生成文本。最后,T5 使用了完整的 Transformer 编码器-解码器(Encoder-Decoder)结构,编码器用于深度理解输入,解码器用于生成输出,这种结构天然适合序列到序列的转换任务,如翻译和摘要。所以,记住这个核心区别:BERT用编码器,GPT用解码器,T5用编解码器。
🟡 从预训练目标的角度,解释 BERT 的“掩码语言模型”和 GPT 的“自回归语言模型”有何不同?
回答要点:
预训练目标是定义模型“学什么”的关键,它直接塑造了模型的能力。BERT 的掩码语言模型(MLM)是一种“完形填空”任务。具体做法是随机遮盖输入句子中15%的词语(例如用[MASK]标记),然后让模型根据被遮盖词前后双向的上下文来预测出原始词语。这迫使模型学习深度的双向语义表示,因此非常擅长自然语言理解任务。GPT 的自回归语言模型(CLM)则是一种“续写”任务。它给定一个文本序列的上文,要求模型预测下一个最可能出现的词。由于注意力被掩码限制,模型只能利用左侧的上下文信息。这种目标与文本生成的本质完全一致,因此 GPT 天生就是为生成任务设计的。简单说,BERT 学的是“根据上下文填空”,GPT 学的是“根据前文续写”。
🟡 T5 模型的“文本到文本”框架是什么意思?它如何统一不同的NLP任务?
回答要点:
T5 的“文本到文本”是一个极具创新性的统一框架。它的核心思想是:将所有NLP任务,无论是分类、翻译、摘要还是问答,都统一转化为“输入文本 → 输出文本”的格式。具体来说,对于每个任务,T5会在输入文本前加上一个任务前缀,例如对于翻译任务,输入会是“translate English to French: That is good.”,输出则是“C'est bien.”;对于情感分类,输入是“sentiment: This movie is great.”,输出是“positive”。通过这种方式,所有任务都由同一个编码器-解码器模型处理,输入经过编码器理解,然后解码器生成目标文本序列。这种统一性带来了巨大优势:模型可以共享参数,利用多任务学习提升泛化能力,并且简化了模型部署。T5 通过实验验证了这种框架的有效性,证明了用一个模型处理多种任务的可能性。
🔴 为什么说基于 GPT 架构的大模型(如 ChatGPT)更强调“规模”和“对齐”?
回答要点:
这个问题触及了 GPT 路线成功的两大支柱。首先是规模。GPT 是 Decoder-only 架构,其设计非常适合通过增大规模来提升能力。从 GPT-1 的 1.17 亿参数到 GPT-3 的 1750 亿参数,以及随之而来的 45TB 训练数据,巨大的规模带来了“能力涌现”。模型参数足够多、数据足够丰富时,它能自动学习到更复杂的世界知识、推理能力和语言模式,从而展现出惊人的少样本甚至零样本学习能力。其次是对齐。单纯的规模只会造就一个强大的“文本续写机”,它可能会生成无用、有害或不真实的内容。ChatGPT 的成功关键在于“人类反馈强化学习”(RLHF)对齐技术。它通过三个阶段:用人类标注的高质量对话微调模型(SFT),训练一个奖励模型来学习人类偏好,最后用强化学习(如PPO)优化策略,使模型生成符合人类期望的、有帮助、无害且诚实的回答。所以,规模赋予了 GPT 强大的基础能力,而对齐技术则让这种能力安全、可控地服务于人。
🟡 如果你的任务是“从一段产品评论中自动提取所有提到的产品属性及其情感倾向”,你会优先考虑 BERT、GPT 还是 T5?为什么?
回答要点:
这是一个典型的应用场景判断题。我优先考虑 BERT。原因如下:这个任务属于典型的“信息抽取”或“序列标注”任务,其核心是对输入文本(产品评论)进行深度、精细的理解。我们需要模型准确地定位评论中提到的产品属性(如“屏幕”、“电池”),并判断其周围的情感色彩(正面、负面)。BERT 的架构(Encoder-only)和预训练目标(MLM)正是为此而生。它的双向注意力机制能同时捕捉一个词与前后文的关系,这对于准确判断属性和情感至关重要。虽然 T5 和 GPT 也可以处理,但 T5 需要将任务转化为“文本到文本”,可能增加复杂性;GPT 的自回归特性更侧重生成流畅文本,在精确的实体和关系抽取上可能不如 BERT 直接高效。因此,从任务匹配度和效率出发,BERT 是首选。
🟢 请比较一下 BERT-base 和 GPT-1 在模型规模上的异同。
回答要点:
这是一个关注具体数字的对比题。BERT-base 和 GPT-1 在模型规模上非常接近,体现了早期两种路线的可比性。相同点是,它们的参数规模都在 1.1 亿左右:BERT-base 约有 110M 参数,而 GPT-1 的参数量为 1.17 亿。两者都采用了 12 层 Transformer 结构。不同点在于内部配置细节:BERT-base 每个注意力头有 12 个,隐藏层维度为 768;GPT-1 的词向量维度是 768,位置前馈网络内部维度为 3072。尽管规模相似,但它们的核心差异在于架构和预训练目标:BERT 使用 Encoder 并进行双向掩码预测,GPT 使用 Decoder 并进行单向自回归预测。这个对比说明,模型规模并非决定性因素,架构和训练目标才是塑造模型能力的根本。
🔴 T5 模型在预训练时具体是如何“破坏”输入文本的?这个破坏过程有什么讲究?
回答要点:
T5 的预训练破坏过程设计得非常精巧,它采用了“BERT-style”的破坏策略,但具体参数经过大量实验优化。首先,模型会随机选择输入文本中 15% 的 token 进行破坏。对于这些被选中的 token,并不是单独替换,而是采用“小段替换”策略:将连续的一小段文本(平均长度为 3 个 token)作为一个整体,用一个特殊的哨兵标记(如 <X>)替换掉。例如,原文“Thank you for inviting me to your party last week”可能被破坏为”Thank you <X> me to your party <Y> week”。模型在解码阶段的目标就是预测出 <X> 和 <Y> 所代表的原始词组“for inviting”和“last”。这种破坏方式有两个关键优势:一是比逐字替换更接近真实的短语级语义单元;二是15%的破坏比和长度为3的跨度是经过实验验证的最佳平衡点,既保证了任务的挑战性,又让模型能够有效学习。这种设计使得 T5 学到了强大的文本重建和理解能力。
🔴 为什么说当前最顶尖的大语言模型(如 GPT-4)普遍采用 Decoder-only 架构,而不是 Encoder-Decoder?
回答要点:
这是一个涉及技术趋势和工程权衡的深度问题。当前顶尖大模型倾向于 Decoder-only 架构,主要有几个原因。第一,训练和推理的工程优势。Decoder-only 架构更简单、规整,在分布式训练、模型并行和推理优化(如 KV Cache)上更容易实现高效计算,这对于训练万亿参数的超大模型至关重要。第二,与生成任务的天然契合。人类交互的核心形式是“对话”和“指令遵循”,本质是基于上文生成下文,这与自回归生成范式完美匹配。Decoder-only 模型无需处理复杂的编码-解码交互,直接优化生成过程。第三,规模效应的验证。GPT-3 等模型的成功证明了,在足够大的规模和数据下,Decoder-only 架构能够通过“语言建模”这个单一目标,涌现出理解、推理、代码生成等多种能力,从而成为一种“通用引擎”。而 Encoder-Decoder 架构虽然在某些特定转换任务上仍有优势,但其更复杂的结构和训练目标,在追求极致通用性的超大模型竞赛中,目前略显复杂。简言之,Decoder-only 凭借其简洁性、生成友好性和规模效应,成为了当前大规模语言模型的主流选择。
