PyTorch深度学习实战 | Transformer模型初识

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 本文介绍了Transformer模型在机器翻译任务中的工作原理。主要内容包括:1)模型分为编码器(处理英文输入)和解码器(生成中文输出)两部分;2)推理时采用自回归模式,逐步生成翻译结果;3)训练时使用教师强制模式,始终以真实标签指导模型学习。文章详细阐述了编码器-解码器结构的工作流程,包括词嵌入、多头注意力机制等核心组件,以及如何通过残差连接和层标准化优化模型性能。最后解释了编码器和解码器三个关键计算步骤的张量维度变化过程。

 专栏介绍

       这个专栏下我将会写5篇文章帮助大家更好的理解Transformer

【1】Transformer模型初识

【2】词嵌入和位置编码

【3】多头注意力机制

【4】层归一化层和FeedForward

【5】手动计算和完整的代码实现

宏观理解Transformer

    详细很多人都听过或者用过这个模型,你真的掌握Transformer了嘛?让我们来看一下下面这

两个问题。

问题一解释下面这两个概念:

Transformer 模型的工作模式:

(1)训练模式,教师强制,Teacher Forcing 模式

(2)推理模式,自回归,Autoregressive 模式

问题二,在下图解码器的这个部分中,回答谁是Q,谁是K,谁是V

image.gif

基于 “英译汉” 机器翻译任务快速认识 Transformer

     现在我们来假想一个英译汉的机器翻译任务。先把 Transformer 模型看作一个整体:假设待翻

译的英文数据是 “Are you OK?”,对应的中文标注数据是 “你好吗?”,经过模型的推理

计算后,最终输出的翻译结果为 “你干什么?”。这个模型核心由两部分构成 —— 编码器与解码

器。

image.gif

Transformer 的推理模式即自回归,Autoregressive 模式

   模型已经完成训练后,我们就可以利用训练好的参数对未知数据进行推理计算。比如在这个翻译

任务中,我们会输入全新的英文句子,让模型直接输出对应的中文翻译结果 —— 而推理过程中,

我们并不知道这句英文的标准答案(也就是之前提到的、没有标注的中文数据)。那么,模型该如

何一步步生成这个 “未知的中文翻译结果” 呢?

image.gif

自回归推理模式本质是一个循环生成过程。在第一次循环中,待翻译的英文句子 “Are you OK?”

会从模型左下方输入,而模型右下方不会有完整的中文标注数据输入 —— 最初只会传入一个特殊

起始符号<start>,以此提示模型:中文翻译任务正式启动。

image.gif

    Transformer 的编码器负责接收并处理左侧的英文数据,解码器则接收并处理特殊起始符号

<start>。在二者的协同作用下,模型完成第一次推理:若模型计算准确,其右上角会输出翻译结

果的第一个字 “你”。由于输入的英文内容固定不变,左侧编码器仅需进行一次计算;到第二次推

理时,解码器会接收并处理起始符号<start>和已生成的 “你”,进而完成第二次推理,生成翻译结

果的第二个字 “好”

image.gif

由于左侧编码器只需完成一次计算,后续推理可直接复用其输出的编码结果,因此我们可以将编码

器省略,把它的编码结果视为一个固定向量传入解码器。接下来模型会继续按上述逻辑循环 n 轮:

每一轮解码器都会接收之前生成的所有中文 tokens 与起始符号<start>,逐步生成后续内容,直到

右上方输出特殊结束符号<end>,便意味着整个翻译过程完成。

image.gif

基于此前已生成的结果,持续推理后续的输出内容。模型逐步生成输出序列的过程中,自回归的推

理模型如图所示。

image.gif

Transformer 的训练模式即教师强制,Teacher Forcing 模式

    我们先把 Transformer 看作一个基础的深度学习模型。训练这类模型的核心逻辑是:计算模型

的输出结果与人工标注的标准答案之间的误差,再通过优化算法找到能让损失函数最小化的模型参

数从整体视角看 Transformer 的前向传播过程:输入是英文句子 “Are you OK?”预期输出是中

文标注 “你好啊”。但 Transformer 有个特殊设计 —— 人工标注的 “你好啊”,除了作为计算误差的

参考,还需要作为解码器的输入参与训练。

          之前 “模型将英文与中文标注一起推理出‘你干什么’” 的例子,其实没法体现 Transformer 真

实的训练过程。在教师强制(Teacher Forcing)的训练模式下,模型输出的字数必须和人工标注

的真实数据长度完全一致 —— 比如标注数据是 “你干嘛”(3 个字),模型就只能预测出 3 个字的

结果,而不会是长度不同的 “你干什么”。接下来计算损失函数、反向传播求解梯度,再基于梯度

更新模型参数,到这里就完成了一次训练迭代。

image.gif

教师强制模式的前向传播,核心是根据不同长度的真实中文标签,分步骤进行推理计算。

举个具体例子:假设待翻译的英文是 “Are you OK?”,对应的中文标注是 “你好吗?”(5 个字)。

我们会先给标注数据添加特殊起始符号<start>,再构造 5 组训练数据 —— 每组数据的时间步 t,

都与解码器输入的标签片段长度完全一致。

   比如在第二个时间步,若解码器输出的 y3 本应对应 “好” 字,却出现了预测错误,我们会基于这

个误差优化损失函数。关键在于,即便第二个时间步的预测结果有误,到了第三个时间步,解码器

也不会使用前一步的错误输出,而是依然强制接收真实的标签数据作为输入 —— 这种 “无论前序

预测是否正确,都以真实标签引导后续训练” 的方式,就是教师强制(Teacher Forcing)模式的核

心。

image.gif

整体而言,“Are you OK” 会被输入到编码器进行编码处理。而输入给解码器的数据,从结构上可看

作下三角形式 —— 这意味着在训练过程中,每个时间步的解码器输入仅包含此前的真实标签(不

包含当前及后续的标签信息)。模型的预测结果是一个列向量y,我们需要将其与人工标注的标签

向量y进行比对,进而计算所有时间步的损失并反向传播。值得注意的是,解码器的输入本质上仍

是一整行数据,只是会通过因果掩码矩阵在注意力计算阶段发挥作用,确保每个位置的预测仅依赖

于之前的信息,避免未来信息的 “泄露”。

image.gif

image.gif


Transformer的工作的架构设计和工作流程

整体包括:

编码器 - 解码器结构 (Encoder-Decoder)

词向量 (Embedding)和位置编码 (Positional Encoding)

多头注意力机制 (Multi-Head-Attention)

前馈神经网络 (Feed Forward)

残差连接 (Add) 和层标准化 (Norm)

线性层 (Linear) 和 softmax 层

image.gif

词向量 (Embedding)和位置编码 (Positional Encoding)

词的最终表示等于词向量表示加上位置编码

编码器和解码器结构

有多组编码器和解码器串联堆叠的工作,主要包含了3个计算

第一个计算

     编码器基于:自注意力机制 (Multi-Head Attention)前馈神经网络 (Feed Forward)对 “英文的待

译数据” 进行编码。

待译英文的张量 x1 的尺寸为 [B, Q1, D]:

B 个样本每个样本包括 Q1 个单词每个单词的嵌入维度是 D

经过解码器之后(可以看出提取特征),输出的尺寸是[B, Q1, D]

第二个计算

     解码器基于:带有掩码的 (Masked)自注意力机制 (Multi-Head Attention)对 “中文的标注数据”

进行编码。(也可以看成提取特征)

中文标注的张量 x2 的尺寸为 [B, Q2, D]:

B 个样本每个样本包括 Q2 个单词每个单词的嵌入维度是 D

(对于 x1 和 x2:

1. 包含的样本个数,因此具有相同的批量大小 B

2. 英文和中文的表达方式不同,所以句子的长度不同

3. 嵌入维度 D 在通常情况下相同,保证英文和中文在特征的维度上对齐,使模型的设计更加简洁)输出的尺寸是[B, Q2, D]

第三个计算

     解码器的第 2 个注意力层:编码器 - 解码器注意力层(Multi-Head Attention),对两组数据一起

解码得到解码器的最终输出。通过编码器和解码器中的 “自注意力机制”:将输入数据中的全局信息

计算并附加到解码结果中,输出的尺寸是[B, Q2, D]

x3 的单词数量会与 x2 相同;因为将英文 x1 翻译为中文 x2,所以翻译结果 x3 的长度,和中文标

注 x2 的长度相同。

目录
相关文章
|
16天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
5847 30
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
1天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
559 134
|
10天前
|
存储 定位技术 数据库
CodeGraph 如何让 Claude Code减少 7 成工具调用?
CodeGraph 为 Coding Agent 提供本地代码知识图谱,把函数、类、调用链和框架路由提前整理成“项目地图”,减少盲目搜索和文件读取。它不是新 Agent,而是上下文基础设施,让 Agent 更快找到正确代码路径,平均减少 7 成工具调用。
1174 2
|
8天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
958 1
|
17天前
|
人工智能 自然语言处理 供应链
|
8天前
|
人工智能 弹性计算 安全
阿里云618活动时间、活动入口、优惠活动详细解读
2026年阿里云618创新加速季已全面开启,作为年度力度最大的云产品促销活动,本次大促覆盖轻量应用服务器、ECS云服务器、GPU云服务器、数据库、AI算力、安全服务、CDN等全品类产品,推出5亿元算力补贴、新用户限时秒杀、普惠满减、企业专享、免费试用、云大使返佣等多重福利,个人开发者、中小企业、AI团队均可享受专属低价。本文将系统梳理2026年阿里云618活动的完整时间节点、官方参与入口、各类优惠细则、使用规则、热门产品推荐及实操代码,帮助用户精准参与、高效省钱,以最低成本完成上云部署。
760 4
|
8天前
|
运维
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
欢迎报名|2026 Agentic AICon—智能体基础设施与AgentOps专场,邀您参会
1430 0