- 一、大模型的发展
-
- [1.1 NLP大模型族谱](#1.1 NLP大模型族谱)
- [1.2 ChatGPT 的 RLHF(基于人类反馈的强化学习) 的完整训练流程](#1.2 ChatGPT 的 RLHF(基于人类反馈的强化学习) 的完整训练流程)
-
- [1.2.1 PPOvsDPO](#1.2.1 PPOvsDPO)
- [1.3 AGIvs传统学习](#1.3 AGIvs传统学习)
- [1.4 大模型发展路径](#1.4 大模型发展路径)
- [1.5 中文大模型生态](#1.5 中文大模型生态)
- 二、大模型是如何练成的
-
- [2.1 大模型训练整体流程](#2.1 大模型训练整体流程)
- [2.2 模型训练的具体流程](#2.2 模型训练的具体流程)
- [2.3 TRM的应用](#2.3 TRM的应用)
-
- [2.3.1 TRM的整体架构](#2.3.1 TRM的整体架构)
- [2.3.2 Attention 背后的 Intuition](#2.3.2 Attention 背后的 Intuition)
- [2.3.3 位置编码](#2.3.3 位置编码)
- [2.3.4 self-Attention自注意力机制](#2.3.4 self-Attention自注意力机制)
- [2.3.5 多头注意力](#2.3.5 多头注意力)
- [2.3.6 整体Encoder](#2.3.6 整体Encoder)
- [2.3.7 三种注意力](#2.3.7 三种注意力)
- [2.3.7.1 Encoder 全注意力 VS Decoder 掩码注意力](#2.3.7.1 Encoder 全注意力 VS Decoder 掩码注意力)
- [2.3.7.2 Encoder-Decoder Attention / Cross-Attention](#2.3.7.2 Encoder-Decoder Attention / Cross-Attention)
一、大模型的发展
1.1 NLP大模型族谱

1.2 ChatGPT 的 RLHF(基于人类反馈的强化学习) 的完整训练流程

流程说明:
- 从数据集中采样一个新的 prompt
示例:"Write a story about frogs"(写一个关于青蛙的故事) - 策略模型(PPO)生成输出
图中神经网络标注为 PPO(Proximal Policy Optimization,近端策略优化算法)
生成的输出示例:"Once upon a time..." - 奖励模型(RM)对该输出计算奖励分数
RM 网络给出一个奖励值 r_k - 用这个奖励值通过 PPO 算法更新策略模型
形成闭环(图中有箭头从 r_k 指回 PPO),不断迭代优化
1.2.1 PPOvsDPO

1.3 AGIvs传统学习

| 维度 | 传统深度学习范式 | 大模型预训练-微调范式 |
|---|---|---|
| 代表模型 | 传统的 CNN、RNN 等专用模型 | GPT-3 base 等通用大模型(AGI) |
| 数据依赖 | 每个任务都需要大量标注数据 | 基座预训练需要海量数据,下游任务仅需少量数据 |
| 训练成本 | 每个任务都要从零训练,算力浪费严重 | 基于通用基座微调,成本低、落地快 |
| 模型性质 | 专才(一事一议) | 通才(一脑多用) |
1.4 大模型发展路径

| 维度 | 观察结论 |
|---|---|
| 技术路线 | Decoder-Only 一统天下,Encoder-Only 基本退出历史舞台 |
| 参数规模 | 从2018年的1.17亿(GPT-1)→ 2023年的万亿级(GPT-4) |
| 开源 vs 闭源 | 早期以闭源为主,2022年后开源模型(LLaMA、BLOOM、OPT)爆发 |
| 关键转折点 | 2020年 GPT-3 证明了"大力出奇迹";2022年 ChatGPT 引爆行业 |
| 研究方向 | 从"更大"转向"更聪明":指令微调(Instruct)、RLHF、MoE 稀疏化 |
1.5 中文大模型生态

中心主题
- 这张图以
Awesome-Chinese-LLM为中心,表示它是中文大模型生态的汇总入口。 - 周围分出不同模型家族,展示 2023 年中文大模型"百花齐放"的状态。
三大重点底座
LLaMA 系列底座:英文开源底座中文化,是中文社区改造最多的一条路线。ChatGLM 系列底座:国产自研,对话能力强,适合做垂直领域微调。Baichuan 系列:国产自研底座,是中文大模型的重要代表。
两条发展路线
- 借船出海:基于 LLaMA、BLOOM、Falcon 等英文开源底座,加入中文语料和中文指令数据进行改造。
- 自主造船:以 ChatGLM、Baichuan、Qwen、InternLM、Moss 等国产模型为代表,强调自主可控。
垂直领域落地
- ChatGLM 分支展示了医疗、法律、数学、心理、金融等方向。
- 这说明中文大模型不只是做通用聊天,更重要的是面向具体行业场景落地。
二、大模型是如何练成的
2.1 大模型训练整体流程

2.2 模型训练的具体流程

上半部分:三条训练路线
- 路线①:架构设计 + 训练
从 Transformer 结构开始,自己设计架构、准备约1T token数据,再经过Pretrained Model → SFT → Alignment。这是最完整、也最贵的路线,适合 OpenAI、Meta 这类巨头。 - 路线②:架构复用 + 训练
不从零设计架构,而是复用公开架构并做少量修改,再自己喂海量数据训练。它省掉了架构研发成本,但数据和算力成本依然很高,例如Baichuan。 - 路线③:增量训练
直接复用已有预训练模型的权重,在此基础上继续训练。它可以做垂直领域扩展,也可以做语言扩展,是中小团队和行业模型最常用的路线。
下半部分:金融 LLaMA 案例
- 起点是通用底座
LLaMA。 - 通过增量预训练,把金融领域知识注入模型,得到
金融 LLaMA。 - 最后再用金融指令数据做
SFT,让模型学会财报解读、投研问答、行情分析等具体任务。
数据配方的关键
金融领域数据 300B:用于注入金融知识,例如财报、公告、研报、财经新闻、金融术语。通用数据 500B:用于保住模型原本的语言能力,防止灾难性遗忘。- 这里的核心不是"只喂专业数据",而是要让模型做到"既专业,又通用"。
一句话总结
- 路线①最强但最贵,路线②省架构但仍然贵,路线③最适合行业落地。
- 垂直领域大模型的主流公式是:
通用底座 + 领域/通用混合增量预训练 + SFT。
2.3 TRM的应用
2.3.1 TRM的整体架构


Encoder Block:负责理解输入
- Encoder 的核心结构是:
Self-Attention → Feed-forward。 Self-Attention让输入序列自己看自己,每个 token 都能结合整句上下文。Feed-forward / FFN负责对每个位置的向量进一步加工,增强表达能力。
Decoder Block:负责生成输出
- Decoder 的核心结构是:
Masked Self-Attention → Encoder-Decoder Attention → Feed-forward。 Masked Self-Attention只能看已经生成的内容,不能偷看未来 token。Encoder-Decoder Attention让 Decoder 回头看 Encoder 输出,是连接"理解"和"生成"的桥梁。
三种 Attention 的区别
Self-Attention:源句内部抓重点。Masked Self-Attention:译文内部协调,但不能看未来。Encoder-Decoder Attention / Cross-Attention:译文回头看源句,实现输入和输出之间的对齐。
和现代大模型的关系
BERT是典型Encoder-only,偏理解。T5是典型Encoder-Decoder,适合翻译、摘要。GPT / LLaMA / ChatGPT是典型Decoder-only,也是现代生成式大模型的主流路线。

上方:相关词会互相注意
- 句子
The boy is holding a blue ball中,boy、holding、ball之间有较强注意力连接。 - 这表示模型理解
ball时,不是孤立看这个词,而是会关注"谁拿着球""球和哪个动作有关"。
下方:同一个 it 指向不同对象
it was hungry中,it更关注cat,因为"饿"通常描述猫。it was sweet中,it更关注milk,因为"甜"通常描述牛奶。- 两句话只改了最后一个词,但注意力焦点发生了变化。
Self-Attention 的作用
- Self-Attention 可以自动完成类似"代词指代消解"的任务。
- 同一个
it在不同上下文中,会融合不同信息,得到不同的Vector。 - 这就是"上下文决定词义"的直观体现。
self 体现在哪里
self指的是:句子自己注意自己。- 也就是
Q / K / V都来自同一个输入序列。 - 如果
Q来自 Decoder,K/V来自 Encoder,那就是Cross-Attention,不叫 Self-Attention。
2.3.2 Attention 背后的 Intuition

左侧:文本为什么要变成向量
- 机器不能直接理解文字,所以要把单词或句子的含义表示成
Vector。 - 语义相近的文本,向量也应该相近,例如
价格很贵和价格高。 - 但静态向量有问题:同一个词在不同上下文中含义不同,比如
吃苹果和买苹果手机。
中间:Transformer 的目标
- Transformer 要做的事不是简单保存一个固定词向量。
- 它要学习"更好的 Vector":
新向量 = 词本身 + 上下文信息
右侧:Attention 的直觉
- Attention 可以理解为"看书抓重点"。
- 人读书时不会平均看每个字,而是会关注关键句、关键词。
- 模型也是一样:它会给不同 token 分配不同的注意力权重。
Self-Attention 的作用
- Self-Attention 表示句子内部的 token 互相看。
- 每个 token 会结合整句话的上下文,重新生成一个更准确的向量。
- 所以它解决的核心问题是:让词义不再是固定的,而是随上下文变化。
2.3.3 位置编码

底部:文本先变成 Word IDs
- 一次输入
5个样本,每个样本长度是4。 - 所以原始输入批次形状是
5 × 4。 - 每个词先通过词表转换成整数编号,例如:
Hello My five word → [17, 31, 88, 102]
左侧分支:Embedding
Embedding本质是查表。- 每个 Word ID 会查出一个词向量。
- 这里教学简化为
embed size = 3,所以形状从5 × 4变成5 × 4 × 3。 - 这部分主要提供"语义信息"。
右侧分支:Position Encoding
- 位置编码只和位置有关,不和具体单词有关。
- 核心位置表是
4 × 3,对应 4 个位置、每个位置 3 维。 - 因为有 5 个样本,所以它会广播复制成
5 × 4 × 3。 - 这部分主要提供"顺序信息"。
中间汇合:逐元素相加
Embeddings和Position Encodings形状相同,都是5 × 4 × 3。- 所以可以逐元素相加:
Encoder Input = Embeddings + Position Encodings - 相加后,每个 token 向量同时包含"这个词是什么"和"这个词在第几个位置"。
顶部:送入 Encoder
- 最终得到的
Encoder Input形状仍然是5 × 4 × 3。 - 它会进入 Transformer Encoder,继续经过
Self-Attention → Add&Norm → FFN等结构。

为什么需要位置编码
Self-Attention本身没有顺序概念。- 如果不加入位置信息,模型只知道有哪些 token,却不知道哪个词在前、哪个词在后。
- 所以需要给每个 token 额外加上一个
Positional Encoding。
正弦 / 余弦公式的作用
- 偶数维使用
sin,奇数维使用cos。 pos表示词在句子中的位置,对应矩阵的行。i表示向量维度索引,对应矩阵的列。- 不同维度使用不同频率,让位置编码具有丰富的周期模式。
矩阵怎么理解
- 位置编码矩阵大小是:
Seq Len × d_model。 - 每一行对应一个词的位置,例如第 1 行对应
Hello。 - 蓝色圈出的整行才是一个完整的位置编码向量,不是单独一个格子。
怎么送入 Transformer
- 每个 token 先通过
Word Embedding得到词向量。 - 再取出对应位置的
PE(pos)。 - 两者逐元素相加:
Word Embedding(token) + PE(pos) = 最终输入向量 - 最后送入
Self-Attention层。
一句话总结
- 位置编码就是给词向量加上"第几个词"的信息,让 Transformer 在理解文本时不仅知道词的含义,也知道词的先后顺序。
2.3.4 self-Attention自注意力机制

| 步骤 | Thinking (x₁) | Machines (x₂) |
|---|---|---|
| Embedding | x₁ | x₂ |
| Q/K/V | q₁, k₁, v₁ | q₂, k₂, v₂ |
| Score | q₁·k₁=112, q₁·k₂=96 | q₂·k₁, q₂·k₂ |
| ÷ √d_k (=8) | 14, 12 | 缩放后的分数 |
| Softmax 权重 | 0.88, 0.12 | (w₂₁, w₂₂) |
| 输出 | z₁ = 0.88v₁ + 0.12v₂ | z₂ = w₂₁v₁ + w₂₂v₂ |
相当于一个q,然后跟不同的k进行匹配
- 先把词变成向量
Thinking → x1Machines → x2- 此时只是普通词向量,还没有上下文信息。
- 生成 Q / K / V
- 每个词都会通过三个矩阵生成:
q, k, v。 q用来"找上下文",k用来"被匹配",v是真正要被加权汇总的信息。
- 每个词都会通过三个矩阵生成:
- 以 Thinking 为主角计算 z1
q1 · k1 = 112q1 · k2 = 96- 除以
sqrt(d_k)=8后变成14, 12。 - 再经过
softmax得到权重:0.88, 0.12。
- 得到新向量
z1 = 0.88v1 + 0.12v2- 也就是
Thinking的新表示里,主要保留自己,同时融合一点Machines的上下文信息。

- Q / K / V 的直觉
Query:搜索词,表示"我想找什么信息"。Key:索引标签,表示"我是什么信息"。Value:实际内容,表示"被选中后贡献什么"。
- 矩阵公式
Attention(Q,K,V) = softmax(QK^T / sqrt(d_k))VQK^T得到所有词之间的相关性分数。Softmax把每一行归一化成注意力权重。- 最后乘
V,得到所有 token 的新向量Z。
- 为什么能并行
x1, x2, x3可以同时进入 Self-Attention。- 一次矩阵乘法就能算出所有词之间的注意力关系。
- 所以 Transformer 比 RNN 更容易并行计算。
- 一句话总结
- Self-Attention 本质就是:
Query 检索 Key 得到权重,再用权重汇总 Value,最终得到上下文向量 Z。
- Self-Attention 本质就是:
总结:

2.3.5 多头注意力

顶部:共享输入 X
- 同一个输入矩阵
X会被送入 8 个注意力头。 - 这里
X的形状是2×4,两行分别对应Thinking和Machines。 - 8 个头看到的是同一个输入,但每个头使用不同参数。
中间:8 个 Head 并行计算
- 每个 head 都有自己独立的
W_h^Q / W_h^K / W_h^V。 - 每个 head 都独立执行一遍 Self-Attention:
head_h = softmax(Q_hK_h^T / sqrt(d_k))V_h - 每个头输出一个
Z_h,本图中每个Z_h的形状是2×3。
底部:Merge 合并
- 先把
Z0, Z1, ..., Z7横向拼接:
Concat(Z0, Z1, ..., Z7) → 2×24 - 再乘输出矩阵
W^O:
2×24 × 24×4 → 2×4 - 最终得到的
Z形状回到2×4,可以继续送入下一层。
为什么是 8 个头
- 每个头可以学习一种不同的注意力模式。
- 有的头可能关注语法,有的关注指代,有的关注相邻词,有的关注全局关系。
- 真实 Transformer 常见设置是
d_model=512, h=8,每头64维,拼接后仍是512维。
一句话总结
- 多头自注意力就是:
同一个 X → 8 个独立 Head 并行计算 → 得到 Z0...Z7 → Concat → W^O → 最终 Z - 记忆口诀:同输入、异参数、并行算、拼接合。

多头的基本思想
- 同一个输入矩阵
X会同时送入多个 Attention Head。 - 每个 head 都有自己独立的
W^Q / W^K / W^V。 - 所以多头不是复制同一个结果,而是让模型从多个不同视角理解句子。
每个 Head 内部做什么
- 每个头都会独立执行一遍 Self-Attention:
Q = XW^QK = XW^KV = XW^VZ_h = softmax(Q_hK_h^T / sqrt(d_k))V_h
- 本图用 2 个头演示,分别得到
Z0和Z1。
Merge 怎么做
- 先把多个 head 的输出横向拼接:
Concat(Z0, Z1) → 2×6 - 再乘输出矩阵
W^O做线性融合:
2×6 × 6×4 → 2×4 - 最终输出
Z的维度回到和输入X一样,方便送入下一层。
为什么多头更强
- 单头只能学一套注意力模式。
- 多头可以自动分工:有的关注语法,有的关注指代,有的关注相邻词,有的关注全局关系。
- 它有点像集成学习:多个注意力视角合并,得到更强的表示。
记忆口诀
同输入、异参数、并行算、拼接合- 也就是:同一个
X,不同参数的多个 head 并行计算,最后Concat + W^O合并。
拼接

顶部:共享输入 X
- 同一个输入矩阵
X会被送入 8 个注意力头。 - 这里
X的形状是2×4,两行分别对应Thinking和Machines。 - 8 个头看到的是同一个输入,但每个头使用不同参数。
中间:8 个 Head 并行计算
- 每个 head 都有自己独立的
W_h^Q / W_h^K / W_h^V。 - 每个 head 都独立执行一遍 Self-Attention:
head_h = softmax(Q_hK_h^T / sqrt(d_k))V_h - 每个头输出一个
Z_h,本图中每个Z_h的形状是2×3。
底部:Merge 合并
- 先把
Z0, Z1, ..., Z7横向拼接:
Concat(Z0, Z1, ..., Z7) → 2×24 - 再乘输出矩阵
W^O:
2×24 × 24×4 → 2×4 - 最终得到的
Z形状回到2×4,可以继续送入下一层。
为什么是 8 个头
- 每个头可以学习一种不同的注意力模式。
- 有的头可能关注语法,有的关注指代,有的关注相邻词,有的关注全局关系。
- 真实 Transformer 常见设置是
d_model=512, h=8,每头64维,拼接后仍是512维。
一句话总结
- 多头自注意力就是:
同一个 X → 8 个独立 Head 并行计算 → 得到 Z0...Z7 → Concat → W^O → 最终 Z - 记忆口诀:同输入、异参数、并行算、拼接合。
总结:

2.3.6 整体Encoder

底部:输入 X 的来源
Thinking和Machines先变成词嵌入。- 再加上
Positional Encoding,得到真正送入 Encoder 的输入X。 - 这一步对应:
词义信息 + 位置信息。
第一个子层:Multi-Head Self-Attention
- Self-Attention 负责让 token 之间互相看。
- 它输出的
Z1 / Z2已经融合了上下文信息。 - 直观理解:注意力负责"位置间交流"和"收集上下文"。
第一次 Add & Normalize
- 公式是:
Z = LayerNorm(X + MultiHeadAttn(X)) - 这里的
X + ...就是残差连接。 - 残差负责保留原始信息、缓解深层训练困难;
LayerNorm负责稳定数值分布。
第二个子层:Feed Forward Network
- FFN 对每个 token 位置独立处理。
- 它不负责 token 之间交流,而是负责对每个位置的向量做非线性加工。
- 真实 Transformer 中常见维度变化是:
512 → 2048 → 512。
第二次 Add & Normalize
- 公式是:
Ẑ = LayerNorm(Z + FFN(Z)) - 最终输出
Ẑ1 / Ẑ2,可以送入下一层 Encoder。 - 因为输入
X和输出Ẑ形状相同,所以 Encoder 可以层层堆叠。
一句话总结
- 一个 Encoder 层 =
Multi-Head Self-Attention + Add&Norm + Feed Forward + Add&Norm。 - 注意力负责交互,FFN 负责加工,残差和 LayerNorm 保证深层网络能稳定训练。
2.3.7 三种注意力

左侧:Encoder 负责理解源句
- 输入
Thinking Machines先经过Embedding + Positional Encoding。 - 每个 Encoder 层包含:
Self-Attention → Add & Norm → Feed Forward → Add & Norm。 - 多个 Encoder 层堆叠后,顶层输出就是源句的上下文表示。
中间:Encoder 输出作为 K/V 传给 Decoder
-
蓝色虚线箭头表示:Encoder 顶层输出会传给每一个 Decoder 层。
-
在
Encoder-Decoder Attention中:
Q来自 Decoder;K/V来自 Encoder。
-
这一步就是翻译/生成任务里"目标句回头看源句"的桥梁。
右侧:Decoder 负责生成目标句
- Decoder 比 Encoder 多一个注意力子层。
- 它的结构是:
Masked Self-Attention → Encoder-Decoder Attention → Feed Forward。 Masked Self-Attention保证生成时只能看过去,不能偷看未来。Encoder-Decoder Attention负责查询 Encoder 提供的源句信息。
顶部:Linear + Softmax 生成下一个词
- Decoder 栈顶输出先经过
Linear,投影到词表大小。 - 再经过
Softmax,得到每个候选词的概率。 - 推理时选择或采样一个 token,再回填到 Decoder 输入,直到生成
<EOS>。
2.3.7.1 Encoder 全注意力 VS Decoder 掩码注意力

对比 Encoder 的全句双向注意力与 Decoder 的因果单向注意力。
展示 softmax 前加入 Mask Matrix 的机制。
强调 Decoder 上三角 -inf 会让未来位置权重变成 0。
适合放在"为什么 Decoder 不能偷看答案"这一页。
2.3.7.2 Encoder-Decoder Attention / Cross-Attention

用 Thinking Machine is good → LLM is funny 展示源句与目标句的跨序列对齐。
明确 Q 来自 Decoder,K/V 来自 Encoder。
用 3×4 热力矩阵体现"目标词 × 源词"的非方阵结构。
底部汇总三种注意力:Encoder Self-Attn、Decoder Masked Self-Attn、Encoder-Decoder Attn。