Transformer

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

一、Transformer概述

1.提出

Transformer模型自2017年由“Attention Is All You Need”一文提出以来,已经彻底改变了自然语言处理(NLP)领域。它的核心思想——通过“自注意力机制(Self-Attention Mechanism)”捕获输入序列内部的复杂关系,无需依赖于传统的循环神经网络(RNN)或卷积神经网络(CNN)结构——使其在多项NLP任务上取得了前所未有的成绩。然而,对于许多初学者而言,Transformer的原理和内部机制可能显得既复杂又晦涩。
本文旨在用中学数学的知识深入浅出地解释Transformer模型,使没有深厚数学背景的读者也能理解其工作原理。我们不会深入探讨高深的数学公式,而是尽可能用简单的语言、直观的比喻和基本的数学概念来阐述。


2.组成

它是一种基于多层神经网络的模型架构,主要特点包括:

1.自注意力机制(Self-Attention)
Transformer 不依赖传统的循环(RNN)或卷积(CNN)结构,而是通过自注意力机制让模型在处理输入序列时,可以直接“关注”序列中任意两个位置之间的关系,从而更高效地捕捉长距离依赖。

2.多头注意力(Multi-Head Attention)
将注意力机制并行化为多个“头”,每个头从不同子空间学习信息,最后再拼接、融合,提升了模型对特征的表达能力。

3.位置编码(Positional Encoding)
由于没有 RNN 的时序性,Transformer 用位置编码为序列中每个位置注入位置信息,使模型知道单词在句子中的先后顺序。

4.残差连接与层归一化(Residual & LayerNorm)
通过残差连接(skip connection)和层归一化(LayerNorm),Transformer 在加深网络层数时仍能保持梯度稳定,便于训练更深的模型。

5.全连接前馈网络(Position-wise Feed-Forward)
在每个注意力层之后,都有一个相同参数的前馈网络,对每个位置的表示进行进一步非线性变换。


3.应用

GPT的底层,其实就是Transformer的右半边,即Decoder解码器的部分。



二、Transformer架构

Transfomer是一个简单的架构
在这里插入图片描述


1.架构图

输入,是一堆字符,分为编码器(Encoder)和解码器(Decoder)两部分
输出,是一个概率表

左边的框框是编码器Encoder。 是指这样的层有N个。N个这样的层摞在一起。 Encoder可以认为是一个Transformer block (Transfomer块)
右边的框框是解码器Decoder

回答是一个字一个字蹦出来的,那么已经蹦出来的文字,就存在Outputs(shifted right)里。即,回答里已经输出的文字(回答里未输出的文字,用掩码盖住)。解码器之前的输出,作为这里Outputs(shifted right,一个一个向右移)的解码器输入。

左边编码器的输出 (K V),也会作为解码器的输入

进Encoder和Decoder前一个箭头一分为三,其实就是同一个东西复制三份,既作为key,又作为value,也作为query。这就叫自注意力机制

Decoder中Masked的作用:后面的看不见,权重都设为0
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.步骤

第一步:把输入的内容(Input)通过词嵌入(Word Embedding)的方式 转换成词向量矩阵
在这里插入图片描述


第二步:加入位置信息,也就是位置编码(Positional Encoding),其实就是再加一个形状一样的(含位置信息的)矩阵。
在这里插入图片描述
在这里插入图片描述


第三步:经过多头注意力的处理,输出的矩阵维度和输入没有变化。给每个词向量增加了上下文信息。
在这里插入图片描述


第四步:添加了残差网络和归一化处理,是为了解决梯度消失,并且让分布更加稳定而做的优化。

残差:不忘初心,看看最初的值

在这里插入图片描述


3.多头注意力的细节部分

在这里插入图片描述


单头注意力机制:
缩放、掩码、Softmax处理
在这里插入图片描述


多头注意力机制:
q、k、v分别经过线性变换(Linear),拆分成多组,依次经过注意力机制(Scaled Dot-Product Attention)运算后,把运算结果拼接(Concat)起来,再经过一层权重矩阵的乘法线性变换。
在这里插入图片描述



三、Transformer架构的组成模块

1.词元化(Tokenization)、模型词汇表

把字、词、符号 转换为词汇表中索引

在这里插入图片描述


2.词嵌入(Word Embedding)、嵌入层(Embedding)

词嵌入:把每个词转换为一个词向量


作用:嵌入层的多维向量,可以包含字词的丰富语义

索引,再转换为512维向量

我爱你,这三个字,被转换为一个3*512维的矩阵

在这里插入图片描述


(1)one-hot 独热编码

1.概念
3000个汉字,每个向量就是3000维的。每个token对应的向量,只有一个坐标是1,其他全为0

2.缺点
①维度太高,矩阵过于稀疏,浪费太多存储空间
②没有体现出距离、近义的关系,也就无法表示出逻辑

在这里插入图片描述

在这里插入图片描述


(2)Embedding

Embedding:
专门把Token映射到新的数学空间
每个Token都能通过Embedding模型,映射到新的数学空间中的一个点(向量)。token向量一一对应的关系。

用余弦相似度或欧氏距离,来表示两个向量之间的相似度

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


3.位置编码(PE,Positional Encoding)

位置编码通常是通过向词嵌入(Word Embedding)中添加位置信息来实现的。具体来说,对于句子中的每个单词,它的输入向量是词嵌入向量位置编码向量

在这里插入图片描述


Transformer模型中常用的一种位置编码方式的公式:
P E ( p o s , 2 i ) = sin ⁡ ( p o s 10000 2 i / d m o d e l ) P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 10000 2 i / d m o d e l ) PE{(pos,2i)}=\sin(\dfrac{pos}{10000^{2i/d_{model}}})\\[5mm]PE{(pos,2i+1)}=\cos(\dfrac{pos}{10000^{2i/d_{model}}}) PE(pos,2i)=sin(100002i/dmodelpos)PE(pos,2i+1)=cos(100002i/dmodelpos)

①PE(pos,i)表示第pos个位置和第i维度的位置编码的值
②pos是单词在句子中的位置,从0开始
i表示这个向量中每个元素的维度索引index;
④dmodel表示位置编码向量(词嵌入向量)的维度

在这里插入图片描述
“我爱你”这三个字被转换为3*512维的矩阵,它既包含了语义信息,又包含了位置信息
对于人类来说,语义与词序是理解句子的基础。而在Transformer当中,计算机正是通过将语义信息与位置信息的相加,来达到同样的理解。


4.编码器和解码器

编码器的输出是一堆向量。
解码器的输出是一堆概率。并从这个概率表中选出,输出的下一个字是什么。


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

多头注意力机制:将512维向量通过线性变换(Linear)分解成8个64维的向量

这种转换的好处:
①信息分解:允许模型将注意力集中在输入的不同“方面”上。每个头可以学习到序列不同部分的不同表示,这种多角度的理解可以帮助模型更准确地捕获语义信息。
②并行处理:多个头可以并行工作,这样可以同时处理多种信息流,增加处理的速度和效率
③模型复杂性:通过增加处理头的数量,我们可以在不显著增加单个注意力头复杂性的情况下,增加整个模型的复杂性和表达能力。每个头关注不同的信息,组合起来就能形成一个全面的信息视角。
④捕获长距离依赖:在自然语言中,词与词之间可能存在跨越长距离的关系。多头注意力通过分别关注句子的不同部分,帮助模型更好地捕捉这些远距离的依赖。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


6.掩码机制 (Musk)

在Transformer的解码器(Decoder)中使用

在这里插入图片描述
在这里插入图片描述


7.残差连接(Add)、层归一化(Norm)

(1)残差连接 Add

残差连接:将多头注意力机制的输出与它的输入(这两个矩阵)进行相加

Add是Addition(加法、相加)的意思。
在Transformer(以及ResNet)里,所谓“残差连接”(residual connection)就是把子层的输出 S u b l a y e r ( x ) {\rm Sublayer}(x) Sublayer(x) 和它的输入 x x x 进行元素级相加: y = x + S u b l a y e r ( x ) y=x+{\rm Sublayer}(x) y=x+Sublayer(x)


(2)层回归/层归一化

在这里插入图片描述


8.全连接前馈网络

全连接前馈网络 (Fully Connected Feedforward Network,亦称多层感知机 MLP)是最经典、最基础的神经网络结构之一,其核心特点是在层与层之间每一对神经元均有连接,信息单向“前馈”流动,不含循环或反馈。

通俗理解前馈网络的作用:一个用于在输出前最后捕捉一次全局信息的全连接层

1.概念
①前馈(Feedforward):信号按层次从输入层经若干隐藏层传递到输出层,单向无环,不存在时序记忆。
②全连接(Fully Connected):相邻两层中每个神经元都与下一层的每个神经元相连。

在这里插入图片描述


9.将解码器的输出 转换为 词汇的概率分布

在这里插入图片描述



四、注意力机制 Attention

q与每个向量的k做点积,再与v相乘,得到α。
这就是注意力机制:
把最初输入的词向量,经过一番处理,变成了一组新的词向量。不一样的是,这组新的词向量中,每一个都是包含了位置信息和其他词上下文信息的一组新的词向量。


1.位置编码

首先,我们给每个词一个位置编码,表示这个词出现在整个句子中的位置。把位置编码加到原来的词向量里,现在这个词就有了位置信息。
在这里插入图片描述

但此时,每个词还没有其他词的上下文信息,也就是注意不到其他词的存在。
那怎么办呢?我们继续往下看。


2.权重矩阵W -> q k v

权重矩阵 W q , W k , W v W_q,W_k,W_v Wq,Wk,Wv分别与第一个词相乘,得到 q 1 , k 1 , v 1 q_1,k_1,v_1 q1,k1,v1

在这里插入图片描述

其他几个词同理,与 权重矩阵 W q , W k , W v W_q,W_k,W_v Wq,Wk,Wv相乘,分别得到自己对应的 q k v向量
现在,原来的词向量,已经分别通过线性变换,映射成了 Q K V,维度和原来是一样的。

在这里插入图片描述


3.相似度系数

q 1 q_1 q1 k 2 k_2 k2 做点积,得到相似度系数 a 12 a_{12} a12,这表示:在第一个词的视角里,第一个词和第二个词的相似度是多少
q 1 q_1 q1 分别与 k 1 , k 2 , k 3 , k 4 k_1,k_2,k_3,k_4 k1,k2,k3,k4 做点积,得到 相似度系数 a 11 , a 12 , a 13 , a 14 a_{11},a_{12},a_{13},a_{14} a11,a12,a13,a14,分别表示:在第一个词的视角内,第一个词与第一个词、第二个词、第三个词、第四个词的相似度是多少

在这里插入图片描述

相似度系数与 v v v相乘,得到 a 1 a_1 a1,这表示:在第一个词的视角下,按照和它相似度的大小,按权重,把每个词的词向量都加到了一块。这就把全部的上下文信息都包含在第一个词中了,且是用第一个词的视角来看的。

在这里插入图片描述

同理,其他几个词也按照这种方式。那么此时每个词都把其他词的词向量按照和自己的相似度权重,加到了自己的词向量中。
从全局的视角看,q k v都是中间计算过程。我们做的就是,把最初输入的词向量,经过一番处理,变成了一组新的词向量。不一样的是,这组新的词向量中,每一个都是包含了位置信息和其他词上下文信息的一组新的词向量。这就是注意力机制Attention做的事情。

在这里插入图片描述


4.多头注意力机制 Multi-Head Attention

改进:多组QKV,称为多头
每个词经过权重矩阵 W q , W k , W v W_q,W_k,W_v Wq,Wk,Wv计算一组 QKV,改为 再经过两个权重矩阵,计算两组QKV,来增加语言的灵活性。

在这里插入图片描述

这里的每组q k v称为一个头。
在这里插入图片描述

再经过注意力层的计算,得到 a向量。把两个向量拼起来,得到了和刚刚一样的结构。
在这里插入图片描述

那么现在两个头得到的新a向量组。这种机制就称为“多头注意力机制”!
在这里插入图片描述



五、Transformer论文《Attention Is All You Need》

0.讲解视频

讲解视频:
飞天闪客:硬读 Transformer 经典论文!不过是硬着头皮的硬…
AI大模型官方实战教程:【完结全】目前B站最全最详细的【Transformer教程】2025最新版!揭秘Transformer的真面目,从理论到实战,多案例讲解,零基础小白适用
李沐老师:Transformer论文逐段精读【论文精读】

在这里插入图片描述


1.论文原文网址

arxiv:https://arxiv.org/abs/1706.03762

《Attention is all you need》,于2017年发表在顶级会议《NeurIPS》上


2.概要

Transformer模型是整个自然语言处理的奠基模型。也是ChatGPT产品大火背后的技术核心。
Transformer是如何使得AI理解和生成语言的呢?

Transformer模型自2017年由“Attention Is All You Need”一文提出以来,已经彻底改变了自然语言处理(NLP)领域。它的核心思想——通过“自注意力机制(Self-Attention Mechanism)”捕获输入序列内部的复杂关系,无需依赖于传统的循环神经网络(RNN)或卷积神经网络(CNN)结构——使其在多项NLP任务上取得了前所未有的成绩。然而,对于许多初学者而言,Transformer的原理和内部机制可能显得既复杂又晦涩。
本文旨在用中学数学的知识深入浅出地解释Transformer模型,使没有深厚数学背景的读者也能理解其工作原理。我们不会深入探讨高深的数学公式,而是尽可能用简单的语言、直观的比喻和基本的数学概念来阐述。

在这里插入图片描述


3.架构图

(1)Transfomer模型架构

1.Encoder:编码器
(1)Input Embedding:输入词嵌入
(2)Positional Encoding:位置编码
(3)Multi-Head Attention:多头注意力机制
(4)Add & Norm:残差 & 层归一化,residual connection & layer normalization
(5)Feed Forward:前馈神经网络
(6)Add & Norm:残差 & 层归一化

2.Decoder:解码器
(1)Output Embedding:输出词嵌入
(2)Positional Encoding:位置编码
(3)Masked Multi-Head Attention:掩码多头注意力机制
(4)Add & Norm:残差 & 层归一化
(5)Multi-Head Attention:多头注意力机制
(6)Add & Norm:残差 & 层归一化
(7)Feed Forward:前馈神经网络
(8)Add & Norm:残差 & 层归一化
(9)Linear:线性
(10)Softmax:激活函数
(11)Output Probabilities:输出Softmax后的概率
在这里插入图片描述


(2)Attention机制

Scaled Dot-Product Attention

Scaled Dot-Product Attention:缩放-点积-注意力机制 (也就是多头注意力机制中的其中一个头)
(1)MatMul:矩阵相乘,matrix multiplication。指的是Q、K两个矩阵相乘 ②指的是
(2)Scale:缩放
(3)Mask:掩码
(4)SoftMax:激活函数
(5)MatMul:指的是Q、K矩阵经过相乘、缩放、掩码、激活函数后,再与V矩阵相乘
在这里插入图片描述


Multi-Head Attention:多头注意力机制

在这里插入图片描述


本文提出了一种全新的网络架构——Transformer,该模型完全基于注意力机制(attention mechanism),摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN)。通过实验验证,Transformer在机器翻译任务上表现出色,不仅质量更高,而且更易于并行化,训练时间显著减少。

主要内容

1.背景与动机

2.
当前主流的序列转换模型大多依赖复杂的RNN或CNN结构,并通过注意力机制连接编码器和解码器。然而,这些模型由于其序列计算的本质,难以实现高效并行化,尤其是在处理长序列时受到内存限制。为了解决这些问题,作者提出了仅基于注意力机制的Transformer模型。

3.模型架构

  • 自注意力机制(Self-Attention):Transformer的核心在于多头自注意力机制(Multi-Head Attention),它允许模型在不同子空间中同时关注输入和输出之间的全局依赖关系。
  • 编码器-解码器结构:编码器由6个相同的层堆叠而成,每层包含一个多头自注意力机制和一个全连接前馈网络;解码器同样由6层组成,除了自注意力机制外,还增加了跨编码器-解码器的注意力机制。
  • 位置编码(Positional Encoding):由于Transformer不使用循环或卷积,因此引入了位置编码来捕捉序列中的顺序信息。

4.优势分析

  • 计算复杂度:当序列长度小于表示维度时,自注意力层的计算速度优于RNN和CNN。
  • 并行化能力:自注意力机制可以通过常数步操作连接所有位置,而RNN需要线性步操作。
  • 长距离依赖建模:相比RNN和CNN,Transformer能更有效地学习长距离依赖关系。

5.
实验结果

  • 在WMT 2014英德翻译任务中,Transformer大模型取得了28.4 BLEU的新纪录,比现有最佳模型高出2 BLEU以上。
  • 在WMT 2014英法翻译任务中,Transformer以较低的训练成本实现了41.8 BLEU的单模型新纪录。
  • 此外,Transformer在英语句法分析任务中也表现良好,证明了其在其他任务上的泛化能力。

6.
正则化与优化

  • 使用Dropout防止过拟合。
  • 引入标签平滑(Label Smoothing)技术以提高准确率和BLEU分数。

7.总结

Transformer通过完全依赖注意力机制的设计,在机器翻译等任务上展现了卓越性能,同时大幅提升了训练效率。未来工作将探索将其扩展到非文本模态(如图像、音频和视频)以及减少生成过程的序列化程度。这一研究为基于注意力机制的模型开辟了新的方向,具有重要的理论和实践意义。


4.两个核心公式

(1)注意力运算

所谓注意力运算,就是:
①QK矩阵相乘
②经过缩放
③再经过Softmax处理
④最后和V相乘
在这里插入图片描述


(2)多头注意力运算

对于多头的情况,就是先将QKV矩阵经过多个权重矩阵拆分到多个头中,分别经过注意力机制的运算,最后合并起来,再经过一次矩阵运算,得到了输出。
在这里插入图片描述


5.结论

1.应用领域:
Transformer是多模态的:Transformer不仅仅可以用于text,将来(发表时是2017年)还可以用于images, audio and video.

2.Transformer与RNN比较:
Transformer用的是纯attention机制,可以并行。而RNN架构需要一步步时序操作,是串行的。RNN因此无法很好地利用TPU

3.Transformer与CNN比较:
①CNN每次的感受野比较小(窗口比较小,比如看一个3×3的像素块),如果两个像素相隔地比较远的话,需要用很多层卷积,一层一层上去,最终才能把相隔比较远的两个像素融合起来。但是如果使用Transformer里的注意力机制的话,每次都能看到所有的像素,一层就能看到整个序列。
Multi-Head Attention(多头注意力机制)可以模拟CNN的多输出通道这样的优势 (一个输出通道可以识别一个不一样的模式)

CNN和RNN的终结者:Transformer

4.Self-Attention在Transformer之前就已经被提出。本文《Attention is all you need》提出了基于自注意力机制(Self-Attention)Transformer架构

5.提出了编码器-解码器架构 (Proposed encoder-decoder structure)
(1)编码器:可以一次性看到所有的句子。Encoder有2个sub-layer
(2)解码器:词是一个一个生成的,只能看到前面已经生成的,看不到后面的。后面的被 掩码机制(Mask) 遮蔽了。Decoder有3个sub-layer
(3)输出又是输入,称为 auto-regressive (自回归模型)
上一时刻的输出作为当前时序的输入,也称为时序解码器之前的输出,又作为模型架构图右下角这里Outputs(shifted right,一个一个向右移)的解码器输入。
左边编码器的输出 (K V),也会作为解码器的输入

6.每一层的维度是固定的,均是512维的向量: d m o d e l = 512 d_{\rm model}=512 dmodel=512

7.层归一化 normalization 分为 ①layer norm ②batch norm
Transformer中的norm使用的是 layer norm

在这里插入图片描述

8.性能
相比CNN、RNN、受限的自注意力机制,Transformer在特别长的文本很有优势。可以“远距离移动”。
在这里插入图片描述

attention对整个模型的假设做的更少,导致需要更多的数据和更大的模型才能训练出来和RNN、CNN相同的效果。所以也导致了现在基于Transformer的模型都是特别大、特别贵。


6.结构

1.Transformer一共有3个attention:Encoder有1个,Decoder有2个
2.Trasnformer一共有2个fully connected feed-forward network,其实就是MLP

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员爱德华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值