独家图解Transformer模型从输入到输出逐层深度解析
Transformer模型由谷歌团队于2017年提出,用于机器翻译。通过一个简化玩具模型(d-model=8,头数2)逐层解析其结构:编码器包含多头注意力和前馈网络,解码器包含掩蔽多头注意力及编码器-解码器注意力,损失基于每个token的交叉熵计算。
一、Transformer 模型的起源与发展
Transformer 架构由 Google 研究团队提出,最初专注于自动翻译任务,例如将英语译成德语。该模型在 2017 年发表的论文 Attention Is All You Need 中首次公开,迅速成为自然语言处理领域的里程碑。论文中的图 1 展示了模型的基本架构:
图 1 来自 Attention Is All You Need
为了让抽象概念更具象,我们通过一个玩具模型逐步拆解各个组件。我们的目标是训练模型执行 Token 复制任务,例如将 “dog run” 翻译成 “dog run”。为便于理解,所有维度均设置为极小值:超参数 d‑model = 8(论文基本模型为 512),头数 h = 2(基本模型为 8),词汇量仅 5,Batch 大小为 2,每个句子包含 3 个 Token。下面是我们将要解析的主图,图中标注了各个张量的维度:

二、逐层解析 Transformer 的工作机制
2.1 基础设定与输入
训练过程中,输入是英语的标记化句子,输出是德语的标记化句子。每个训练批次中的项目对应一对翻译句子:
- 项目的 “x” 包含两部分:源句子的所有 Token 加上目标句子除最后一个 Token 外的所有 Token。
- 项目的 “y”(标签)是目标句子除第一个 Token 外的所有 Token(第一个 Token 始终相同,因此不会丢失信息)。
下面是我们玩具示例中编码器的输入:


小提示: 注意图中大部分模块(如残差连接与归一化、前馈网络、最终线性变换)只作用于最后一个维度(8)。要让不同位置的信息“混合”,全靠多头注意力模块。
2.2 编码器中的多头注意力
让我们放大编码器中的多头注意力模块。输入张量形状为 (batch=2, seq_len=3, d_model=8)。经过线性变换后,拆分为 h=2 个头,每个头的维度为 4,并重新排列张量维度,得到 (2, 2, 3, 4)(batch, head, position, head_dim)。
图 2 来自 Attention Is All You Need,作者提供注释
接下来进入 缩放点积注意力 模块,这里是信息在不同位置之间混合的关键。我们只关注 batch 中第一项和第一个头:


经过 Softmax 后,与 V 进行矩阵乘法,第一次融合了来自其他位置的信息:

小提示: 最初在 V 中,三个位置是独立运算的,而这次乘法使得每个位置的输出都包含了其他位置的信息。
回到多头注意力图,Concat 将每个头的输出重新拼合,每个位置由长度为 8 的向量表示:

2.3 前馈网络与残差连接
现在缩小到整个编码器:

论文中称为“位置前馈网络”,它在每个位置上独立运行:从 8 个元素线性变换到 32 个元素,执行 ReLU,再变换回 8。论文基本模型从 512 到 2048 再回到 512。前馈块的输出回到 (2, 3, 8)。
下面是论文基本模型中编码器的样子(输入输出尺寸一致):

2.4 解码器中的掩蔽多头注意力
现在完全缩小,查看解码器:

解码器中的 A 部分(掩蔽多头注意力)至关重要——它在训练时防止模型“作弊”。假设英语句子 “she pet the dog” 对应黑话 “eshay etpay ethay ogday”。如果模型在训练时能看到 “ogday”,就不需要学习用上下文预测,只需复制。掩码通过在缩放点积注意力中将未来位置的值设为负无穷(Softmax 后变为 0)来实现。
由于解码器输入序列长度为 2,进入缩放点积注意力的维度为 (2, 2, 2, 4):

掩码后的 Softmax 与 V 相乘:

2.5 编码器-解码器注意力(B 部分)
解码器中的第二个多头注意力,输入来自两处:K 和 V 来自编码器的输出(维度 (2,3,8)),Q 来自掩蔽多头注意力的输出(维度 (2,2,8))。

在缩放点积注意力中,V、K 维度为 (2,2,3,4),Q 维度为 (2,2,2,4)。矩阵运算后得到 (2,2,2,4):


2.6 输出与损失计算
解码器输出后经过线性变换,将 (2,2,8) 变换为 (2,2,5)(5 是词汇量)。这相当于反向嵌入,得到每个位置在词汇上的概率分布:


关键理解: 模型对翻译句子中的每个 Token 分别进行预测和评分,而不是对整个句子做一个预测。损失计算使用交叉熵(论文中使用了标签平滑)。

下图显示了玩具模型中的参数数量(作为合理性检查):

三、使用训练好的模型
现在看看推理时如何输入源语言文本并输出翻译。我们使用另一个训练好的玩具模型(词汇量 11,d‑model=512)。
- 将源句子输入编码器,保留其输出(维度
(1,10,512))。 - 将输出序列的第一个 Token(始终为 1)输入解码器,预测第二个 Token。



- 使用贪心或束搜索(束大小为 4),反复将已预测的 Token 拼接到输入中,直到遇到结束 Token 或达到最大长度。


四、常见问题解答
Q1: 训练期间,输入是英语的标记化句子,输出是德语的标记化句子吗?
是的,大致如此。 源语言句子输入编码器,目标语言句子输入解码器(经过偏移和掩码),模型学习预测目标句子的下一个 Token。
Q2: 训练批次中的每个项目到底是什么?
每个项目对应一对翻译句子。项目的 “x” 包含源句子的所有 Token 和目标句子除最后一个外的所有 Token。项目的 “y”(标签)是目标句子除第一个外的所有 Token。
- 每个项目对损失贡献
(目标句子长度 - 1)个“分类”。
Q3: 为什么要将模型输出的结果输入到模型中,“带有掩码的多头注意力”如何防止作弊?
将输出结果输入到模型中,模型可以基于源句子的含义和已经翻译的单词来预测下一个单词。掩码将未来位置的注意力分数设为负无穷(Softmax 后变为 0),使得预测第 i 个 Token 时,模型只能看到位置 1 到 i-1 的信息,无法直接看到正确答案。
Q4: 究竟什么是多头注意力?
注意力机制让模型在序列中每个位置都能关注其他位置的信息。多头注意力是将向量切分成多个组(头),让每个组独立进行注意力计算,然后将结果拼合。例如 d‑model=512,8 个头,每个头处理 64 维的向量。不同头可以学会关注不同的关系(如语法、语义等)。
Q5: 损失究竟如何计算?不可能是翻译完整句子后计算。
正确。损失的计算方式与多分类问题相同:对目标句子中的每个 Token,模型输出一个词汇表上的概率分布(类别是词汇表中的每个 Token),标签是该位置的实际 Token,使用交叉熵计算损失。论文中还使用了标签平滑来处理同义词等非绝对性。
Q6: 训练后,究竟输入什么来生成翻译?
不能一次性给出完整翻译。需要多次使用模型:先把源句子输入编码器得到上下文表示,然后把起始 Token 输入解码器预测第二个 Token,再把前两个 Token 输入预测第三个,重复直到句子结束。实际中常使用束搜索,每次保留多个候选序列。
Q7: 为什么有三个箭头进入多头注意力模块?
三个箭头表示三个输入(Query、Key、Value)。在编码器的自注意力中三个输入相同;在解码器的掩蔽自注意力中三个输入相同(但被掩码);在编码器-解码器注意力中,Key 和 Value 来自编码器输出,Query 来自解码器上层。箭头也暗示每个输入在注意力计算前会经过独立的线性变换。
五、结论
它很漂亮!如果不是因为它非常有用,我可能不会这么想。我现在体会到了人们第一次看到它工作时的感觉。这个用很少代码就能表达的优雅、可训练的模型学会了如何翻译人类语言,并击败了几十年来建立的复杂机器翻译系统。它神奇、聪明,令人难以置信。而将这种技术应用于互联网上的每一点文本——就这样,大语言模型诞生了!
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:独家图解Transformer模型从输入到输出逐层深度解析要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点BookAI基于ChatGPT,能与图书智能对话,快速提取核心概念,支持30余种语言互动及个性化推荐,广泛应用于个人阅读、学术研究、教育及企业培训,提升学习效率。
PublishStudio是一站式内容创作、管理和分发平台,通过所见即所得编辑器、生成式AI、媒体工具、内容规划器及语气分析等功能,简化从创意到发布的全流程,支持一键多平台分发,提升内容运营效率。
BerthaAI是一款跨网站的AI内容助手,适用于博客、社交媒体、产品描述及邮件营销等文字创作场景。它能生成可读性强的高质量文本,显著压缩内容团队的选题、起草和修改周期,并在灵感枯竭时提供破局工具,提升内容产出速度。
Poly ai是一款能理解客户意图并处理复杂业务的企业级AI语音助手,可自动处理75%来电,支持12种语言,客户满意度提升15个百分点。具备智能工单处理、情绪识别、多语言交互等功能,广泛应用于酒店、金融、零售等领域。
- 日榜
- 周榜
- 月榜
热点快看
