1、 Transformer 整体结构

Transformer 作为现代序列建模的里程碑模型,其架构核心由编码器(Encoder)与解码器(Decoder)两部分构成。以中英文翻译任务为例,其整体结构呈现出对称且层次化的设计特点:

fig:

编码器与解码器均由 6 个结构相同的 “块”(block)堆叠而成(论文中选择 6 作为堆叠数量是实验验证的结果,实际应用中可根据任务复杂度调整,如小型模型可用 4 层,大型模型可增至 12 层)。值得注意的是,这些块虽然结构一致,但彼此不共享权重,每层都有独立的参数学习空间。

编码器的每个块包含两个关键子层:

  • 自注意力层(Self-Attention):该层使编码器在处理某个词语时,能动态参考输入序列中其他所有词语的信息,从而捕捉上下文关联。例如在处理 “他喜欢编程” 中的 “编程” 时,会关注 “喜欢” 的语义关联。
  • 前馈神经网络层:对自注意力层的输出进行非线性变换,且该变换在序列的每个位置上独立执行,不涉及跨位置交互。

fig:

encoder的输入首先会流入自注意力层(self-Attention),该层在帮助Encoder编码一个特定词语时,会查看输入句子中的其他词语。

自注意力层(self-attention layer)是一种机制,它允许编码器在处理一个词语时,参考整个句子的其他词语,从而捕获句子中词语之间的相互关系和上下文信息,这对于理解和生成更准确的语言表述非常重要。

自注意力层的输出会被馈送到前馈神经网络,完全相同的前馈网络独立应用于每个位置。

Decoder也具有这两个层,但他们之间有一个注意力层,可以帮助解码器更关注输入句子的相关部分(类似于seq2seq模型中的注意力的作用)。

fig:

2、Transformer的处理流程

第一步: 获取输入句子的每一个单词的表示向量XX由单词的Embedding(Embedding就是从原始数据提取出来的Feature)和单词位置的Embedding相加得到的。

fig:

第二步: 将得到的单词表示向量矩阵(如上图所示,每一行都是一个单词的表示X)传入Encoder中,经过6个Encoder block后得到句子所有单词的编码矩阵信息C,如下图。单词向量矩阵用

表示,n是句子中单词个数,d是表示向量的维度(论文中n=512),每一个Encoder block输出的矩阵维度和输入是完全一致的。

fig:

第三步: 将Encoder输出的编码信息矩阵 C传递到Decoder中,Decoder依次会根据当前翻译过的单词 1~i翻译下一个单词i+1,如下图所示。在使用的过程中,翻译到单词i+1的时候需要通过 **Mask(掩盖)**操作遮住i+1之后的单词。

fig:
上图Decoder接收了Encoder的编码矩阵C,然后首先输入一个输入一个翻译开始符"“,预测第一个单词 “I”,然后输入翻译开始符**”"**和单词 “I”,预测单词 ”have“,以此类推。

这就是Transformer使用时候的大致流程,接下来来看下各个部分的细节。

3、 Transformer的输入

Transformer中的单词的输入表示x单词Embedding 和 **位置 Embedding(position Encoding)**相加所得。

fig:

3.1 单词Embedding

单词Embedding由很多种方式可以获取,例如可以采用 Word2VecGlove等算法预训练得到,也可以在Transformer中训练得到。

3.2 位置Embedding

Transformer中除了单词的Embedding,还需要使用位置Embedding表示单词出现在句子中的位置。因为Transformer不采用RNN的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于NLP来说非常重要。 所以Transformer中使用位置Embedding保存单词在序列中的相对或绝对位置。

位置Embedding用 PE 表示,PE 的维度与单词Embedding是一样的。PE可以通过训练得到,也可以使用某种公式计算得到。在Transformer中采用了后者,计算公式如下:

其中,pos表示单词在句子中的位置,d表示PE的维度(与词Embedding一样),2i表示偶数的维度,2i+1表示奇数维度(即 )。使用这种公式计算PE有以下好处:

  • 使PE能够适应比训练集里面所有句子更长的句子,假设训练集里面最长的句子是有20个单词,突然来了一个长度为21的句子,则使用公式计算可以计算出第21位的Embedding
  • 可以让模型容易地计算出相对位置,对于固定长度的间隔k,PE(pos+k) 可以使用 PE(pos) 计算得到。因为,

将单词的词Embedding和位置Embedding相加,就可以得到单词的表示向量x,x就是Transformer的输入。

4、Self-Attention(自注意力机制)

Transformer Encoder和Decoder:

fig:

上图是论文中Transformer的内部结构图,左侧位Encoder block,右侧为Decoder block。红色圈中的部分为 Multi-Head Attention ,是由多个 Self-Attention 组成,可以看到Encoder block包含一个Multi-Head Attention(其中有一个用到Masked)。Multi-Head Attention上方还包括一个Add & Norm层,Add表示残差链接(Residual Connection)用于防止网络退化,Norm表示Layer Normalization,用于对每一层的激活值进行归一化。

因为 Self-Attention 是Transformer的重点,所以重点关注Multi-Head Attention以及 Self-Attention,首先详细了解下Self-Attention的内部逻辑。

4.1 Self-Attention结构

fig:fig:

上图是Self-Attention 的结构, 在计算的时候需要用到矩阵 Q(查询),K(键值),V(值)。在实际中,Self-Attention接收的是输入(单词的表示向量x组成的矩阵X)或者上一个Encoder block的输出。而 Q,K,V 正是通过Self-Attention 的输入进行线性变换得到的。

4.2 Q,K,V的计算

Self-Attention的输入用矩阵X进行表示,则可以使用线性变阵矩阵WQ,WK,WV计算得到Q,K,V。计算如下图所示,注意X, Q, K, V的每一行都表示一个单词。

fig:

4.3 Self-Attention的输出

得到矩阵Q,K,V之后就可以计算出Self-Attention的输出了,计算的公式如下:

是Q,K矩阵的列数,即向量维度。

公式中计算矩阵Q和K每一行向量的内积,为防止内积过大,因此除以 的平方根。Q 乘以 K 的转置后,得到的矩阵行列数都为n,n为句子单词数,这个矩阵可以表示单词之间的attention强度。下图为Q 乘以 ,1 2 3 4表示的是句子中的单词。

fig:

得到 之后,使用Softmax计算每一个单词对于其他单词的attention系数,公式中的softmax是对矩阵的每一行进行softmax,即每一行的和都变为1.

fig:

得到softmax矩阵之后可以和v相乘,得到最终的输出Z。

fig:

上图中softmax矩阵的第1行表示单词1与其他所有单词的attention系数,最终单词1的输出 等于所有单词i的值根据attention系数的比例加在一起得到,如下图所示:

fig:

4.4 Multi-Head Attention

在上一步,已经知道怎么通过Self-Attention 计算得到输出矩阵Z,而Multi-Head Attention是由多个Self-Attention 组合形成,下图为论文中Multi-Head Attention的结构图:

fig:

从上图可看到Multi-Head Attention包含多个Self-Attention层,首先将输入X分别传递到h个不同的Self-Attention中,计算得到h个输出矩阵Z。下图是h=8时候的情况,此时会得到8个输出矩阵Z。

fig:

得到8个输出矩阵 到 之后,Multi-Head Attention将它们拼接起来(concat),然后传入一个Linear层,得到Multi-Head Attention最终的输出Z。

fig:

可以看出Multi-Head Attention的输出矩阵Z 与其输入的矩阵X的维度是一样的。

5、 Encoder结构

fig:

上图红色部分就是Transformer的Encoder block结构,可以看到是由Multi-Head Attention,Add & Norm,Feed Forward, Add & Norm 组成。刚已经了解了Multi-Head Attention的计算过程,现在了解下Add & Norm 和 Feed Forward 部分。

5.1 Add & Norm

Add & Norm层由Add 和Norm两部分组成,其计算公式如下:

其中, 表示Multi-Head Attention或者Feed Forward的输入,MultiHeadAttention(X) 和 FeedForward(X)表示输出(输出与输入X维度是一样的,所以可以相加)。

Add 指 , 是一种残差链接,通常用于解决多层网络训练的问题,可以让网络只关注当前差异的部分,在ResNet中经常用到:

fig:

Norm 指Layer Normalization,通常用于RNN结构,Layer Normalization会将每一层神经元的输入都转成均值方差都一样的,这样可以加快收敛。

5.2 Feed Forward

Feed Forward层比较简单,是一个两层的全连接层,第一层的激活函数为Relu,第二层不使用激活函数,对应的公式如下:

X 是输入,Feed Forward最终得到的输出矩阵的维度与X 一致。

5.3 组成Encoder

通过上面描述的Multi-Head Attention, Feed Forward,Add & Norm就可以构造出一个Encoder block,Encoder block接收输入矩阵,并输出一个矩阵。通过多个Encoder block叠加就可以组成Encoder。

第一个Encoder block的输入为句子单词的表示向量矩阵,后续Encoder block的输入是前一个Encoder block的输出,最后一个Encoder block输出的矩阵就是 编码信息矩阵C,这一矩阵后续会用到Decoder中。

fig:

6、 Decoder 结构

fig:

上述红色部分为Transformer的Decoder block结构,与Encoder block相似,但存在一些区别:

  • 包含了两个Multi-Head Attention层
  • 第一个Multi-Head Attention 层采用了Masked操作
  • 第二个Multi-Head Attention 层的K,V矩阵使用Encoder 的 编码信息矩阵C 进行计算,而Q使用上一个Decoder block的输出计算。
  • 最后有一个Softmax 层计算下一个翻译单词的概率。
6.1 第一个Multi-Head Attention

Decoder block的第一个Multi-Head Attention采用 Masked操作,因为在翻译的过程中是顺序翻译的,即翻译完第i个单词,才会翻译第i+1个单词。通过Masked 操作可以防止第i个单词知道i+1个单词之后的信息。下面以"我有一只猫"翻译成"I have a cat"为例,了解下Masked操作。

下面的描述中使用了类似Teacher Forcing的概念,在Decoder的时候,是需要根据之前的翻译,求解当前最有可能的翻译,如下图所示。首先根据输入"" 预测出第一个单位为"I",然后根据输入" I" 预测下一个单词"have"。

fig:fig:

Decoder可以在训练的过程中使用Teacher Forcing并且并行化训练,即将正确的单词序列( I have a cat)和对应输出(I have cat)传递给Decoder。那么在预测第i个输出时,就要将第i+1之后的单词掩盖住,注意Mask操作是在Self-Attention的Softmax之前使用的,下面用 0 1 2 3 4 5分别表示" I have a cat "

第一步:是Decoder的输入矩阵和 Mask矩阵,输入矩阵包含" I have a cat" (0, 1, 2, 3, 4)五个单词的表示向量, Mask是一个的矩阵。在Mask可以发现单词0只能使用单词0的信息,而单词1可以使用单词0, 1的信息,即只能使用之前的信息。

fig:

第二步:接下来的操作和之前的Self-Attention一样,通过输入矩阵X计算得到Q,K,V矩阵,然后计算Q和。

fig:

第三步: 在得到之后需要进行Softmax,计算Attention score,在Softmax之前需要使用Mask矩阵遮挡住每一个单词之后的信息,遮挡操作如下:

fig:

得到Mask 之后再Mask 上进行Softmax,每一行的和都为1。但单词0在单词1,2,3,4上的Attention score都为0.

第四步:使用Mask 与矩阵V相乘,得到输出Z,则单词1的输出向量 是只包含单词1信息的。

fig:

第五步:通过上述步骤就可以得到一个Mask Self-Attention的输出矩阵,然后和Encoder 类似,通过Multi-Head Attention拼接多个输出 然后计算得到第一个Multi-Head Attention的输出Z,Z与输出X维度一样。

6.2 第二个Multi-Head Attention

Decoder block第二个Multi-Head Attention变化不大,主要的区别在于其中Self-Attention的K,V矩阵不是使用 上一个Decoder block的输出计算的,而是使用 Encoder的编码信息矩阵C计算的。

根据Encoder的输出C计算得到K,V,根据上一个Decoder block的输出Z 计算Q(如果是第一个Decoder block则使用输入矩阵X进行计算),后续的计算方法与之前描述的一致。

这样做的好处是在Decoder的时候,每一个单词都可以利用到Encoder所有单词的信息(这些信息无需Mask)

6.3 Softmax预测输出单词

Decoder block最后的部分是利用Softmax预测下一个单词,在之前的网络层可以得到一个最终输出Z,因为Mask的存在,使得单词0的输出 只包含单词0的信息,如下:

fig:

Softmax根据输出矩阵的每一行预测下一个单词:

fig:

这就是Decoder block的定义,与Encoder一样,Decoder是由多个Decoder block组合而成。

7 、Transformer 总结

  • Transformer 与 RNN 不同,可以比较好地并行训练。
  • Transformer 本身是不能利用单词的顺序信息的,因此需要在输入中添加位置 Embedding,否则 Transformer 就是一个词袋模型了。
  • Transformer 的重点是 Self-Attention 结构,其中用到的 Q, K, V矩阵通过输出进行线性变换得到。
  • Transformer 中 Multi-Head Attention 中有多个 Self-Attention,可以捕获单词之间多种维度上的相关系数 attention score。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套 AI 大模型突围资料包

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2025 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要 《AI大模型入门+进阶学习资源包》下方扫码获取~
在这里插入图片描述

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
在这里插入图片描述

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
在这里插入图片描述

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
在这里插入图片描述

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
在这里插入图片描述

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
在这里插入图片描述

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

图片

以上资料如何领取?

在这里插入图片描述

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

图片

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
在这里插入图片描述
在这里插入图片描述

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
在这里插入图片描述
在这里插入图片描述

以上全套大模型资料如何领取?

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐