Transformer大模型入门指南:用最简单的人话讲透ChatGPT原理,小白必收藏!
Transformer
引言:
本文是最近学习深度学习相关知识,对其中最重要的知识:Transformer进行的总结,写此文之前已经进行了长时间的学习理解,这里相当于“用文章给自己讲一遍”来给自己进行知识梳理,对于深度学习我的学习思想是:抓住最重点的架构和最重点的公式,并且用最简单的人话把我们要干什么讲清楚。本文笔者力求用最人话的语言来讲清楚transformer.
因为我的受众有一部分是我父母亲人和他们同事之类的,他们看文章主打凑热闹,就是想知道这个技术是干什么的,这里总结:这个技术就是我们的chatgdp deepseek等火爆大模型最底层的原理,涉及到这些大模型是如何理解人类的语言(即从人类的输入语言中提取信息),又是如何跟你说话的(如何根据你的输入,一个字一个字的计算然后一个字一个字输出形成完整回答)。我们主要要解决的问题有两个:1:处理数据中的长距离依赖:让AI有一个全局性质的理解语义 2.并行计算:就是提高我们的计算效率。
Transformer

要明白transformer的架构实际上就是在理解这张图。
transformer在解决的问题:如何有效地处理序列数据中的长距离依赖关系,同时实现高效的并行计算。
(实际上之前以RNN,LSTM延伸出来的结构可以处理序列数据中的长距离依赖关系,但无法实现“并行计算”(这部分实际上在多头自注意力机制中完成))
我们从左下角开始来解释这张图:
1.input embedding:
在 Transformer 中,原始输入通常是 离散的符号序列(NLP中是字词,视觉里是图像块,语音任务里是声觉特征):我们在这里要把他处理成一个模块能处理的连续向量。
embedding:把离散 token ID 转换成稠密向量,每个 token 有自己的语义表示,把输入统一到一个固定维度 ,便于进入后续 Transformer 层(统一维度)。
(这个地方有大量的开源方法,例如词向量查表,线性投影等,我们不一一做介绍)
Positional encoding:在以上的各类任务中容易理解元素位置使其作用的,语言的每个字含义和其在文章中的位置前后字都有关系,图像的小范围特征依赖局部特征等,所以我们要把其位置进行编码,和之前的向量合起来。
我们基本固定使用的Positional encoding的方法是使用余弦函数,它是固定的函数,不需要训练,可以泛化到任意长度的序列。
公式(位置 i,维度 k):
- • i = 位置索引(第几个 token)。
- • k = 维度索引。
- • 分别用 sin 和 cos 填充偶数维/奇数维。
- • 周期随维度变化 → 低维对应大周期(编码粗粒度顺序),高维对应小周期(编码精细顺序)。
直观理解:
- • 每个位置会得到一组独特的波形值。
- • 不同位置之间的编码差异能通过线性组合近似表示相对位移。
- • 这样 Transformer 能“感知”到 token 的顺序关系。
以上是我们tranformer最开始的输入部分;transformer的基本架构是 输入–编码器–解码器–输出,其中我们的解码器还会有一部分新的输入。在我们开始讲解编码器之前,我们要弄清楚transformer中最本质的原理:注意力机制;并依次弄清楚 注意力机制,自注意力机制,多头注意力机制。

注意力机制本身晦涩难懂,我们举一个机器翻译的例子,重点是理解公式。
我们需要将中文的"我"翻译成英文的"me",这就需要"我"和"me"之间的注意力分数相对于"我"和其他英文单词的要高。在这里,我们先解释下 Query, Key,和Value 的含义:
Query:我们就可以将"我"看作成 Query,因为这就是我们当前需要查询的目标,即当前输入的特征表示。
Key:可以将每个单词的重要特征表示看作成 Key。
Value:每个单词本身的特征向量看作为 Value,一般和 Key成对出现,也就是我们常说的"键-值"对。
这里面 V是我们真正重要的东西,Q,V作为计算权重的工具出现。
我们直接来看公式(人工智能公式严格语言是不好解释的这里大概理解即可)我们重点看公式:
给定 查询 (Q)、**键 (K)**和 值 (V):
解释:
- • :查询矩阵(来自输入序列或上一层)。
- • :键矩阵(通常和 Q 来自同一个输入)。
- • :值矩阵(携带真正要聚合的信息)。
- • :缩放因子,防止点积过大导致 softmax 梯度过小。(这里的实际上就是我们输入的维度)
- • 最终结果是加权求和后的表示(每个查询都会得到一个加权后的输出)。
🔹 Softmax 公式
对于一个向量 ,
Softmax 定义为:
特点:
- • 输出是一个 概率分布(每个值在 0~1 之间,总和为 1)。
- • 在注意力里,softmax 让每个 token 的相关性(Q·K 的点积结果)变成权重。
所以实际上Softmax直接理解为一个常见的归一化的操作。
👉 总结一下:
- • 注意力公式:点积 + 缩放 + softmax + 加权求和。
- • softmax 公式:把一组实数映射到概率分布。
注意力机制本质是一个信息聚合操作,上面把它的小组件都讲清楚了,下面梳理一下整体的架构:
🔹 注意力机制的整体流程(Scaled Dot-Product Attention)
可以拆成 4 步:
-
- 输入准备
-
• 输入序列先经过 embedding,得到向量表示。
-
• 通过线性层(可学习参数)得到:
-
• 查询矩阵
-
• 键矩阵
-
• 值矩阵
-
- 相似度计算(Q·Kᵀ)
- • 每个查询和所有键做点积:
- • 得到一个相关性矩阵(表示“第 i 个 token 对第 j 个 token 的关注程度”)。
-
- 权重归一化(Softmax)
- • 对每一行做 softmax,把相关性分数转成概率分布:
- • 每行的和为 1,表示查询 token 在所有键上的注意力分布。
-
- 加权求和得到输出
- • 用注意力权重 对值矩阵 做加权:
- • 输出向量表示“查询 token 聚合了它关注的上下文信息”。

在了解了注意力机制之后,我们便可以了解自注意力机制。
对于自注意力机制,我们给csdn上的两个解释:
1.Self-Attention,自注意力机制,又称内部注意力机制,顾名思义,是一种将单个序列的不同位置关联起来以计算同一序列的表示的注意机制。
通过对注意力机制的学习我们知道,在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Query和Source中的所有元素之间(即Attention机制与自身还有关注对象都有关系)。
而Self-Attention顾名思义,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的注意力计算机制。(即Self-Attention只关注输入本身or只关注关注对象本身)
2.自注意力机制和注意力机制的区别就在于,注意力机制的查询和键是不同来源的,例如,在Encoder-Decoder模型中,键是Encoder中的元素,而查询是Decoder中的元素。在中译英模型中,查询是中文单词特征,而键则是英文单词特征。而自注意力机制的查询和键则都是来自于同一组的元素,例如,在Encoder-Decoder模型中,查询和键都是Encoder中的元素,即查询和键都是中文特征,相互之间做注意力汇聚。可以理解为同一句话中的词元或者同一张图像中不同的patch,这都是一组元素内部相互做注意力机制,因此,自注意力机制(self-attention)也被称为内部注意力机制(intra-attention)。
优点:可以建立全局的依赖关系,扩大图像的感受野。相比于CNN,其感受野更大,可以获取更多上下文信息。
缺点:自注意力机制是通过筛选重要信息,过滤不重要信息实现的,这就导致其有效信息的抓取能力会比CNN小一些。这样是因为自注意力机制相比CNN,无法利用图像本身具有的尺度,平移不变性,以及图像的特征局部性(图片上相邻的区域有相似的特征,即同一物体的信息往往都集中在局部)这些先验知识,只能通过大量数据进行学习。这就导致自注意力机制只有在大数据的基础上才能有效地建立准确的全局关系,而在小数据的情况下,其效果不如CNN。
(csdn 原文链接:https://blog.csdn.net/weixin_42110638/article/details/134016569)
上面是Self-attention的一些底层的逻辑,我们从模型架构和数学公式上来看他和注意力机制的区别。
普通注意力(Attention):
- • 来自查询序列
- • 来自另一序列(通常是键值序列)
- • 输出为 ,每个查询聚合对应的值向量
自注意力(Self-Attention):
- • 是同一个输入序列
- • Q, K, V 通过不同线性投影 得到
- • 输出与输入长度一致,捕捉序列内部依赖
从上面我们就可以看到主要的区别,就是我们的Q,K实际上来源是同一个序列,只不过乘了不同的线性投影矩阵(可学习得到)
| 特性 | 注意力机制 Attention | 自注意力机制 Self-Attention |
|---|---|---|
| 输入序列数 | 两个序列:Query 和 Key/Value | 一个序列:Q=K=V |
| Q/K/V 构造 | Q/K/V 可分别由不同序列映射而来 | Q/K/V 都由同一序列通过线性映射生成 |
| 输出与输入的关系 | 输出长度 = 查询序列长度 | 输出长度 = 输入序列长度 |
| 依赖建模 | 跨序列依赖 | 序列内部依赖 |
| 公式差异来源 | Q 与 K 来自不同序列,直接做点积 | Q/K/V 都从 X 来,通过不同映射区分功能 |
所以实际上所有的区别都来自于我们的来源不同。
明白了,你想从架构和公式上深入比较注意力机制(普通 Attention)和自注意力机制(Self-Attention),重点在 为什么在公式上出现差异,而不是多头、残差等后续处理。我们来系统梳理一下。
1️⃣ 公式对比
普通注意力(Attention):
- • 来自查询序列
- • 来自另一序列(通常是键值序列)
- • 输出为 ,每个查询聚合对应的值向量
自注意力(Self-Attention):
- • 是同一个输入序列
- • Q, K, V 通过不同线性投影 得到
- • 输出与输入长度一致,捕捉序列内部依赖
2️⃣ 架构上的区别
| 特性 | 注意力机制 Attention | 自注意力机制 Self-Attention |
|---|---|---|
| 输入序列数 | 两个序列:Query 和 Key/Value | 一个序列:Q=K=V |
| Q/K/V 构造 | Q/K/V 可分别由不同序列映射而来 | Q/K/V 都由同一序列通过线性映射生成 |
| 输出与输入的关系 | 输出长度 = 查询序列长度 | 输出长度 = 输入序列长度 |
| 依赖建模 | 跨序列依赖 | 序列内部依赖 |
| 公式差异来源 | Q 与 K 来自不同序列,直接做点积 | Q/K/V 都从 X 来,通过不同映射区分功能 |
注:
-
• 的作用:
-
• → 将输入映射到查询空间
-
• → 将输入映射到键空间,用于计算相似度
-
• → 将输入映射到值空间,用于加权聚合
-
• 这在普通注意力里可能不明显,因为 Q/K/V 已经来源不同序列,投影有时可以共享或简化。自注意力必须显式区分,否则模型无法区分“我在做查询匹配”还是“我在提供值”。
最后我们来看多头自注意机制,这里是我们并行计算的主要实现部分。单头自注意力只能从一个角度捕捉序列内部的依赖关系(一个注意力子空间),对复杂序列可能不够充分。
多头自注意力就是并行使用多个自注意力头,每个头在不同的线性映射空间中计算注意力,然后再合并输出,以捕捉多种特征和依赖关系。

这里我不想再写公式了,我们直接去理解就好:
逻辑上:每个头捕捉输入序列的不同注意力模式 → 拼接 → 投影回原始维度
线性映射的作用:让每个头有不同的查询、键和值表示,从而“看待序列的角度不同”。
拼接 + 输出映射:把每个头捕获的信息整合回原始特征空间维度,方便后续处理。
简单理解:就是不同的角度在求平均,有一点求同存异的感觉。
这样我们就可以真的来看我们解码器的结构了:
解码器本质是一个信息提取器,编码器本质是一个信息聚合器。(不这么取名感觉是因为后面有generator extractor结构,不过这个是之后的东西,作为其在实际操作里的改进,我们这里也不讲)
我们带有位置编码和基本信息的响亮,输入注意力机制进行信息聚合,ADD&NORM是一个残差连接层和一个归一化过程(残差链接层放置它给训练没了,绷)然后后面跟一个前馈神经网络。
这个过程重复个N次,N是超参数自己设。
这样我们的编码器就可以提取到一个相对靠谱的内容了。
以上:编码器完。
再讲解码器之前,我们要弄清楚我们下面(右下)部分输入的是什么:
这里我们要分清楚我们的训练阶段和推理阶段(和上游任务下游任务差不多)
我们用这个transformer做项目的时候肯定是这样的,我们现有一个有标准答案的东西来训练,然后我们真做项目的时候我们肯定是没有标准答案的肯定只有我们原来的序列。
训练阶段:我们输入的就是标准答案,但是我们还没预测的内容后面要掩盖住,这个操作就是后面的masked multi-head attention,实际上目的你可以理解不要看后面的答案,英语翻译I eat food,如果给了你“我”,你还需要思考后面是什么,如果我给你“我()饭”让你填空,那你想都不用想就填吃了,这样就会降低学习难度,学习效果就不好。
而真实项目过程中我们没有标准答案,这里边输入的是前面已经预测完的结果,比如 “我”,“我吃”,“我吃早”,“我吃早饭”,也就是说我们的预测过程可以和前面形成联系,形成一个自回归的预测。
然后这部分输入的处理就和左侧的差不多了,一样的需要位置编码。解码器的输出和这部分输出的内容分开输入解码器中,编码器的结果经过带有聚合效果的多头自注意力机制,残差神经网络,归一化,前馈神经网络,达到我们的聚合效果,下面那部分输入首先要进行掩码(基础的架构是对后面掩码,实际上还有移位掩码,双重掩码等操作来解决具体的问题),然后也进行类似操作处理,整个解码器进行了信息的整合处理,最后输出的还是向量。
但是解码器输出的向量对我们人类是没有用的啊,所以我们还需要把这部分向量转化为有用信息。
linear层;向量–》分数:向量里边是输出的单词的“原始得分”,这个直接当成权重理解,之后会进行投票。
SoftMax:把linear层输出的向量归一化,就成了概率分布,我们就可以从词汇表里边选概率最大的那个词作为输出。
之后我们的tranformer机器就会一个字一个字输出,直至他打出机器自己认识的结束符号,整个输出部分结束。
这个就是完整的transformer的基本架构。
接下来介绍两部分内容 :BERT 和 VIT。(今天先不做一个细致全面的介绍,大概谢谢,以感悟为主)
BERT:
逻辑:同时处理两边文本。
1. 解决的问题(目的)
BERT的核心目的是解决自然语言理解(NLU)任务。在BERT出现之前,主流的语言模型(如GPT)通常是单向的——它们只能从左到右或从右到左地理解文本。这限制了模型对词语上下文的完整理解,因为一个词的含义往往由其前后文共同决定。
BERT的革新性目的是:训练一个深度双向的语言模型,使其能够同时利用目标词左侧和右侧的上下文来生成该词的深层表示,从而更彻底地理解语言的含义和语境。
具体来说,它旨在为各种下游NLP任务(如问答、情感分析、命名实体识别等)提供一个强大的、通用的预训练基础模型,这个模型只需稍作调整(微调)就能在特定任务上取得优异表现。
2. 基本架构
BERT的架构相对直接:它仅使用了Transformer的编码器(Encoder)部分。
-
• **基石:**多层Transformer编码器堆叠而成。
-
• **模型尺寸:**BERT提供了两个主要版本:
-
• **BERT-Base:**12层 Transformer编码器,768维隐藏层,12个注意力头(总参数量约1.1亿)。
-
• **BERT-Large:**24层 Transformer编码器,1024维隐藏层,16个注意力头(总参数量约3.4亿)。
-
• **输入表示:**BERT的输入是一个经过精心设计的序列,用于处理句子对任务(如问答)。
-
•
[CLS]:位于序列开头,该位置的最终输出向量被用作整个序列的聚合表示,常用于分类任务。 -
•
[SEP]:分隔符,用于分隔两个句子。 -
• Token Embeddings:词嵌入。
-
• Segment Embeddings:句子嵌入,标识Token属于句子A还是句子B。
-
• Position Embeddings:位置嵌入,为模型提供Token的位置信息。
3. 核心思想与数学原理
BERT的核心思想是通过无监督预训练来学习语言的内在规律,其数学原理体现在两个巧妙的预训练任务上:
任务一:掩码语言模型(Masked Language Model, MLM)
- • 目的:实现真正的双向深度表征学习。
- • 方法:
-
- 随机遮盖输入序列中15%的Token。
-
- 其中80%被替换为特殊的
[MASK]标记。
- 其中80%被替换为特殊的
-
- 10%被替换为随机Token。
-
- 10%保持不变。
- • 数学原理:模型的任务是预测这些被遮盖的原始Token。这迫使模型必须整合来自左右两侧的上下文信息来做出预测,从而学会了双向理解。
- • **损失函数:**基于被遮盖位置输出的交叉熵损失(Cross-Entropy Loss)。
任务二:下一句预测(Next Sentence Prediction, NSP)
- • **目的:**让模型理解两个句子之间的关系,这对问答、自然语言推理等任务至关重要。
- • 方法:
-
- 输入句子A和句子B。
-
- 50%的情况下,句子B是句子A的真实下一句(标签为 )。
-
- 50%的情况下,句子B是从语料库中随机抽取的(标签为 )。
- • **数学原理:**模型利用 标记的最终输出向量进行二分类,预测句子B是否是句子A的下一句。
- • **损失函数:**二分类交叉熵损失。
预训练过程是同时优化MLM和NSP两个任务的损失函数之和。
4. 模型内容与工作流程
-
- 预训练(Pre-training):
- • 在海量无标注文本语料(如Wikipedia、BookCorpus)上,使用MLM和NSP任务进行无监督训练。
- • 这个过程计算量极大,耗时耗资源,通常由大型机构完成。
-
- 微调(Fine-tuning):
- • 得到预训练好的BERT模型后,针对特定的下游任务,只需在其输出后添加一个简单的任务相关输出层(例如,一个softmax分类器)。
- • 使用有标签的任务数据,对整个模型的所有参数进行端到端的微调。由于模型已经具备了强大的语言理解能力,微调通常只需要少量数据就能达到极佳效果。
针对不同任务的微调方式:
- • **文本分类/情感分析:**使用 位的输出向量作为整个句子的表示,输入到一个分类器中。
- • **句子对任务(如语义相似度、自然语言推理):**将两个句子用 隔开输入,同样使用 位的输出向量进行分类。
- • **问答任务(如SQuAD):**将问题和段落作为输入,模型需要预测答案在段落中的起始和结束位置。这通过在段落每个Token的输出上接两个分类器来实现。
- • **命名实体识别(NER):**将每个Token的输出向量输入到一个分类器中,预测该Token的实体标签。
总结
| 方面 | 内容 |
|---|---|
| 目的 | 创建深度双向的预训练语言模型,用于解决各类自然语言理解任务。 |
| 核心架构 | 多层Transformer编码器 的堆叠。 |
| 核心创新 | 掩码语言模型(MLM) 和 **下一句预测(NSP)**两个预训练任务。 |
| 数学原理 | 基于自注意力机制计算上下文表征,通过交叉熵损失联合优化MLM和NSP任务。 |
| 工作模式 | 预训练 + 微调 :先在大规模无标注数据上预训练,再用少量标注数据对特定任务进行微调。 |
| 影响 | BERT彻底改变了NLP的发展格局,证明了预训练模型的巨大威力,引领了NLP进入“预训练-微调”的新范式。 |
VIT:抛弃传统的卷积操作,把图像当作一种序列(sequence)来处理,然后直接用标准的Transformer编码器(Encoder)来学习它
其实前面都差不多:只不过把处理语言的方式换成了处理图像的特定方式,后面在编码器和解码器上会根据任务需要加上分类头,来实现我们的分类任务。
ViT也有其特点:它在中小型数据集(如ImageNet-1k)上的表现可能不如精心设计的CNN,因为它缺乏CNN固有的归纳偏置(如平移不变性、局部性),需要更多的数据来学习这些特性。 后续的模型如Swin Transformer通过引入分层结构和移位窗口等设计,更好地解决了这个问题。
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01 教学内容

-
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
-
大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03 入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:
04 视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
05 行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!
06 90+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)