跳至主要内容

Transformer 如何工作:Transformer 架构详解

逐步解析 Transformer 架构的工作方式,从自注意力到建立在其之上的仅解码器 LLM。
· 15分钟 阅读

使用 AI 探索

Transformer 是一种神经网络,它一次性读取序列中的每个 token,并通过自注意力(self-attention)决定各个 token 之间应当相互借鉴的程度。Google 的研究者在 2017 年的论文 “Attention Is All You Need” 中首次提出,如今从 GPT、Llama 到 Gemini,几乎所有大型语言模型(LLM)都以它为基础。

该架构分为 4 个阶段:文本被切分为 tokens 并映射为嵌入表示,加入位置信息,多个层堆叠交替使用多头自注意力与前馈网络(每个子层外包裹残差连接与归一化),最后通过线性层和 softmax 将最终向量转换为词表上的概率。原始模型将编码器与解码器配对;如今多数 LLM 仅保留解码器。

在本教程中,我将逐步讲解原始的编码器—解码器设计的每个阶段,然后展示 BERT、GPT 以及当今 LLM 对其所做的改变。若您想先建立直觉,可阅读我们的 注意力机制 与 自注意力 解析。

要点速览

  • Transformer 并行处理所有 tokens,用自注意力替代循环结构来建模上下文。
  • 每一层由多头注意力与前馈网络配对组成,并辅以残差连接与归一化。
  • 2017 年的原型为编码器—解码器;BERT 仅保留编码器,GPT 风格的 LLM 仅保留解码器。
  • 现代 LLM 常引入 RoPE、RMSNorm、分组查询注意力,以及常见的专家混合(MoE)层。
  • 自注意力的代价随序列长度二次增长,因此多数效率研究都瞄准这一点。

什么是 Transformer?

Transformer 最初为了解决序列转换(sequence transduction),即神经机器翻译问题而开发,旨在完成任何将输入序列变换为输出序列的任务。这也是它被称为“Transformer”的原因。

但让我们从头开始。

一个简单的定义

Transformer 模型是一种神经网络,它学习序列数据的上下文,并据此生成新的数据。

简单来说:

Transformer 是一种人工智能模型,它通过分析海量文本数据中的模式来学习理解并生成类人文本。

Transformer 是当前自然语言处理(NLP)领域的先进模型,被视为编码器—解码器架构的演进。然而,与主要依赖循环神经网络(RNN)提取序列信息的编码器—解码器架构不同,Transformer 完全不具备循环性。

那么,它们是如何做到的?

它们专为通过分析不同元素之间的关系来理解上下文与含义而设计,几乎完全依赖一种称为注意力的数学技术来实现这一点。

将 Transformer 架构视为黑箱。

图片来源:作者。

历史背景

Transformer 由 Google 研究者在 2017 年的论文 "Attention is All You Need" 中提出。相关代码在 TensorFlow 的 Tensor2Tensor 包中发布,哈佛 NLP 团队随后基于 PyTorch 推出了一份论文注释指南。您也可以在我们的教程中学习如何从零实现一个 Transformer。

一年之内,Google 的 BERT 与 OpenAI 的 GPT-1 展示了这样一种范式:在未标注文本上预训练的 Transformer 几乎可以针对任意语言任务进行微调。2020 年出现了 GPT-3,斯坦福研究者为这类模型创造了“基础模型”这一术语。

自那以后,进展迅速:如 Meta 的 Llama(2023)的开源权重模型,多模态模型如 GPT-4o(2024),推理模型如 OpenAI 的 o1 与 DeepSeek-R1(2024 年末至 2025 年初),以及具备代理能力的模型如 GPT-5(2025)与 GPT-6 Astra(2026)。公开设计的模型仍然都是 Transformer。完整发展历程见我们的大语言模型历史。

从 RNN 到 Transformer 的转变

Transformer 发布时,循环神经网络(RNN)及其变体长短期记忆网络(LSTM)是处理序列数据的主流模型。它们逐个处理输入元素,带来两大问题:

  • 训练缓慢:每一步都需等待前一步,难以利用 GPU 擅长的并行计算。
  • 长距离遗忘:信息逐步传递,链越长越容易丢失。

Transformer 保留了 RNN 的编码器—解码器思想,但用注意力替代了循环,从而同时解决这两个问题:无论相距多远,每个词都能直接“关注”其他任意词,并行处理整个序列。

接下来,让我们看看 Transformer 的工作原理。

Transformer 架构如何工作?

Transformer 最初用于序列转换或神经机器翻译,在将输入序列转换为输出序列方面表现出色。它是首个完全依赖自注意力来表征输入与输出、而无需使用序列对齐的 RNN 或卷积的转换模型。Transformer 架构的核心特征是保留编码器—解码器模型。

Transformer 以 4 个阶段将文本转为下一个 token 的概率

若将用于语言翻译的 Transformer 视作一个简单的黑箱,它会将一种语言的句子(例如英文)作为输入,输出其对应的西班牙语翻译。

将翻译任务中的 Transformer 视为从英语到西班牙语的黑箱。

图片来源:作者。

若进一步展开,我们会发现这个黑箱由两大部分组成:

  • 编码器接收输入并输出其矩阵表示。例如英文句子“How are you?”
  • 解码器接收该编码表示并迭代生成输出。在本例中,为翻译句子“¿Cómo estás?”

用于翻译的 Transformer:两个通用模块(编码器与解码器)。

图片来源:作者。编码器—解码器的全局结构。

不过,编码器与解码器实际上都是由多个层堆叠而成(两者层数相同)。所有编码器层结构一致,输入依次通过每一层并传递给下一层。所有解码器层结构也一致,接收来自最后一个编码器层和前一解码器层的输入。

原始架构包含 6 个编码器与 6 个解码器,但我们可以按需复制任意层数。下面假设各有 N 层。

用于翻译的 Transformer:编码器与解码器模块各重复 N 次。

图片来源:作者。编码器—解码器的全局结构:多层堆叠。

现在我们对 Transformer 的整体结构有了概念,接下来分别关注编码器与解码器,进一步理解其工作流程:

Transformer 编码器如何工作?

编码器是 Transformer 架构中的基础组件,其主要功能是将输入 tokens 转换为具备上下文的表示。不同于早期独立处理 tokens 的模型,Transformer 编码器针对整个序列来捕捉每个 token 的上下文。

其结构组成如下:

Transformer 编码器的架构。

图片来源:作者。编码器的全局结构。

将其流程拆解为最基本步骤:

步骤 1:输入嵌入

嵌入仅发生在最底层编码器。首先,分词器将文本切分为tokens(词或词片),每个 token 被映射为一个可学习向量,即嵌入。含义相关的 tokens 会得到相似的向量。

所有编码器接收一个向量列表,原论文中每个向量的维度为 512(dmodel = 512)。在最底层编码器,这些是词嵌入;在上层编码器,则是其下方编码器的输出。

编码器工作流:输入嵌入如何工作。

图片来源:作者。编码器工作流:输入嵌入。

步骤 2:位置编码

由于 Transformer 不具备类似 RNN 的循环机制,它们将位置编码加入输入嵌入中,以提供每个 token 在序列中的位置信息,使其能够理解词在句中的位置关系。

为此,研究者建议使用多种正弦与余弦函数的组合来构造位置向量,从而使该位置编码器可用于任意长度的句子。

在这种方法中,每个维度由不同频率与相位偏移的波来表示,数值范围为 -1 到 1,有效地刻画每个位置。

编码器工作流:位置编码如何工作。

图片来源:作者。编码器工作流:位置编码。

步骤 3:编码器层堆叠

Transformer 编码器由一组完全相同的层堆叠而成(原始模型为 6 层)。

编码器层的作用是将所有输入序列转化为连续的抽象表示,封装对整个序列的已学信息。该层包含两个子模块:

  • 多头注意力机制。
  • 全连接网络。

此外,每个子层都带有残差连接,随后进行层归一化。

编码器工作流:编码器层堆叠。

图片来源:作者。编码器工作流:编码器层堆叠

步骤 3.1:多头自注意力机制

在编码器中,多头注意力采用一种特殊的注意力机制——自注意力。这使模型能够关联输入中的每个词与其他词。例如,在给定示例中,模型可能学会将“are”与“you”联系起来。

该机制使编码器在处理每个 token 时,能够关注输入序列的不同部分。它基于以下内容计算注意力分数:

  • 查询(query):在注意力机制中,表示输入序列中特定词或 token 的向量。
  • 键(key):也是注意力机制中的向量,对应输入序列中的每个词或 token。
  • 值(value):与键相关联,用于构建注意力层输出。当查询与键匹配较好(即注意力分数较高)时,相应的值会在输出中被强调。

这一首个自注意力模块使模型能够从整个序列中捕获上下文信息。不同于执行单次注意力计算,查询、键和值会被线性投影 h 次。在这些投影后的查询、键和值上并行执行注意力机制,每个头产生 dv 维的输出(原论文为 64,h = 8)。

其详细结构如下:

编码器工作流:多头注意力机制。

矩阵乘法(MatMul):查询与键的点积

当查询、键和值向量通过线性层后,会对查询与键进行点积矩阵乘法,得到分数矩阵(score matrix)。

分数矩阵决定了每个词对其他词应当给予的关注程度。因而在同一时间步中,每个词相对于其他词都会被分配一个分数,分数越高表示关注越强。

这一过程有效地将查询映射到其对应的键。

编码器工作流:注意力机制——矩阵乘法。

图片来源:作者。编码器工作流:注意力机制——矩阵乘法。

缩放注意力分数的幅度

随后,将分数除以查询与键向量维度的平方根以缩放。这一步有助于稳定梯度,因为数值相乘可能导致影响过大。

编码器工作流:缩小注意力分数。

图片来源:作者。编码器工作流:缩小注意力分数。

对调整后的分数应用 softmax

接着对调整后的分数应用 softmax 函数,得到注意力权重,即 0 到 1 之间的概率值。softmax 会强调更高的分数并减小较低的分数,从而提升模型有效判定应关注哪些词的能力。

编码器工作流:对调整后的分数应用 Softmax。

图片来源:作者。编码器工作流:Softmax 调整后的分数。

将 softmax 结果与值向量结合

注意力机制的下一步是将 softmax 得到的权重与值向量相乘,得到输出向量。

具有较高 softmax 权重的词会在结果中占主导,而权重接近 0 的词几乎不贡献信息。最后,该输出向量会输入到线性层进一步处理。

编码器工作流:将 Softmax 结果与值向量结合。

图片来源:作者。编码器工作流:将 Softmax 结果与值向量结合。

至此,我们得到了注意力机制的输出!

“多头”一词源于并行多次运行上述过程。在注意力开始前,会将查询、键和值切分为 h 个较小的集合(称为头,head),每个头在自己的子空间上独立执行上述步骤。

各头的输出被拼接后再通过一个线性层。由于每个头学习自己的投影,不同的头可以捕捉不同的关系,比如代词指代的名词,或相邻词的关系。

想要更深入理解注意力机制,请参阅我们的Transformer 多头注意力教程。

步骤 3.2:归一化与残差连接

编码器层中的每个子层后都跟随归一化步骤。同时,每个子层的输出会与其输入相加(残差连接),以缓解梯度消失问题,便于训练更深的模型。该过程在前馈神经网络之后也会重复。

编码器工作流:多头注意力后的归一化与残差连接。

图片来源:作者。编码器工作流:多头注意力后的归一化与残差连接。

步骤 3.3:前馈神经网络

接下来,输出通过一个逐位置的前馈网络:两个线性层中间接 ReLU 激活,对每个 token 独立应用。原论文中,内部层的维度为 2048,是模型宽度 512 的 4 倍。

与注意力相同,网络的输入会与其输出相加(残差连接),然后进行归一化。

编码器工作流:前馈神经网络子层。

图片来源:作者。编码器工作流:前馈神经网络子层。

步骤 4:编码器的输出

最终编码器层的输出是一组向量,每个都以丰富的上下文理解来表示输入序列。该输出随后作为 Transformer 模型中解码器的输入。

这一细致的编码为解码器做好铺垫,引导其在解码时关注输入中的正确词。

堆叠 N 个编码器层可以让每一层在下层表示的基础上进一步构建。原始模型使用 N = 6;BERT-Base 使用 12 层,BERT-Large 使用 24 层。

Transformer 解码器如何工作?

解码器用于生成输出序列。其层与编码器相似,但多了一个组件:每层包含 2 个多头注意力子层而非 1 个,随后是逐位置前馈网络,每个子层外都有残差连接与层归一化。

解码器的全局结构。

图片来源:作者。解码器的全局结构。

这些组件的工作方式与编码器层类似,但有所不同:解码器中的每个多头注意力层都有其特定使命。

解码器流程的最后包含一个线性层,充当分类器,再通过 softmax 计算各候选词的概率。

Transformer 解码器的结构专为逐步解码编码信息、以生成输出而设计。

解码器以自回归方式工作:它从序列起始 token 开始,在每一步将迄今生成的 tokens 与编码器的输出一并作为输入。

当生成到序列结束 token 时停止。

步骤 1:输出嵌入

在解码器的起点,流程与编码器类似。此处输入首先通过嵌入层。

步骤 2:位置编码

在嵌入之后,与编码器相同,输入会通过位置编码层,以生成位置嵌入。

这些位置嵌入随后进入解码器的首个多头注意力层,在其中计算解码器自身输入的注意力分数。

步骤 3:解码器层堆叠

解码器由一组完全相同的层堆叠而成(原始模型为 6 层)。每层包含三个主要子组件:

步骤 3.1:带掩码的自注意力机制

该机制与编码器中的自注意力相似,但有一项关键差异:它阻止当前位置关注后续位置,这意味着序列中的每个词都不会被未来的 token 影响。

例如,当计算词“Cómo”的注意力分数时,很重要的一点是“Cómo”不应窥见后续输出词“estás”。

解码器工作流:第一层多头注意力的掩码。

图片来源:作者。解码器工作流:第一层多头注意力的掩码。

这种掩码确保某一位置的预测只能依赖于其之前位置的已知输出。

步骤 3.2:编码器—解码器注意力(交叉注意力)

第二个注意力子层将解码器与编码器连接。此处查询来自解码器的带掩码自注意力输出,而键与值来自编码器的最终输出。

这使解码器中的每个位置都能关注输入句子的所有位置,因此在生成“estás”时,解码器可以聚焦于“are you”。结果随后进入前馈子层。

解码器工作流:编码器—解码器注意力。

图片来源:作者。解码器工作流:编码器—解码器注意力。

步骤 3.3:前馈神经网络

与编码器类似,每个解码器层都包含一个全连接前馈网络,对每个位置分别且一致地应用。

步骤 4:线性分类器与 softmax

数据在 Transformer 中的旅程最终会经过一个线性层,作为分类器。

该分类器的大小等于类别总数(词表大小)。例如在有 1000 个不同词的情景下,分类器输出为包含 1000 个元素的数组。

随后输出进入 softmax 层,被转换为 0 到 1 之间的概率分数。概率最高的 token 是模型对下一个词的最佳猜测。贪心解码会直接选取它;多数聊天模型则会从分布中采样,并通过温度设置控制随机程度。

解码器工作流:Transformer 的最终输出。

图片来源:作者。解码器工作流:Transformer 的最终输出。

归一化与残差连接

每个子层(带掩码自注意力、编码器—解码器注意力、前馈网络)之后都跟随归一化步骤,且各自包含一条残差连接。

解码器的输出

最终层的输出被转换为预测序列,通常通过线性层并接 softmax 以在词表上生成概率。

在运行过程中,解码器会将新生成的输出追加到其不断增长的输入序列中,并继续解码。该循环持续,直到模型预测到特定的完成标记为止。

与编码器一样,解码器也是由 N 个相同的层堆叠而成(原始模型为 6 层),每一层在其下层输出与编码器输出的基础上进一步构建。更深的堆叠使不同层与不同头能够捕捉不同的注意力模式。

最终的架构如下(来自原始论文):

Transformer 的原始结构。

图片来源:作者。Transformer 的原始结构。

为更好理解该架构,我建议按照这篇PyTorch 实现 Transformer 的教程从零开始动手实践。

仅编码器、仅解码器与编码器—解码器 Transformer

Transformer 模型可分为三大类,取决于其保留原始架构的哪一半。该选择决定了模型擅长的任务:编码器擅长“读”,解码器擅长“写”,编码器—解码器擅长将一个序列映射为另一个序列。

家族保留部分注意力预训练任务典型用途示例
仅编码器编码器栈双向:每个 token 可见所有 token填充被掩码的 tokens分类、搜索嵌入、命名实体识别BERT、RoBERTa
仅解码器解码器栈,不含交叉注意力因果:每个 token 只可见更早的 tokens预测下一个 token聊天、代码生成、智能体GPT-3、Llama、Gemini
编码器—解码器两者皆保留双向编码器、因果解码器,外加交叉注意力将输入序列映射到输出序列翻译、摘要、语音识别原始 Transformer、T5、Whisper

自 GPT-3 以来发布的大多数 LLM 都是仅解码器架构。下一个 token 预测适用于任何原始文本,训练数据充足,且一个模型即可将翻译、摘要、问答等任务都视作文本续写来处理。

哪些模型使用了 Transformer 架构?

BERT

BERT(Bidirectional Encoder Representations from Transformers,双向编码器表示),由 Google 于 2018 年开源,是仅编码器的 Transformer。它并非预测下一个词,而是通过词两侧的上下文来填补被掩码的词,使其在理解类任务上较当时的从左到右模型更强。

通过从词的两侧理解上下文,BERT 在问答、消歧义等任务上超越以往模型。其核心使用 Transformer,将每个输出与输入元素动态连接。

BERT 在英文维基百科与 BooksCorpus 数据集上进行预训练,Google 于 2019 年将其应用于搜索,以更好理解自然语言查询。它引发了构建更大型预训练语言模型的竞赛。

想了解更多 BERT 内容,您可查看我们的BERT 模型入门文章。

LaMDA

LaMDA(Language Model for Dialogue Applications,对话应用语言模型)是 Google 开发的基于 Transformer 的模型,专为对话任务设计,并在 2021 年的 Google I/O 上发布。其目标是生成更自然、与语境更相关的回应,以提升各类应用中的用户交互。

LaMDA 的设计使其能理解并回应广泛话题与用户意图,非常适合聊天机器人、虚拟助手等需要动态对话的交互式 AI 系统。

此后,Google 在 Bard 聊天机器人中以 PaLM 2、再之后以 Gemini 取代了 LaMDA,但 LaMDA 是最早专门面向对话训练的 Transformer 模型之一。

如果您希望进一步了解 LaMDA 模型,可阅读我们的 LaMDA 文章。

GPT 与 ChatGPT

GPT 与 ChatGPT 由 OpenAI 开发,是能够生成连贯且上下文相关文本的先进生成式模型。GPT-1 于 2018 年 6 月首次发布,影响深远的 GPT-3 则于两年后的 2020 年推出。

这些模型擅长多种任务,包括内容创作、对话、语言翻译等。GPT 的架构使其生成的文本高度贴近人类写作,适用于创意写作、客户支持,甚至代码辅助等场景。ChatGPT 作为针对对话优化的变体,能够生成类人对话,因此在聊天机器人与虚拟助手中应用广泛。

除其开源权重的 gpt-oss 系列外,OpenAI 在 GPT-3 之后不再公开架构细节,但该家族持续壮大,最近的成员包括 2026 年的 GPT-6 Astra。

Claude

Claude 由 Anthropic 开发,是一系列以 Transformer 为基础、强调安全与有用性的 AI 助手。Claude 使用“宪法式 AI”(Constitutional AI,CAI)的训练方法,以一组原则引导模型输出有帮助、无害且诚实的回答。

Claude 3(2024 年发布)引入了 Haiku、Sonnet 与 Opus 三个档位,在速度与能力之间提供不同权衡。该系列擅长细致推理、执行复杂指令,并能在长对话中保持上下文(一度可达 20 万 tokens)。

此后,Anthropic 以数月为节奏持续发布新一代模型。目前的 Claude 5 系列包括 Claude Fable 5.1 与 Claude Opus 5.5(均为 2026 年发布)。与 OpenAI 一样,Anthropic 并未公布其架构细节。

其他变体

Transformer 模型的数量快速增长。Xavier Amatriain 的Transformer 模型目录按架构与训练目标对数十种模型进行分类,斯坦福的 HELM 基准并列评测了 30 个重要语言模型。

开源化趋势日益增长,Hugging Face 的模型库等平台功不可没。此外,众多基于 Transformer 的模型被开发出来,分别专注于不同的 NLP 任务,展现出该模型在多样应用中的通用性与高效性。

您还可以在另一篇文章中进一步了解所有现有的基础模型,包括它们是什么、以及最常用的有哪些。

自 2017 年以来 Transformer 有何变化?

自 2017 年的原始架构以来,Transformer 为解决局限并拓展至新领域而显著演进。

现代 LLM 与原始 Transformer 的差异

当今的开源权重 LLM 仍遵循 2017 年的蓝图,但几乎每个组件都被替换为更稳定或更省算力的变体。Meta 在其 LLaMA 与 Llama 3 论文中记录了其中大多数变化:

组件原始 Transformer(2017)当今常见的开源权重 LLM
架构编码器—解码器,6 + 6 层仅解码器,32 层(Llama 3 8B)至 126 层(Llama 3 405B)
模型宽度5124,096(Llama 3 8B)至 16,384(Llama 3 405B)
位置信息固定正弦与余弦位置编码,加至嵌入旋转位置嵌入(RoPE),在注意力内部应用
归一化每个子层之后进行 LayerNorm(后归一化)每个子层之前进行 RMSNorm(前归一化)
前馈激活ReLUSwiGLU
注意力头多头注意力,8 个头分组查询注意力:多个查询头共享 1 个键值头(Llama 3 有 8 个键值头)
前馈层稠密稠密,或专家混合(Llama 4、DeepSeek-V3)

视觉 Transformer(ViT)

视觉 Transformer 将自注意力机制应用于图像:将图像划分为 patch,并将每个 patch 视为一个 token。这种方法在图像分类、目标检测与图像生成上效果显著,常在大型数据集上优于传统 CNN。

多模态 Transformer

现代模型如 GPT-5、Gemini 3、Llama 4 能在单一架构中处理多种输入类型(文本、图像、音频、视频)。这些多模态 Transformer 使用统一的嵌入空间与交叉注意力机制,以同时跨模态进行推理。

高效 Transformer

自注意力的二次复杂度限制了上下文长度。多项创新针对这一问题:

  • Flash Attention:以适配 GPU 片上高速内存的 tile 方式精确计算注意力,使内存占用随序列长度线性增长而非二次增长
  • 旋转位置嵌入(RoPE):通过旋转矩阵编码位置信息,更好地外推至更长序列
  • 线性与稀疏注意力:Linformer 与 Performer 对注意力做近似,Longformer 将大多数 tokens 限定在局部窗口,将超长文档的代价降至 O(n)
  • 专家混合(MoE):每个 token 仅激活参数子集,使更大的模型以相近算力成本运行

Transformer vs. RNN 与 CNN

Transformer 常与另外两种神经网络构件比较:循环层(RNN)与卷积层(CNN)。各自适配不同类型的数据。

只有 Transformer 既能并行训练又能直接连接远距词语

循环层

循环层是循环神经网络(RNN)的基石,擅长处理序列数据。其优势在于执行顺序操作,这对语言处理或时间序列分析等任务至关重要。在循环层中,上一步的输出会作为下一步的输入回馈网络。该闭环机制让网络“记住”先前信息,这对理解序列上下文至关重要。

然而,正如我们已讨论过的,这种顺序处理有两个主要影响:

  • 训练时间更长,因为每一步都依赖前一步,难以并行化。
  • 易受梯度消失影响,难以学习长距离依赖,序列中相隔较远的数据点影响力会减弱。

Transformer 与使用循环层的架构有显著不同,因为它不具循环性。正如我们之前所见,Transformer 的注意力层同时解决了上述两点,使其成为 NLP 领域中 RNN 的自然演进。

卷积层

另一方面,卷积层是卷积神经网络(CNN)的构建基石,以高效处理图像等空间数据著称。

这些层使用在输入上滑动的卷积核(滤波器)来提取特征。卷积核的宽度可调整,使网络可根据任务关注小尺度或大尺度特征。

尽管卷积层善于捕捉空间层级与模式,但在长距离依赖方面存在挑战。其本身不考虑序列信息顺序,对于需要理解序列顺序或上下文的任务不够理想。

这也是 CNN 与 Transformer 分别适配不同数据与任务类型的原因。CNN 凭借处理空间信息的效率在计算机视觉领域占优,而 Transformer 因擅长理解长程依赖而成为复杂序列任务(尤其是 NLP)的首选。

Transformer 的缺点与局限

尽管成功显著,Transformer 仍有一些局限:

  • 二次复杂度:自注意力的计算复杂度随序列长度呈 O(n²) 增长,使超长上下文窗口的算力与内存代价高昂
  • 内存需求:大模型需要大量 GPU 内存,限制了部署选项
  • 训练数据需求:通常需要海量数据集方能取得强性能
  • 幻觉问题:Transformer 预测可能的 token 而非查证事实,因此可能自信地给出错误信息。推理模型有所缓解,但不能根除
  • 位置编码局限:标准位置编码难以泛化到训练中未见过的序列长度

研究正在通过架构创新来应对这些限制,例如 Flash Attention、专家混合,以及检索增强生成(RAG)。

结语

Transformer 的工作方式是:让每个 token 通过自注意力“查看”其他所有 token,然后通过一组相同的层堆叠不断优化这些表示。正是这一设计,使训练得以在 GPU 上并行进行,并解决了束缚 RNN 的远程记忆问题。

让我印象最深的是其核心变化之小。2026 年的 LLM 可能将位置编码、归一化与注意力头替换为更便宜的变体,但您仍能从中一眼认出 2017 年的框图。未解的问题在于:状态空间模型与混合体是否会在长上下文上取而代之,抑或 FlashAttention 等内核能否让注意力的二次代价保持可负担。

要将其付诸实践,请在我们的分步教程中用 PyTorch 构建一个 Transformer,或在我们的Transformer 与 Hugging Face 入门中从预训练模型开始。如果您想继续深入,推荐 Transformer Models with PyTorch 课程,或完整路径的 Developing Large Language Models 学习路线。

常见问题

Transformer 架构如何工作?

Transformer 将文本切分为 tokens,将每个 token 转为嵌入,并加入位置信息。随后,一组层应用多头自注意力(让每个 token 权衡其他所有 token),再接前馈网络,并在每一步外包裹残差连接与归一化。最后通过线性层与 softmax 生成下一个 token 的概率。

仅编码器、仅解码器与编码器—解码器的 Transformer 有何区别?

仅编码器模型(如 BERT)双向读取完整输入,适用于分类与搜索。仅解码器模型(如 GPT 与 Llama)只能看到更早的 tokens,并被训练来预测下一个 token,因此成为聊天类 LLM 的标准设计。编码器—解码器模型(如 T5 与原始 Transformer)将输入序列映射到输出序列,例如翻译。

为何 Transformer 取代了 RNN 与 LSTM?

RNN 与 LSTM 逐个处理 token,使得在 GPU 上训练缓慢,且长序列中的信息易衰减。自注意力让每个 token 直接连接其他所有 token,并行处理整个序列,因此 Transformer 训练更快、长程依赖处理更佳。

ChatGPT 是 Transformer 吗?

是的。GPT 代表 Generative Pre-trained Transformer(生成式预训练 Transformer),支撑 ChatGPT 的 GPT 模型是仅解码器的 Transformer,被训练来预测下一个 token。OpenAI 自 GPT-3 起未再发布架构细节,但每个 GPT 模型都基于 Transformer 设计。

Transformer 的主要局限是什么?

自注意力的代价随序列长度二次增长,因此长上下文窗口在算力与内存上都很昂贵。Transformer 也需要海量训练数据,且可能产生“幻觉”,即自信地陈述错误信息。FlashAttention、分组查询注意力、专家混合与状态空间混合模型等方法正针对这些成本发力。

Josep Ferrer

作者

Josep Ferrer

Josep 是一名专注于欧洲项目的自由职业数据科学家,擅长数据存储、处理、高级分析,以及具有影响力的数据叙事。 

作为一名教育者,他在纳瓦拉大学硕士项目教授大数据课程,并在 Medium、KDNuggets 和 DataCamp 等平台发表文章分享见解。Josep 还在其通讯 Databites(databites.tech)撰写有关数据与技术的内容。 

他拥有加泰罗尼亚理工大学工程物理学学士学位,以及庞培法布拉大学智能交互系统硕士学位。

主题