在自然语言处理(NLP)领域,Transformer 架构的出现无疑是一场革命性的变革。自 2017 年 Google 团队在《Attention Is All You Need》一文中提出原始 Transformer 架构以来,它凭借并行计算效率高、长距离依赖捕捉能力强等优势,迅速取代了循环神经网络(RNN)和卷积神经网络(CNN),成为 NLP 领域的主流架构。​

然而,原始 Transformer 架构并非完美无缺,在实际应用中,研究者们基于不同的任务需求和优化方向,衍生出了众多变体。其中,BERT、GPT 和 T5 因其卓越的性能和广泛的应用,成为最具代表性的三大变体。本文将以万字篇幅,从架构原理、训练方式、应用场景等多个维度,全面解析这三大变体,帮助你彻底搞懂它们的奥秘。

图片

一、Transformer 架构基础回顾

在深入探讨三大变体之前,我们有必要先回顾一下原始 Transformer 架构的核心内容,因为三大变体都是在其基础上发展而来的,理解原始架构是掌握变体的关键。

(一)原始 Transformer 架构的整体结构

原始 Transformer 架构采用了编码器 - 解码器(Encoder-Decoder)结构,主要由编码器和解码器两部分组成。

编码器由 N 个相同的编码器层堆叠而成,每个编码器层包含两个子层:多头自注意力机制和前馈神经网络。其中,多头自注意力机制能够让模型在处理每个位置的信息时,同时关注输入序列中其他位置的信息,从而更好地捕捉序列内的依赖关系;前馈神经网络则对每个位置的信息进行独立的非线性变换。每个子层之后都采用了残差连接和层归一化操作,以缓解梯度消失问题,加速模型训练。

解码器同样由 N 个相同的解码器层堆叠而成,每个解码器层包含三个子层:多头自注意力机制、多头编码器 - 解码器注意力机制和前馈神经网络。多头自注意力机制用于捕捉输出序列内部的依赖关系;多头编码器 - 解码器注意力机制则让解码器能够关注到编码器输出的相关信息;前馈神经网络的作用与编码器中的相同。同样,每个子层之后也都有残差连接和层归一化操作。

(二)注意力机制

注意力机制是 Transformer 架构的核心,其基本思想是模拟人类的注意力集中现象,在处理信息时,对不同部分给予不同的关注度。在 Transformer 中,采用的是缩放点积注意力机制,其计算公式为:

(Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V)

其中,Q(查询)、K(键)、V(值)分别是从输入序列中通过线性变换得到的矩阵,(d_k)是 K 的维度,缩放因子dk的作用是防止(QK^T)的数值过大,导致 softmax 函数的梯度消失。

多头注意力机制则是将缩放点积注意力机制并行执行多次,然后将结果拼接起来,通过线性变换得到最终的输出。这样做可以让模型从不同的子空间中学习到不同的注意力模式,提高模型的表达能力。

(三)位置编码

由于 Transformer 架构中没有循环或卷积操作,无法像 RNN 那样自然地捕捉序列的位置信息,因此需要通过位置编码来为输入序列中的每个位置添加位置信息。原始 Transformer 采用的是正弦余弦位置编码,其计算公式为:

在这里插入图片描述

其中,pos 是序列中的位置索引,i 是维度索引,(d_{model})是模型的维度。这种位置编码能够让模型学习到相对位置信息,因为对于两个位置 pos 和 pos+k,它们的位置编码之间存在固定的关系。

二、BERT(Bidirectional Encoder Representations from Transformers)

BERT 是由 Google 在 2018 年提出的预训练语言模型,它以其强大的双向编码能力在众多 NLP 任务中取得了突破性的成绩,被誉为 NLP 领域的里程碑。

(一)BERT 的结构

BERT 的结构基于原始 Transformer 的编码器,它由多个编码器层堆叠而成。根据模型的大小,BERT 分为基础版(BERT-Base)和大型版(BERT-Large),其中 BERT-Base 包含 12 个编码器层,隐藏层维度为 768,多头注意力的头数为 12,总参数约为 110M;BERT-Large 包含 24 个编码器层,隐藏层维度为 1024,多头注意力的头数为 16,总参数约为 340M。

与原始 Transformer 编码器不同的是,BERT 在输入部分做了一些特殊处理。BERT 的输入可以是单个句子,也可以是两个句子拼接而成。对于输入序列,BERT 会添加三个特殊标记:[CLS](用于分类任务的标记,位于序列的开头)、[SEP](用于分隔两个句子的标记)。此外,BERT 还会为每个 token 添加句子嵌入(Sentence Embedding),用于区分不同的句子(对于单个句子,句子嵌入全为 0;对于两个句子,第一个句子的句子嵌入为 0,第二个句子的句子嵌入为 1)。

(二)BERT 的预训练任务

BERT 采用了无监督预训练的方式,通过在大规模文本语料上进行训练,学习到通用的语言表示。其预训练任务主要有两个:

  1. 掩码语言模型(Masked Language Model,MLM):在训练过程中,BERT 会随机选择输入序列中 15% 的 token 进行掩码处理。具体来说,有 80% 的概率将选中的 token 替换为 [MASK] 标记,10% 的概率将其替换为一个随机的 token,10% 的概率保持该 token 不变。然后,模型需要根据上下文预测出被掩码的原始 token。MLM 任务使得 BERT 能够学习到双向的上下文信息,因为模型在预测被掩码的 token 时,需要同时关注其左侧和右侧的信息。

  2. 下一句预测(Next Sentence Prediction,NSP):该任务的目的是让模型学习到句子之间的逻辑关系。在训练时,BERT 会将两个句子拼接起来作为输入,其中 50% 的概率这两个句子是连续的(正样本),50% 的概率这两个句子是随机拼接的(负样本)。模型需要预测这两个句子是否是连续的。NSP 任务有助于模型理解句子之间的语义关联,对于问答、自然语言推理等任务非常有帮助。

(三)BERT 的微调(Fine-tuning)

预训练完成后,BERT 可以通过微调的方式应用于各种下游 NLP 任务。针对不同的任务,BERT 的输入和输出处理方式有所不同:

  1. 文本分类任务:将 [CLS] 标记对应的输出作为整个句子的表示,然后连接一个分类器进行分类。

  2. 命名实体识别任务:将每个 token 对应的输出连接一个分类器,预测该 token 是否属于某个实体类型。

  3. 问答任务:给定一个问题和一个包含答案的文本段落,模型需要预测答案在段落中的起始位置和结束位置。通常是将问题和段落拼接起来作为输入,然后分别对每个 token 预测其作为起始位置和结束位置的概率。

(四)BERT 的优势与局限性

BERT 的优势主要体现在以下几个方面:

  1. 强大的双向编码能力:通过 MLM 任务,BERT 能够学习到双向的上下文信息,相比只能进行单向编码的模型(如 GPT),在需要理解上下文语义的任务中表现更优。

  2. 良好的迁移能力:预训练得到的通用语言表示可以通过微调快速适应各种下游任务,大大减少了对下游任务标注数据的需求。

  3. 在多个任务上的优异性能:BERT 在 GLUE(General Language Understanding Evaluation)等多个基准测试中刷新了纪录,证明了其强大的性能。

然而,BERT 也存在一些局限性:

  1. 预训练和微调的成本较高:BERT 模型参数庞大,预训练需要消耗大量的计算资源和时间,微调过程也需要一定的计算资源支持。

  2. 对于长文本处理能力有限:BERT 的输入序列长度有一定限制(通常为 512 个 token),对于超过该长度的文本,需要进行截断或分段处理,可能会丢失一些重要信息。

  3. NSP 任务的有效性存在争议:有研究表明,NSP 任务对于模型性能的提升并不明显,甚至可能会带来一些负面影响。

三、GPT(Generative Pre-trained Transformer)

GPT 是由 OpenAI 提出的生成式预训练语言模型,与 BERT 不同,GPT 采用了单向的 Transformer 解码器结构,主要用于文本生成任务。截至目前,GPT 系列已经推出了多个版本,如 GPT-1、GPT-2、GPT-3、GPT-4 等,模型性能不断提升。

(一)GPT 的结构

GPT 的结构基于原始 Transformer 的解码器,但去掉了编码器 - 解码器注意力机制,只保留了多头自注意力机制和前馈神经网络。GPT-1 包含 12 个解码器层,隐藏层维度为 768,多头注意力的头数为 12,总参数约为 117M;GPT-2 的规模更大,包含 12/24/36/48 个解码器层(不同版本),隐藏层维度最高为 1600,总参数约为 1.5B;GPT-3 的参数规模更是达到了 175B,具有超强的文本生成能力。

GPT 的输入相对简单,通常是一个文本序列,不需要添加特殊的句子嵌入标记,只需在序列的开头添加一个起始标记(如 <|endoftext|>)。

(二)GPT 的预训练与微调

GPT 的预训练任务采用的是语言模型(Language Model,LM)任务,即给定一个文本序列的前 n 个 token,预测第 n+1 个 token。这种单向的语言模型训练使得 GPT 能够很好地捕捉文本的生成规律,适合进行文本生成任务。

在微调阶段,对于不同的下游任务,GPT 需要进行相应的输入和输出处理:

  1. 文本生成任务:直接将输入序列输入到模型中,模型会根据上下文不断生成后续的 token,直到生成结束标记或达到预设的长度。

  2. 文本分类任务:将文本序列和分类标签的候选值拼接起来作为输入,模型通过预测最后一个 token 来确定文本的类别。

  3. 问答任务:将问题和答案的候选值拼接起来作为输入,模型预测答案的正确性。

(三)GPT 系列的发展与特点

  1. GPT-1:首次将 Transformer 解码器应用于预训练语言模型,通过预训练和微调的方式在多个 NLP 任务上取得了较好的成绩,证明了生成式预训练模型的有效性。

  2. GPT-2:进一步扩大了模型规模,取消了微调阶段,提出了 “零样本学习”(Zero-shot Learning)和 “少样本学习”(Few-shot Learning)的概念,即通过在输入中添加任务描述和示例,让模型在不进行微调的情况下完成新的任务。

  3. GPT-3:参数规模急剧扩大,凭借其巨大的参数量和海量的训练数据,在零样本和少样本学习方面表现出色,能够完成翻译、摘要、问答等多种复杂任务,无需进行微调,只需通过自然语言指令即可驱动模型。

  4. GPT-4:相比 GPT-3,在多模态处理、逻辑推理、知识储备等方面有了显著提升,能够处理文本和图像输入,生成更准确、更连贯的输出。

(四)GPT 的优势与局限性

GPT 的优势主要包括:

  1. 强大的文本生成能力:由于采用了单向的语言模型训练,GPT 在文本生成任务中表现出色,能够生成连贯、流畅、符合语境的文本。

  2. 零样本和少样本学习能力强:尤其是 GPT-3 及之后的版本,能够在很少甚至没有示例的情况下,通过自然语言指令完成各种任务,大大降低了模型的使用门槛。

  3. 适用范围广:除了文本生成,GPT 还可以应用于翻译、摘要、问答、代码生成等多种任务。

GPT 的局限性主要有:

  1. 存在事实性错误:GPT 生成的文本可能会包含一些不符合事实的信息,因为它主要是基于统计规律进行生成,而不是真正理解文本的含义。

  2. 对输入的敏感性高:输入序列的微小变化可能会导致模型生成完全不同的输出,模型的鲁棒性有待提高。

  3. 计算资源消耗巨大:GPT 系列模型的参数规模越来越大,训练和推理都需要消耗大量的计算资源,成本极高。

  4. 可能生成有害或不当内容:如果训练数据中包含有害或不当信息,GPT 可能会生成相应的内容,存在一定的安全风险。

四、T5(Text-to-Text Transfer Transformer)

T5 是由 Google 在 2019 年提出的文本到文本转换模型,它将所有的 NLP 任务都统一转化为文本生成任务,采用了编码器 - 解码器结构,具有很强的通用性和灵活性。

(一)T5 的结构

T5 的结构基于原始 Transformer 的编码器 - 解码器架构,但其在一些细节上进行了改进。T5 有多个不同规模的版本,如 T5-Small(60M 参数)、T5-Base(220M 参数)、T5-Large(770M 参数)、T5-3B(3B 参数)、T5-11B(11B 参数)等。

T5 的输入处理非常灵活,对于不同的任务,会在输入序列的前面添加相应的任务描述前缀。例如,对于翻译任务,输入可能是 “translate English to French: Hello world”;对于文本分类任务,输入可能是 “classify: This is a positive sentence”。这种统一的输入格式使得 T5 能够轻松应对各种不同的任务。

(二)T5 的预训练与微调

T5 的预训练任务采用的是 “替换文本生成”(Span Corruption)任务,类似于 MLM 任务,但有所不同。在 Span Corruption 任务中,模型会随机选择输入序列中的一些连续片段(span),将这些片段替换为一个特殊的标记(如),然后要求模型根据上下文生成被替换的片段。片段的长度遵循几何分布,这样可以使模型处理不同长度的文本片段。

在微调阶段,由于 T5 将所有任务都转化为文本生成任务,因此微调过程相对统一。对于每个下游任务,只需将任务转化为 “输入文本→输出文本” 的形式,然后用相应的数据集对模型进行微调即可。例如,文本分类任务的输入是带有分类任务描述的文本,输出是分类标签;问答任务的输入是问题和上下文,输出是答案。

(三)T5 的优势与局限性

T5 的优势主要体现在:

  1. 任务统一性强:将所有 NLP 任务都统一为文本生成任务,简化了模型的设计和应用流程,使得模型能够灵活地应用于各种任务。

  2. 性能优异:在多个基准测试中,T5 都取得了出色的成绩,证明了其强大的性能。

  3. 可扩展性好:T5 有多个不同规模的版本,可以根据实际需求选择合适的模型,同时也便于进行模型的扩展和优化。

T5 的局限性主要包括:

  1. 生成式任务的局限性:对于一些需要精确输出的任务(如命名实体识别),生成式的输出可能不如判别式的输出准确。

  2. 计算成本高:与 BERT、GPT 类似,T5 的大型版本参数众多,训练和推理的计算成本较高。

  3. 任务描述的敏感性:T5 的性能在一定程度上依赖于任务描述的准确性和清晰度,不合适的任务描述可能会影响模型的性能。

五、三大变体的对比与总结

(一)结构对比

变体 结构基础 核心组件 参数规模(典型版本)
BERT Transformer 编码器 多头自注意力、前馈神经网络 110M(Base)、340M(Large)
GPT Transformer 解码器(无编码器 - 解码器注意力) 多头自注意力、前馈神经网络 117M(GPT-1)、1.5B(GPT-2)、175B(GPT-3)
T5 Transformer 编码器 - 解码器 多头自注意力、前馈神经网络、编码器 - 解码器注意力 220M(Base)、11B(11B)

(二)预训练任务对比

BERT 采用 MLM 和 NSP 任务,注重双向上下文理解
GPT 采用 LM 任务,注重单向文本生成规律的学习
T5 采用 Span Corruption 任务,注重文本片段的生成和恢复

(三)应用场景对比

BERT 适用于需要双向上下文理解的任务,如文本分类、命名实体识别、问答(理解部分)等
GPT 适用于文本生成相关任务,如文本续写、故事创作、翻译(生成部分)、代码生成等
T5 适用于各种可以转化为文本生成的任务,如翻译、摘要、问答、文本分类等,具有广泛的适用性

(四)总结

BERT、GPT 和 T5 作为 Transformer 架构的三大重要变体,各自有着独特的结构设计、预训练任务和应用场景。BERT 以双向编码为核心,擅长上下文理解;GPT 以单向生成为特色,在文本生成领域表现卓越;T5 则以任务统一化为亮点,具有很强的通用性。

这三大变体的出现,极大地推动了 NLP 领域的发展,使得各种 NLP 任务的性能得到了显著提升。它们的成功证明了预训练语言模型的有效性,也为未来 NLP 模型的研究和发展提供了重要的思路和方向。

未来,随着技术的不断进步,这些变体可能会在模型效率、多模态处理、可解释性等方面得到进一步的优化和提升,为 NLP 领域带来更多的突破和创新。对于学习者和研究者来说,深入理解这三大变体的原理和特点,将有助于更好地应用它们解决实际问题,并为 NLP 领域的发展贡献力量。

那么,如何系统的去学习大模型LLM?

作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
在这里插入图片描述

👉大模型学习指南+路线汇总👈

我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
在这里插入图片描述
在这里插入图片描述

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
在这里插入图片描述

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
在这里插入图片描述

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
在这里插入图片描述

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐