
🐇明明跟你说过:个人主页
🏅个人专栏:《深度探秘:AI界的007》 🏅
🔖行路有良友,便是天堂🔖
目录
[1️⃣ 输入数据的预处理](#1️⃣ 输入数据的预处理)
[2️⃣ 输入嵌入(Input Embedding)](#2️⃣ 输入嵌入(Input Embedding))
[3️⃣ 位置编码(Positional Encoding)](#3️⃣ 位置编码(Positional Encoding))
[4️⃣ Transformer 输入表示示意图](#4️⃣ Transformer 输入表示示意图)
[1️⃣ 编码器(Encoder)基本结构](#1️⃣ 编码器(Encoder)基本结构)
[2️⃣ 多头自注意力机制(Multi-Head Self-Attention)](#2️⃣ 多头自注意力机制(Multi-Head Self-Attention))
[1️⃣ 解码器(Decoder)基本结构](#1️⃣ 解码器(Decoder)基本结构)
[2️⃣ 解码器的核心模块](#2️⃣ 解码器的核心模块)
[3️⃣ 解码器完整计算流程](#3️⃣ 解码器完整计算流程)
[1️⃣ 编码器-解码器交互的核心目标](#1️⃣ 编码器-解码器交互的核心目标)
[2️⃣ 交互流程(Encoder-Decoder Attention)](#2️⃣ 交互流程(Encoder-Decoder Attention))
[3️⃣ 编码器-解码器交互的核心机制](#3️⃣ 编码器-解码器交互的核心机制)
[4️⃣ 交互示例](#4️⃣ 交互示例)
一、引言
1、什么是LLM
LLM 就像一个超级"语言大脑" ,它能理解、生成、总结、翻译各种人类语言的文本,就像一个超级智能的"文字助手"。
🚀 LLM 的核心特点
-
📖 吸收大量知识
- 它是通过学习 海量的文本数据(比如书籍、网站、论文)来"理解"人类语言的。
- 训练后,它能像人一样对话、写文章、总结信息。
-
📝 预测下一个单词
- 它的原理其实很简单,就是不断预测下一个最可能出现的单词,就像玩填字游戏一样。
- 例如:
输入 :「天气真好,我们去......」
LLM 预测:「公园散步」「海边游泳」等等。 - 但因为训练数据足够多,它的预测非常智能,就像会思考一样。
-
🛠 适用于多种任务
- 对话:像 ChatGPT 一样聊天。
- 写作:写文章、编故事、写代码。
- 翻译:把英文翻译成中文,反之亦然。
- 信息处理:总结长文、分析数据、回答问题。
📌 现实中的 LLM
- ChatGPT(GPT-3.5 / GPT-4) 👉 你正在使用的聊天 AI。
- Claude(Anthropic) 👉 另一个智能助手。
- Gemini(Google) 👉 Google 的 AI 模型。
- Llama(Meta) 👉 开源 LLM。

2、Transformer在LLM中的作用
Transformer 是 LLM 的核心"引擎" ,它决定了模型如何高效理解和生成语言。可以把它比作超级大脑的运算核心,让 AI 具备强大的语言处理能力。
在 LLM(如 GPT-4、ChatGPT)中,Transformer 主要负责以下 3 个关键任务:
1️⃣ 编码输入(理解文本)
- LLM 需要理解你输入的内容 ,Transformer 通过 Self-Attention(自注意力机制) 找出句子中最重要的部分。
- 例如:
输入 :「AI 是一种强大的工具,它可以帮助人们提高效率。」
Transformer 处理后:它能知道「AI」和「工具」、「帮助」和「提高效率」这些词关系密切。
2️⃣ 预测下一个词(生成文本)
- Transformer 通过 自回归(Autoregressive) 预测下一个可能的单词。
- 例如:
输入 :「今天的天气很好,我们去」
模型预测:「公园散步」「海边玩耍」「外面吃饭」等可能的结果。
3️⃣ 长文本记忆(关联上下文)
- Transformer 让 LLM 能理解长篇内容,不像旧的 RNN 那样容易"忘记"前面的话。
- Self-Attention 机制 让它能处理上千个词的上下文,使得回答更加连贯。
- 例如:
- 旧的 RNN 可能会"忘记"前几句的内容。
- Transformer 可以一直记住对话的上下文,确保回答不离题。

二、Transformer架构基础
1、Transformer的诞生
📜 Transformer 的诞生:从 RNN 到 Attention 机制的革命
🔍 Transformer 诞生的背景
在 2017 年之前,NLP(自然语言处理)主要依赖 RNN(循环神经网络) 和 LSTM(长短时记忆网络) 处理文本。但这些方法有几个严重的缺点:
- 训练慢:RNN/LSTM 需要逐字处理文本,难以并行化,训练成本高。
- 长期依赖问题:长文本容易"忘记"前面的内容,导致语义理解不准确。
- 梯度消失:深层网络训练时,梯度可能消失或爆炸,使得模型难以学习。
于是,研究人员开始探索新的架构,最终 Transformer 在 2017 年横空出世! 🚀
📅 2017 年:Transformer 论文问世
2017 年,Google Brain 团队发表了一篇震撼 NLP 领域的论文: 👉 《Attention is All You Need》(注意力就是一切)
这篇论文提出了一种全新的深度学习架构------Transformer ,彻底摆脱了 RNN/LSTM,而是 完全依赖 Attention(注意力机制) 来处理文本。
自从 2017 年 Transformer 诞生后,NLP 领域发生了革命性的变化:
- 2018 年:Google 发布 BERT(基于 Transformer 的预训练语言模型)
- 2020 年:OpenAI 发布 GPT-3(使用 Transformer 进行文本生成)
- 2023 年:GPT-4、LLama、Claude 等模型纷纷崛起
如今,所有主流的大语言模型(LLM)都基于 Transformer 架构,它已经成为 AI 领域的基石!🚀

2、Transformer的核心组件概览
Transformer 由 编码器(Encoder) 和 解码器(Decoder) 组成,每个部分都由多个核心组件构成。
🧩 1. 输入嵌入(Input Embedding)
- 作用:将输入的文本(单词或字符)转换为向量表示。
- 方式:通常使用 词向量(Word Embedding) 或 Token Embedding(如 Word2Vec、BERT 词嵌入等)。
- 示例:
-
句子 "Hello world" →
["Hello", "world"]
-
通过嵌入层转换为向量:
Hello → [0.12, 0.98, -0.45, ...]
World → [0.67, -0.22, 0.78, ...]
-
📍 2. 位置编码(Positional Encoding)
- Transformer 不具备序列信息 ,所以需要位置编码来引入单词的顺序信息。
- 方式:使用正弦和余弦函数生成固定的编码,将其加到输入嵌入上:
- 作用:让 Transformer 能够区分 "Hello world " 和 "World Hello"。
🎯 3. 多头自注意力(Multi-Head Self-Attention)
(1)自注意力(Self-Attention)
- 作用:让模型能够关注句子中最重要的单词,而不仅仅是靠前或靠后的信息。
- 计算方式:
- 生成 Q(Query),K(Key),V(Value)矩阵 :
- Q:表示当前单词对其他单词的关注度。
- K:表示当前单词的特征。
- V:表示当前单词的实际值。
- 计算注意力分数 :
- 计算
QK^T
(查询和键的点积),然后用 Softmax 归一化
- 计算
- 根据注意力权重调整 V,得到新的单词表示。
- 生成 Q(Query),K(Key),V(Value)矩阵 :
(2)多头注意力(Multi-Head Attention)
- 作用:使用多个独立的注意力头,让模型可以关注不同方面的信息(如语法、语义)。
- 方式:多个 Self-Attention 头并行计算,每个注意力头关注不同的上下文信息。
🔄 4. 前馈神经网络(Feed Forward Network, FFN)
- 作用:对每个单词独立进行非线性变换,增加模型的表达能力。
- 结构:包含两个全连接层(带 ReLU 激活函数)
🔁 5. 残差连接(Residual Connection)+ 层归一化(Layer Normalization)
-
残差连接(Residual Connection):
- 作用:缓解梯度消失问题,使得深层 Transformer 仍然可以学习。
- 方式:在每个模块的输出 + 原始输入
-
层归一化(Layer Normalization):
- 作用:防止内部协变量偏移(Internal Covariate Shift),加快训练速度。
📦 6. 编码器(Encoder)
- 结构:由多个相同的 Encoder 层堆叠而成(通常是 6 层)。
- 组成 :
- 多头自注意力(Self-Attention)
- 前馈神经网络(FFN)
- 残差连接 + 层归一化
- 作用:将输入文本编码成更丰富的语义向量。
📦 7. 解码器(Decoder)
- 结构 :与 Encoder 类似,但多了一个 "掩码多头注意力(Masked Multi-Head Attention)"。
- 组成 :
- Masked Multi-Head Attention(掩码多头自注意力)
- 作用:防止解码器看到未来的单词,使得模型能够按照自回归方式生成文本。
- Encoder-Decoder Multi-Head Attention
- 作用:解码器能够关注编码器的输出,使得生成的文本与输入相关。
- 前馈神经网络(FFN)
- 残差连接 + 层归一化
- Masked Multi-Head Attention(掩码多头自注意力)
- 作用:根据输入的编码表示,逐步生成输出。
🔚 8. 输出层(Output Layer)
- 作用:最终生成概率分布,预测下一个单词。
- 方式:使用 Softmax 计算单词的概率分布,选取概率最高的单词作为输出

三、Transformer模型详解
1、输入表示与处理
Transformer 在处理文本时,需要将原始输入转换为模型可以理解的格式。这一过程涉及多个关键步骤,包括**分词、嵌入(Embedding)、位置编码(Positional Encoding)**等。
1️⃣ 输入数据的预处理
Transformer 处理文本的第一步是将文本转换为离散的数值表示,主要包括:
- 分词(Tokenization)
- 词表(Vocabulary)映射
- 添加特殊标记(如
[CLS]
,[SEP]
)
(1)分词(Tokenization)
分词是将文本拆分成更小的单位,比如单词、子词或字符。常见的分词方法:
- Word-based(基于单词) :如
["Hello", "world"]
- Subword-based(基于子词) (BERT、GPT 使用的方式):如
["Hel", "lo", "world"]
- Character-based(基于字符) :如
["H", "e", "l", "l", "o", "w", "o", "r", "l", "d"]
为什么使用 Subword?
- 避免 **OOV(Out of Vocabulary,词表外单词)**问题
- 兼顾单词级和字符级的优势
常见分词算法:
- BPE(Byte Pair Encoding) → GPT 系列
- WordPiece → BERT
- SentencePiece → T5、mT5
示例 原始文本:
Transformer is amazing!
BPE 分词:
["Transform", "er", "is", "amaz", "ing", "!"]
WordPiece 分词:
["Trans", "##former", "is", "amazing", "!"]

(2)词表(Vocabulary)映射
Transformer 不能直接处理文本,而是通过一个 固定的词表(Vocabulary) 把分词后的 token 转换为索引(整数)。
Vocabulary:
{
"hello": 3145,
"world": 9271,
"amazing": 4212,
...
}
分词后的结果:
["Trans", "##former", "is", "amazing", "!"]
对应的索引:
[1284, 9521, 102, 4212, 99]
(3)添加特殊标记
在 Transformer 任务(如 BERT、GPT)中,我们通常会添加一些特殊标记:
[CLS]
(分类任务,如文本分类)[SEP]
(分隔符,用于句子对任务)[MASK]
(用于 BERT 预训练)
示例(BERT 任务):
[CLS] How are you? [SEP] I am fine. [SEP]
转换为 token:
["[CLS]", "How", "are", "you", "?", "[SEP]", "I", "am", "fine", ".", "[SEP]"]
对应索引:
[101, 2129, 2024, 2017, 1029, 102, 1045, 2572, 2986, 1012, 102]

2️⃣ 输入嵌入(Input Embedding)
Transformer 需要将整数索引转换为高维向量(Embedding),使模型能够学习单词之间的语义关系。
(1)嵌入层(Embedding Layer)
每个 token 都会被映射到一个固定维度的向量:
-
维度通常为 768(BERT-base)、1024(GPT-3)、4096(GPT-4) 等
-
例如:
"Hello" → [0.12, 0.98, -0.45, ..., 0.67] (768 维)
"World" → [0.34, -0.12, 0.56, ..., -0.78] (768 维)
示例:
"Hello world" → 词嵌入矩阵:
[
[0.12, 0.98, -0.45, ..., 0.67], # "Hello"
[0.34, -0.12, 0.56, ..., -0.78] # "World"
]
3️⃣ 位置编码(Positional Encoding)
❓ 为什么需要位置编码? Transformer 没有循环结构(不像 RNN 那样按顺序输入),所以需要额外的信息来表示单词的 位置 ,否则它无法区分 "Hello world"
和 "World Hello"
。
4️⃣ Transformer 输入表示示意图
最终 Transformer 输入是一个矩阵,每一行表示一个 Token:
[
[0.12, 0.98, -0.45, ..., 0.67] # "Hello" + Positional Encoding
[0.34, -0.12, 0.56, ..., -0.78] # "World" + Positional Encoding
]
这个矩阵会进入 多头注意力(Multi-Head Attention) 进行计算。

Transformer 处理输入的流程:
- 文本预处理
- 分词(Tokenization)
- 词表映射(Vocabulary)
- 添加特殊标记(如
[CLS]
,[SEP]
)
- 输入嵌入
- 通过 Embedding 层 将 Token 变为向量
- 位置编码
- 用 正弦/余弦函数 生成位置信息,并加到词嵌入上
最终,得到一个带有语义和位置信息的 数值矩阵,作为 Transformer 的输入。
✨ 这样,Transformer 就能无视句子长度、并行处理整个文本,同时保留单词顺序信息! 🚀
2、编码器(Encoder)结构
Transformer 的 编码器(Encoder) 负责处理输入文本,并将其转换为高维语义表示。它是 Transformer 结构的核心部分,主要用于自然语言理解(NLU)任务,如 BERT、T5 等。
1️⃣ 编码器(Encoder)基本结构
Transformer 的编码器由 多个相同的编码器层(Encoder Layer) 堆叠而成。每个编码器层包含两个主要部分:
- 多头自注意力机制(Multi-Head Self-Attention)
- 前馈神经网络(Feed-Forward Neural Network, FFN)
输入序列 -----> [Embedding + 位置编码]
↓
┌──────────────────┐
│ 编码器层 1 │
├──────────────────┤
│ 编码器层 2 │
├──────────────────┤
│ 编码器层 N │
└──────────────────┘
↓
语义表示
其中:
- 每个 编码器层(Encoder Layer) 结构相同
- N 层堆叠(BERT-base 用 12 层,BERT-large 用 24 层)
- 输入和输出维度相同,便于堆叠
2️⃣ 多头自注意力机制(Multi-Head Self-Attention)
编码器的核心是 自注意力机制(Self-Attention),它允许模型关注整个输入序列的不同部分,而不仅仅是局部信息(如 CNN 或 RNN)。
给定输入序列:
"The", "cat", "sat", "on", "the", "mat"]
自注意力计算每个单词相对于所有其他单词的重要性:
"The" → 关注 ["The", "cat", "sat", "on", "the", "mat"]
"cat" → 关注 ["The", "cat", "sat", "on", "the", "mat"]
...
这使得模型可以:
- 关注远距离的单词(长依赖关系)
- 处理不同语境下的相同单词(如 "bank" 在不同句子中的含义)

3、解码器(Decoder)结构
解码器(Decoder)是 Transformer 模型的另一半,主要用于生成任务 (如机器翻译、文本摘要、代码生成等)。它的作用是根据编码器的输出,逐步生成目标序列。
1️⃣ 解码器(Decoder)基本结构
解码器由 多个相同的解码器层(Decoder Layer) 叠加而成,每层包括:
- Masked 多头自注意力(Masked Multi-Head Self-Attention)
- 跨注意力(Encoder-Decoder Attention)
- 前馈神经网络(FFN)
目标序列 -----> [Embedding + 位置编码]
↓
┌──────────────────┐
│ 解码器层 1 │
├──────────────────┤
│ 解码器层 2 │
├──────────────────┤
│ 解码器层 N │
└──────────────────┘
↓
生成输出
- 输入是目标序列(如翻译任务中的目标语言)
- 解码器每次只能看到过去的单词(使用 Mask 机制)
- 依赖编码器提供的上下文信息
- 最终输出用于生成文本
2️⃣ 解码器的核心模块
(1)Masked 多头自注意力(Masked Multi-Head Self-Attention)
解码器的第一步是 自注意力机制 ,但与编码器不同,它采用 Masked(掩码) 机制:
- 防止模型看到未来的单词
- 保证自回归特性(Autoregressive)
(2)跨注意力(Encoder-Decoder Attention)
这一层是解码器唯一能访问编码器输出的地方 ,用于获取源语言句子的上下文信息。
3️⃣ 解码器完整计算流程
1. 输入
- 目标序列 经过 Embedding + 位置编码
- 初始时只有起始标记(<BOS>)
2. Masked 多头自注意力
- 计算 Query、Key、Value
- 计算注意力分数
- Mask 未来单词,防止作弊
3. 跨注意力(Encoder-Decoder Attention)
- Query 来自解码器
- Key、Value 来自编码器
- 关注源文本的不同部分
4. 前馈神经网络(FFN)
- 线性变换 + ReLU
- 线性变换
5. 归一化 + 残差连接
- 进行 LayerNorm
- 传递给下一层
6. 最终输出
- 传入 线性层 + Softmax
- 选择下一个单词,继续解码

4、编码器-解码器交互
在 Transformer 结构中,编码器(Encoder)和解码器(Decoder)交互 是关键,它们协同工作,实现从输入到输出的转换,例如机器翻译(MT)、文本摘要(Summarization)、语音识别(ASR)等任务。
1️⃣ 编码器-解码器交互的核心目标
🔹 编码器作用 :将输入序列转换为高维表示(上下文向量) ,包含全局信息。
🔹 解码器作用 :利用编码器的输出,逐步生成目标序列 。
🔹 交互方式 :解码器通过 跨注意力(Cross-Attention) 机制与编码器交互,获取编码器的上下文信息。
2️⃣ 交互流程(Encoder-Decoder Attention)
编码器-解码器的交互主要体现在 解码器的"跨注意力层" (Encoder-Decoder Attention)。
该部分使解码器能访问编码器的输出,以生成正确的目标序列。
输入句子(源语言) -----> 编码器(Encoder)
↓
编码器输出(上下文向量)
↓
┌────────────────────┐
│ 解码器(Decoder) │
└────────────────────┘
↓
生成目标句子(目标语言)
📌 详细流程
- 输入处理
- 输入序列 X (如 "The cat sat on the mat")经过 嵌入(Embedding)+ 位置编码(Positional Encoding) 处理,进入编码器。
- 编码器处理
- 通过多层自注意力 + FFN ,将输入转换为一组 高维上下文向量(Context Representation)。
- 这些向量保留了输入句子的重要信息,如词语之间的关系、句子结构等。
- 解码器接收输入
- 解码器 接收目标句子的前一部分(如 "Le chat")。
- 经过 Masked 自注意力 处理,确保解码器不会看到未来的单词。
- 跨注意力(Encoder-Decoder Attention)
- 解码器计算 Query(Q) ,编码器提供 Key(K)和 Value(V): Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax} \left( \frac{QK^T}{\sqrt{d_k}} \right) VAttention(Q,K,V)=softmax(dkQKT)V
- 这样,解码器可以在生成目标序列时,参考编码器的输出。
- 目标序列逐步生成
- 解码器利用编码器的信息,生成目标单词,并不断重复步骤 3️⃣ ~ 4️⃣,直到输出完整的句子。
3️⃣ 编码器-解码器交互的核心机制
(1)编码器-解码器注意力(Cross-Attention)
作用 :解码器关注编码器的输出 ,确保翻译时参考源语言信息 。
关键点:
- Query 来自解码器
- Key、Value 来自编码器
- 计算注意力分数,提取重要信息
(2)屏蔽未来信息(Masked Attention)
解码器的自注意力层 会屏蔽未来单词,确保模型按顺序生成。
(3)残差连接 & 归一化
每层都有残差连接 + LayerNorm,让训练更加稳定。
4️⃣ 交互示例
🌍 机器翻译示例
输入(英语):
The cat sat on the mat
编码器输出(上下文向量):
[cat: 0.32, 0.45, ...], [sat: 0.54, 0.21, ...], ...
解码器输入(目标语言 - 法语):
Le chat
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!