欢迎光临
我们一直在努力

收藏!小白也能看懂Transformer原理,一步步拆解大模型核心机制

本文以实际案例讲解Transformer架构的核心原理,涵盖输入嵌入、位置编码、多头自注意力机制、残差链接与归一化、前馈神经网络等关键步骤。通过简单的数学知识,帮助读者理解Transformer如何捕捉词间关联,并逐步构建大语言模型的训练与推理流程。适合对AI、大模型感兴趣的程序员和小白学习收藏。

一、前言

背景

2017年,Google团队(Google Research团队、Google Brian团队、当时的一名Google博士实习生共8位作者)发表了《Attention is all you need》论文,论文里提出了“Transformer”架构,是这波席卷全球的人工智能浪潮中最核心的动力引擎,开启了人类通往AGI的旅程探索。

可以说无论是现在的各大主流大语言模型ChatGPT/DeepSeek/Gemini/Qwen等,还是处理图像与视频的融合了Diffusion Model的DiT,亦或是具身智能领域的VLA模型,核心组件都是由这篇论文提出的Transformer架构。

Transformer的革命性创新在于,它可以捕捉任意两个词之间的关联,第一可同步并行处理大大提升了效率,第二传统RNN等方式,是串行处理,也就是说处理第N个词的时候它前面的第N-1个词必须处理完成,效率很低,并且如果句子长了之后传统方式无法很好地建立起前面token与后面token的语义关联(长距离依赖问题),还有就是Transformer的适配性很高,除了文字以外,图片和视频等其他领域也可以用到它(只要输入数据可以切块tokens就行)。

虽然目前也有曼巴Mamba、RWKV、RetNet等不同于Transformer的架构出现,但是短期来看他们还很难撼动“变形金刚Transformer”的统治地位。

所以,今天笔者用一个简单的实际例子,一步一步进行拆解,带大家详细了解一下Transformer的原理,走一遍真实的训练推理的流程。这中间需要一些简单的线性代数数学知识,我会详细描述,作为当年高考数学145分的选手,虽然数学能力已经严重退化,但是讲一些必要的简单数学、不去研究更深奥的应该还好。希望这篇文章对大家了解与学习Transformer有所帮助,写的不严谨或者不对的地方欢迎大家指出,也欢迎多交流多合作。

这里我们借用《Attention is all you need》论文里的Transformer架构进行讲解:

图1,Transformer架构图。

前置知识:矩阵基础运算回顾

顺利回想起以下三个矩阵运算,就可以cover掉大概80%左右的Transformer数学基础了。

(1)矩阵相加:就是两个行数和列数完全相同的矩阵,每个对应的位置加在一起,得到一个新的矩阵。

(2)矩阵转置:就是把N行M列的矩阵【N*M】,变成M行N列的矩阵【M*N】,用白话讲就是“把横着的每行,都竖过来按列排列”。

(3)矩阵乘法:两个矩阵相乘,需要满足特定的条件,即前面矩阵的列数 = 后面矩阵的行数,例如【a*b】*【b*c】,得到一个【a*c】a行c列的结果矩阵。

二、案例与参数设定

我们假设输入模型的一句话 “今天天气好晴朗”,

向量空间维度 = 100

Head = 5

Layers = 6

词表大小= 50000。

三、Input Embedding

“今天天气好晴朗”,

我们经过分词、向量化后,假设我们把它分成了【今天,天气,好,晴朗】4个token,每个token的维度是100维,我们就有了4个1乘以100的向量,我们把4个向量竖着叠在一起,就构成了我们的输入Xraw ,一个4乘以100的矩阵。

图2,输入分词、拼接成输入矩阵。

四、位置编码

经过input embedding后,我们就来到了Transformer架构的下一个组件:位置编码(Positional Encoding)。

在这一步,会给输入矩阵Xraw加入他们的位置信息,这样具备了每个token的位置信息,如果没有位置编码,模型无法区分“今天天气好晴朗”、“晴朗天气好今天”等等不同顺序。

其中P矩阵中每个元素的计算公式为:

所以过程就是两个4*100的矩阵Xraw和P相加,得到一个同样是4*100的矩阵X,不同的是X添加了每个Token的相对位置信息。

五、多头自注意力机制

这里就是Transformer架构的核心,通过Q、K、V三组矩阵计算输入矩阵X中的各个token的相关性。

什么是Q、K、V?

用通俗的语言解释,每个token都会计算他们各自的Q/K/V,Q(Query)表示“我想要问啥?”,K(Key)表示“我有啥?”,V(Value)表示“关于我的信息”。

还是以咱们的输入(今天,天气,好,晴朗)这四个token为例子,“今天”会拿着它的Q,一个一个地去与其他token(包括它自己)的K去交互,类似于通过问题-回答索引去了解自己与其他人的关联度,然后问了一个人,那个人就用自己的V去回答关于自己的信息,这样“今天”这个token就了解了身边所有其他人与自己的关系及相关信息。同理,“天气”、“好”、“晴朗”这几个token也是一样的流程。

如果只有一个head,那么意味着整个流程只能按照一个维度标准去进行,Transformer架构里的多头Multi-head,允许以不同的维度、不同的视角去审视输入这一段话的各个逻辑关系,例如head1从语法结构角度去分析,head2从指代词的角度去分析等。

用更加严谨一点的语言来描述的话,就是它通过三组可学习的矩阵WQ、WK、WV,把输入矩阵X映射成三组向量:Q(Query)、K(Key)、V(Value),从而计算各个token之间的相关性,并重新构造每个token的表示。

下面进行实际运算。根据论文,

首先我们会有head组(也就是5组)不同的参数矩阵(WQ1、WK1、WV1)、… (WQ5、WK5、WV5),他们的维度是【100 * (dmodel / head = 100 / 5 = 20)】,

我们将输入X分别投影到这5个head中去,与WQ、WK、WV参数矩阵进行相乘,得到5组【4*20】维的Q、K、V矩阵:

图3,计算Q/K/V矩阵。

然后我们要进行注意力的计算,这就是论文里最核心的一个公式:

我们来进行一步步的拆解,它计算的过程是,

(1)先计算矩阵Q乘以矩阵K的转置,

(2)然后按根号下dk的比例缩放,

(3)然后进行softmax函数将矩阵变成等比例的概率信息,

(4)最后乘以V矩阵,得到注意力结果。

第(1)步,计算Q和K转置相乘,

图4,计算Q与K转置相乘。

这里这个的矩阵就是注意力权重地图,它代表了“今天”、“天气”、“好”、“晴朗”这四个词之间彼此的相关性。

其实这里,大家应该能看出来了这个矩阵相乘的意义,如果我们带入“今天,天气,好,晴朗”这四个token:

图5,从token角度看QK矩阵相乘。

我们就可以得到代表这个意思的矩阵:

图6,QK矩阵相乘结果。

就是每个token拿着自己的问题Q,去和其他(包括它自己)的token的键值K,去一一相乘,就像是上文讲到的,每个人拿着自己的问题(Query,这是我的问题),去一个一个看其他人的牌子(Key,我有啥),这样去了解相互之间的相似度。

第(2)步,缩放

这一步主要是为了让训练更稳定,当维度较大时,点积的值会变大,容易导致 softmax 进入梯度饱和区域,使梯度变小、训练不稳定。

在我们的例子里,dk= 100/5=20。

第(3)步,softmax,

softmax就是把矩阵的每一行,所有元素按比例缩放,并且和加起来等于1,每一项按比例变成小数的概率分布。

比如

“天气”和“晴朗”的相关性得分为10

“天气”和“今天”的相关性得分为5

“天气”和“麦辣鸡腿堡”的相关性得分为-2

进行Softmax后,负数变成正数概率,总和的概率是1,每个词按比例分配数值,例如:

“晴朗”:92%

“今天”:7.9%

“麦辣鸡腿堡”:0.1%

Softmax 的输出就是注意力权重地图。它告诉模型:

在处理“天气”这个词时,你有 92% 的精力要放在“晴朗”上,只有 0.1% 的精力去管汉堡。

第(4)步,与V矩阵相乘,

这里就是按权重比例“搬运”价值(V)。权重高的多拿点,保留的信息越多,权重低的少拿点,形成最终的词表示。

最终在这个head中,我们得到了一个【4*20】的注意力结果矩阵:

图7,计算注意力矩阵结果。

我们分别同步计算5个head的注意力Attention,得到5个不同的【4*20】注意力结果矩阵,然后我们把他们拼接在一起,得到原来维度的【4*100】矩阵,然后我们用这个矩阵,去乘以一个输出矩阵WO【100*100】,因为我们只是物理上把5个不同的注意力head矩阵拼接在一起,乘以输出矩阵代表在特征空间中重新线性组合不同head的特征,让不同head的信息发生交互。

图8,得到注意力矩阵最终结果。

到此,自注意力机制的流程结束。

这里面其实也有现实实现的小trick,论文中是输入X矩阵分别与head组的参数矩阵去相乘,投射到不同的新的空间进行计算,其实我们可以拿一组大的WQ、WK、WV矩阵直接计算,然后再切分,分开同步算attention,这样会节省计算资源。也就是,先有三个参数矩阵WQ、WK、WV,维度都是【100*100】,然后X分别乘以参数矩阵,得到Q、K、V三个矩阵,维度是【4*100】。然后把他们竖着切成5份,变成5份【4*20】的小矩阵。然后这5个head分别同步计算各自的自注意力,得到5个不同的【4*20】的小结果矩阵。然后把5个小结果矩阵横着拼起来,变成【4*100】的矩阵,然后再乘以输出矩阵【100*100】,得到最终结果矩阵【4*100】。

六、残差链接 & 归一化

在搞定了那个复杂的“多头注意力”社交场后,Transformer紧接着做了两件看起来“微小”但极其重要的事情:残差连接(Residual Connection) 和 层归一化(Layer Normalization)。

残差连接让模型保留原始信息,同时加入新学习到的上下文信息,它的作用是防止深层网络训练时梯度消失,使深层Transformer可以稳定训练。

做法就是把多头注意力层的输出再加上一次原始输入X:

在做完加法(Add)后,矩阵里的数值可能会变得很大或很不稳定。层归一化LayerNorm的任务就是把这些数值调整回一个标准的分布(均值为 0,方差为 1)。

我们对矩阵X的每一行(也就是每个token)计算平均值μ与方差σ,然后让这行的每个元素x进行标准化:

这行数据这样就变成了均值为0、方差为1的标准分布。

最后,为了不让模型失去表达能力,我们再引入两个可学习的参数γ和β,进行学习缩放和平移,为模型保留调整的能力:

原论文结构,是进行自注意力运算后,进入残差网络,然后进入归一化;后面在技术人员的实际实践中,改成了训练更稳定的方式,先进行归一化处理,然后自注意力运算,最后残差网络,该种方式叫做Pre-LN(原论文的方式叫做Post-LN),现在的主流模型都在使用Pre-LN方式。

七、前馈神经网络

如果说Attention是在“搞社交”,那么FNN就是在搞“内省”。它也是被很多学习Transformer架构的读者忽略的部分,但是FNN的重要性一点不亚于自注意力机制,在模型的实际参数量上,FNN可以占到Transformer的2/3。

如果我们打个比方的话,Attention这个社交小王子出去参加party社交,觥筹交错谈笑风生间,与聚会上的每一位来宾都交换了名片、加了微信、了解到了每个人都是干什么的,社交了一晚上回家后,他把这些信息都给了FNN这个分析师,FNN就开始自省,把这些信息全部“展开”,看看自己能与这些人合作些什么?我能为他们提供哪些资源,他们能帮助我做哪些事情,从而完成对自己及外界的更深入的了解。

论文中前馈神经网络的计算公式是:

这里的意思是,对于输入X的每一行,也就是每个token的向量,先进行W1的维度升维,再进行一个ReLU激活非线性,最后经过W2将维度降回原来的值。下面进行详细解释。

第一步,升维,FNN通常会将维度放大,在更高的维度里,原本挤压在一起的信息会被拉开,模型能发现更多细微的特征和逻辑关系,就像把一张折叠的地图铺平,原本模糊的细微特征和逻辑关系在更高的维度里变得清晰可见,这为模型提供了更广阔的表达空间。公式里就是对应的“W1”,论文中从512升到2048维,我们的例子也是从100升到400维。

第二步,激活函数ReLU,ReLU函数很简单,就是将负数变为0、正数不变,也就是公式里的max(0, xW1+b1)所表达的。并不是所有社交得来的信息都有用,ReLU就像一道过滤网,把没意义的负向噪声归零,保留并强化有价值的信号。其次它引入了非线性(在attention那一层都是线性变换),有了非线性,模型才具备处理高阶抽象语义的能力。这层网络实际上扮演了知识库的角色,存储了模型在训练中学到的复杂模式和语义规则。

第三步,降维,将处理完成的400维矩阵重新投影回100维,公式里对应的就是那个W2。经过深思熟虑后,分析师 FFN已经完成了对信息的萃取,现在需要将这些精炼后的“感悟”重新打包,变回之前的100维,以便进入下一轮的旅程。

整体总结:

图9,FNN过程。

八、Layers

根据Transformer架构,我们从FNN出来后,再经过一次的残差链接 & 归一化,一个层(Layer)的训练就完成了。

Transformer里叠加了多个相同的层级,也就是相同的Layers,架构图片里的“N*”,虽然每一层的结构是完全相同的,但每一层内部的权重参数是独立的,每一层负责学习不同层次的特征(比如底层学语法,高层学语义)。所以Transformer架构会顺序地走完这N层,在我们的例子里是6层(论文里也是6),所以模型经过6轮的自注意力-残差-归一化-FNN,充分学习输入句子的复杂语义逻辑含义。

九、Linear线性化

这里我们要进行关键的空间映射,即把输入向量的语义空间100维,映射成词表大小的50000维,用来后面我们去预测下一个概率最大的词去进行选择。

图10,Linear线性化。

十、Softmax

这里的Softmax函数与Attention机制里的Softmax函数的作用完全一致,将每行5万个的数字按比例缩放,变成和加起来等于1的概率。

十一、得到结果

我们要预测“今天天气好晴朗”后面的词,拿出第四个token(晴朗),在词表空间50000个可能中找到经过Softmax后概率最高的那个词,“今天天气好晴朗,处处好风光”,在大量学习完这句话的语义逻辑后,模型可能给出的预测词就是我们要的“处处”。

至此,一次完整的Transformer之旅就成功结束了。

(“今天天气好晴朗,处处好风光”是还珠格格里的一句歌词,但是由于大模型,学习到这句歌词的次数可能非常非常非常少,整体统计权重不高,所以用户在输入“今天天气好晴朗”之后,LLM大概率不会预测出“处处”这个词,可能是“我们一起出去玩吧”等类似的。)

十二、关于Encoder – Decoder架构

Transformer论文是关于语言翻译的大语言模型,由Encoder和Decoder两部分构成,模型分为训练与推理阶段。以下内容详细介绍一下Encoder-Decoder架构在训练阶段和推理阶段的流程。以及当今主流的LLM采取去掉Encoder的Decoder-Only架构的逻辑。

图11,Transformer架构。

Encoder-Decoder翻译训练阶段

比如我们以“I love this game – 我爱这个游戏”为例进行训练。

研究人员先把I love this game组成向量矩阵输入进Encoder里,也就是从图中左下角的Input进去,进行自注意力学习等,然后把这个从Encoder输出的结果矩阵,输出到Decoder里,作为中英翻译的“背景信息”。

然后右边Decoder部分,从底下的Outputs输入:

第一次先输入开始符号“BOS”,然后根据Encoder的背景信息,模型从图中右上方的output probalities中吐出第一个预测出来的token,比如是“天空”而不是“我”,然后技术人员进行反向传播梯度下降调整参数,让模型预测出“我”的概率变大。

第二次,尽管第一次模型预测的是“天空”,但是我们还是把“BOS我”作为Decoder的输入,然后比如模型预测出的下一个词是“讨厌”,那我们同样再调整参数,让模型预测出“爱”的概率更大。

第三次,Decoder的输入是“BOS我爱”,而不是“BOS我讨厌”,Decoder输出“很多”,我们调整参数,让模型预测出“这个”的概率更大。

第四次,Decoder的输入是“BOS我爱这个”(也不是BOS我爱很多),模型预测输出,同样操作以此类推,直到模型输出终止符“EOS”为止。

这里,如果我们仔细看的话,Transformer这张架构图,Encoder里的“Multi-head attention”和Decoder里的“Multi-head attention”,严格来说不是一样的。Decoder里的,在训练阶段,K和V都是“I love this game”的矩阵信息,是固定的,然后Q,每次都会变,Q是“BOS”,“BOS我”,“BOS我爱”,类似这种,每次新的一轮就会产生新的Q,这个也叫cross attention。

以上这些都是同步进行。因为我们有对应的中英文“标准答案”,所以这个方式也叫teacher-forcing。同时Decoder里的“Masked Multi-Head Attention”也就可以理解是什么意思了,即使我们已经有了整个翻译的正确答案,我们还是要“捂住”(masked)后面的词,让模型自己来预测下一个词。

Encoder-Decoder翻译推理阶段

训练完成,进行推理翻译。假设需要翻译的句子是“I love reading books”。过程是,这个句子输入Encoder,开始符号BOS输入Decoder,Encoder输出结果矩阵作为参考,Decoder从Output Probabilities预测出“我”,然后“BOS我”继续输入Decoder,预测出“爱”,然后“BOS我爱”输入Decoder,预测出“读”,然后继续,直到输出完整的“BOS我爱读书EOS”为止。

Decoder-Only

现在的这些主流大模型如ChatGPT,DeepSeek,Gemini等,都是基于Decoder-only的,舍弃掉了左边的Encoder,模型把所有的输入都视为“已知的过去”,把要生成的输出视为“预测的未来”,所以就变成了给定一段上文,预测下一个Token(Next Token Prediction)的自回归模式。

训练的时候,输入的信息不存在对应关系,就是直接把句子输入进去。举例,“天下没有不散的宴席”,进行embedding后,“天下,没有,不散的,宴席”变成矩阵,输入到Decoder里。

实际训练过程也是同步进行,teacher-forcing模式,“天下”这个词是否预测下一个是“没有”,“没有”这个词是否预测下一个是“不散的”,进行参数调整。

在推理阶段,也是直接将信息,进行token化后输入到Decoder里,然后LLM进行一个token一个token的下一个词预测,直到预测出“EOS”概率最高停止、或者达到最大长度限制。

最后

对于正在迷茫择业、想转行提升,或是刚入门的程序员、编程小白来说,有一个问题几乎人人都在问:未来10年,什么领域的职业发展潜力最大?

答案只有一个:人工智能(尤其是大模型方向)

当下,人工智能行业正处于爆发式增长期,其中大模型相关岗位更是供不应求,薪资待遇直接拉满——字节跳动作为AI领域的头部玩家,给硕士毕业的优质AI人才(含大模型相关方向)开出的月基础工资高达5万—6万元;即便是非“人才计划”的普通应聘者,月基础工资也能稳定在4万元左右。

再看阿里、腾讯两大互联网大厂,非“人才计划”的AI相关岗位应聘者,月基础工资也约有3万元,远超其他行业同资历岗位的薪资水平,对于程序员、小白来说,无疑是绝佳的转型和提升赛道。
图片
图片
对于想入局大模型、抢占未来10年行业红利的程序员和小白来说,现在正是最好的学习时机:行业缺口大、大厂需求旺、薪资天花板高,只要找准学习方向,稳步提升技能,就能轻松摆脱“低薪困境”,抓住AI时代的职业机遇。

如果你还不知道从何开始,我自己整理一套全网最全最细的大模型零基础教程,我也是一路自学走过来的,很清楚小白前期学习的痛楚,你要是没有方向还没有好的资源,根本学不到东西!

下面是我整理的大模型学习资源,希望能帮到你。

图片

👇👇扫码免费领取全部内容👇👇

在这里插入图片描述

最后

1、大模型学习路线

img

2、从0到进阶大模型学习视频教程

从入门到进阶这里都有,跟着老师学习事半功倍。

在这里插入图片描述

3、 入门必看大模型学习书籍&文档.pdf(书面上的技术书籍确实太多了,这些是我精选出来的,还有很多不在图里)

在这里插入图片描述

4、 AI大模型最新行业报告

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

img

5、面试试题/经验

img

【大厂 AI 岗位面经分享(107 道)】

img

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

img

【LLMs 面试真题(97 道)】

img

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

img

适用人群

在这里插入图片描述

四阶段学习规划(共90天,可落地执行)
第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型

  • 带你了解全球大模型

  • 使用国产大模型服务

  • 搭建 OpenAI 代理

  • 热身:基于阿里云 PAI 部署 Stable Diffusion

  • 在本地计算机运行大模型

  • 大模型的私有化部署

  • 基于 vLLM 部署大模型

  • 案例:如何优雅地在阿里云私有部署开源大模型

  • 部署一套开源 LLM 项目

  • 内容安全

  • 互联网信息服务算法备案

  • 👇👇扫码免费领取全部内容👇👇

    在这里插入图片描述

3、这些资料真的有用吗?

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

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

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

赞(0)
未经允许不得转载:171主机测评 » 收藏!小白也能看懂Transformer原理,一步步拆解大模型核心机制
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址