文章目录
-
-
- 0. 前言
- 1. Transformer的提出背景
- 2. 模型架构概览
- 3. Transformer的工作过程分解
- 4. 举个例子
- 5. 编码器和解码器堆栈(Encoder and Decoder Stacks)
-
- 5.1 编码器
- 5.2 解码器
- 6. 前馈神经网络(Position-wise Feed-Forward Networks)
-
- 6.1 前馈神经网络的作用
- 6.2 前馈神经网络的结构
- 7. 总结
-
0. 前言
按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。
Attention is All You Need 这篇论文(以后称为“原文”)提出了一种新的神经网络架构——Transformer,它完全基于注意力机制,摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)。
本文是这个系列的第一篇文章:
- 第一篇:提出背景、模型架构及推理过程(本篇)
- 第二篇:多头注意力机制
- 第三篇:位置编码
本篇将基于***Attention is All You Need***详细说明Transformer的提出背景、模型架构及推理过程。
1. Transformer的提出背景
传统的序列到序列(Seq2Seq)模型通常使用RNN或CNN来处理输入和输出序列。然而,这些模型在处理长距离依赖关系时存在困难,因为它们的计算复杂度随着序列长度的增加而增加。
- RNN:RNN通过逐步处理序列中的每个元素来捕捉序列中的依赖关系,但由于其顺序性,难以并行化,且在处理长序列时容易出现梯度消失或梯度爆炸问题。
- CNN:CNN通过卷积操作并行处理序列中的多个位置,但其计算复杂度仍然与序列长度相关,且需要多层卷积才能捕捉长距离依赖关系。
Transformer模型作为一种创新的解决方案,通过利用自注意力机制而非传统的递归网络,允许模型不考虑输入或输出序列中依赖关系的距离。克服了传统递归模型的局限性,从而实现了更高的效率和更好的性能。这对于需要处理大量数据和复杂模式识别的任务尤其重要,如自然语言处理中的文本生成、机器翻译等。
2. 模型架构概览
Transformer模型采用了经典的编码器-解码器(Encoder-Decoder)结构,但与传统的RNN或CNN不同,Transformer完全基于自注意力机制和前馈神经网络。
编码器-解码器的介绍可以参考此前文章:【单点知识】基于PyTorch讲解自动编码器(Autoencoder)。

3. Transformer的工作过程分解
Transformer的工作过程可以分为以下几个步骤:
-
输入嵌入(Input Embedding):词嵌入的作用是把每个单词(Token)转换成多维的连续的向量,关于词嵌入详细的说明可以参考此前文章【PyTorch单点知识】torch.nn.Embedding模块介绍:理解词向量与实现
-
位置编码(Positional Encoding):由于Transformer模型不使用传统的按顺序处理方式,它需要一种方法来理解单词(Token)在句子(Input)中的位置,位置编码就起到了这个作用。对于输入的 n n n个单词(Token)在词嵌入后,位置编码也会被添加到嵌入向量中,生成一个 ( n , d m o d e l ) (n, d_{model}) (n,dmodel)维的矩阵 X X X。
-
多头注意力机制(Multi-Head Attention):这是Transformer的核心部分。模型通过多头注意力机制来关注句子中的不同部分。例如,在处理“I love cats”时,模型可能会注意到“love”和“cats”之间的关系。详细原理可以参考此前文章【单点知识】多头注意力机制:torch.nn.MultiheadAttention的原理与实践
-
加法和归一化(Add & Norm):在多头注意力机制之后,模型的输出会与原始输入相加,并进行归一化处理。这有助于稳定训练过程。
-
前馈网络(Feed Forward):每个位置的向量会通过一个前馈神经网络进行进一步处理。这个网络通常由两层全连接层组成,中间有一个激活函数。
-
重复层(Nx):上述步骤(多头注意力、加法和归一化、前馈网络)会重复多次(N次),以提取更复杂的特征。
-
输出(Outputs):最终,模型的输出会被传递给一个线性层,然后通过Softmax函数生成概率分布。例如,在机器翻译任务中,这个概率分布可以用来预测下一个单词。
-
输出嵌入(Output Embedding):在生成任务中,输出序列通常需要被嵌入回词汇空间,以便生成最终的文本。
4. 举个例子
假设我们有一个简单的机器翻译任务:
-
输入序列(Inputs):英文句子“I ate chips”。
-
目标序列(Outputs):中文句子“我吃了薯片”。
Transformer的整个推理过程可以用下图表示出来:

其中<SOS>是Start Of Sentence的意思,因为I是第一个输入,没有上一步的参考输出,只能用空位<SOS>填充。后续每一步的推理都会参考上一步的输出,即输出右移 (Outputs shifted right)。模型从 <SOS> 开始,逐步生成中文句子。具体推理步骤:
-
第一步:
- Inputs:
I - Output(shifted right):
<SOS> - 模型根据
I和<SOS>预测“我”是最佳的输出。
- Inputs:
-
第二步:
- Inputs:
ate - Output(shifted right):
<SOS>我 - 模型根据
ate和<SOS>我预测“吃了”是最佳的输出。
- Inputs:
-
第三步:
- Inputs:
chips - Output(shifted right):
<SOS>我吃了 - 模型根据
chips和<SOS>我吃了预测“薯片”是最佳的输出。
- Inputs:
而这里的翻译模型之所以能知道chips应该翻译成薯片而不是芯片或者是筹码,是因为前面的ate引起了chips的注意力,模型调整了chips的语义。
5. 编码器和解码器堆栈(Encoder and Decoder Stacks)
5.1 编码器
编码器由6个(Nx=6)相同的层堆叠而成,每层包含两个子层

- 多头自注意力(Multi-Head Self-Attention):允许模型在处理序列时同时关注序列中的不同位置。
- 前馈神经网络(Feed-Forward Network):一个简单的全连接网络,应用于每个位置。
每个子层(sub-layer)后面都使用了残差连接(Residual Connection)和层归一化(Layer Normalization),以帮助模型训练。为了把每个子层都链接起来,从嵌入层(Input Embedding和Output Embedding)开始(包括嵌入层),所有子层的维度 d m o d e l d_{model} dmodel都定为512(或者其他常数值)。
5.2 解码器
解码器也由6个(Nx=6)相同的层堆叠而成:

除了编码器中的两个子层外,解码器还增加了第三个子层Masked Multi-Head Attention,它是Transformer解码器中的一种特殊注意力机制,主要用于防止模型在生成序列时“偷看”未来的信息。在计算注意力分数时,未来的位置会被掩码(设置为一个极小的值,如负无穷)。这样,经过Softmax后,这些位置的注意力权重会变为0,模型无法关注未来的词。
6. 前馈神经网络(Position-wise Feed-Forward Networks)
在Transformer模型中,Position-wise Feed-Forward Networks(位置逐点前馈网络) 是每个编码器和解码器层中的一个重要组件。它的作用是对每个位置的表示进行非线性变换,进一步增强模型的表达能力。
6.1 前馈神经网络的作用
- 特征提取:对每个位置的表示(即每个词的向量)进行独立的非线性变换,提取更复杂的特征。
- 增强表达能力:通过多层感知机(MLP)结构,引入非线性激活函数(如ReLU),增强模型的表达能力。
- 位置独立性:每个位置的表示独立通过相同的全连接网络,因此称为“位置逐点”(Position-wise)。
6.2 前馈神经网络的结构
Position-wise Feed-Forward Networks 通常由两层全连接层组成:
1. 第一层:将输入从 d model d_{\text{model}} dmodel(例如512)维映射到更高的维度(如 4 × d model 4 \times d_{\text{model}} 4×dmodel)。
2. 激活函数:在第一层之后应用非线性激活函数(如ReLU)。
3. 第二层:将高维表示映射回 d model d_{\text{model}} dmodel维。
公式表示为:
FFN ( x ) = max ( 0 , x W 1 + b 1 ) W 2 + b 2 \text{FFN}(x) = \max(0, x W_1 + b_1) W_2 + b_2 FFN(x)=max(0,xW1+b1)W2+b2
其中 W 1 W_1 W1、 W 2 W_2 W2 是可学习的权重矩阵, b 1 b_1 b1、 b 2 b_2 b2是偏置项。
Position-wise Feed-Forward Networks 通常紧跟在多头注意力机制之后。注意力机制负责捕捉序列中词与词之间的关系,而Feed-Forward Networks 则对每个位置的表示进行进一步的非线性变换。两者结合,使得模型既能捕捉全局依赖关系,又能提取局部特征。
7. 总结
以上就是Transformer的整体架构介绍,通过举例说明了Transformer的具体推理过程。Transformer的另外两大重点:注意力和位置编码将在后面单独说明。
可能大家都想学习AI大模型技术,也_想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习_,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。
为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和MoPaaS魔泊云联合梳理打造了系统大模型学习脉络,这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️

【大模型全套视频教程】
教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。
从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。
同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!

深耕 AI 领域技术专家带你快速入门大模型
跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!

【精选AI大模型权威PDF书籍/教程】
精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。

【AI 大模型面试题 】
除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。
【大厂 AI 岗位面经分享(92份)】

【AI 大模型面试真题(102 道)】

【LLMs 面试真题(97 道)】

【640套 AI 大模型行业研究报告】

【AI大模型完整版学习路线图(2025版)】
明确学习方向,2025年 AI 要学什么,这一张图就够了!

👇👇点击下方卡片链接免费领取全部内容👇👇

抓住AI浪潮,重塑职业未来!
科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。
行业趋势洞察:
- 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
- 人才争夺战: 拥有3-5年经验、扎实AI技术功底和真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
- 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。
与其观望,不如行动!
面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。

01 为什么分享这份学习资料?
当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。
因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!
我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。
*02 这份资料的价值在哪里?*
专业背书,系统构建:
-
本资料由我与MoPaaS魔泊云的鲁为民博士共同整理。鲁博士拥有清华大学学士和美国加州理工学院博士学位,在人工智能领域造诣深厚:
-
- 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇。
- 拥有多项中美发明专利。
- 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
-
目前,我有幸与鲁博士共同进行人工智能相关研究。

内容实用,循序渐进:
-
资料体系化覆盖了从基础概念入门到核心技术进阶的知识点。
-
包含丰富的视频教程与实战项目案例,强调动手实践能力。
-
无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考,助力你提升技术能力,向大模型相关岗位转型发展。



抓住机遇,开启你的AI学习之旅!

1147

被折叠的 条评论
为什么被折叠?



