大模型基础 图解教程
图解教程 · 中文版

大模型基础
先懂地基,再动手

统计语言模型 → Transformer → 大模型架构 → 参数高效微调。动手学大模型之前,先花一小时把理论地基打牢。

18 个章节 20+ 张图解 3 大部 · 由浅入深 图文为主 · 视频为辅 基于浙大《大模型基础》整理
① 统计时代 n-grams 数频率 · 马尔可夫假设 短处:零概率 · 上下文有限 1960s 起 · 无法泛化长文 ② 循环时代 RNN / LSTM / GRU 环路携带历史状态 短处:串行 · 梯度消失 1980s 起 · 长序列吃力 ③ 注意力时代 Transformer 通盘考虑 · 可并行 大模型的地基 2017 起 · GPT / BERT
全书一句话:语言模型从「数频率」到「记上下文」再到「通盘注意力」,大模型是这条进化链的最新一站。
壹

Part 1 · 语言模型基础

语言模型到底是什么?从「数频率」到「记上下文」到「通盘注意力」——先看懂三代语言模型,再学大模型。

§01 · 语言模型基础

n-grams 统计语言模型

Statistical Language Models —— 语言是概率的,先学会数数。
一句话:语言模型的目标是预测「下一个词」的概率;n-grams 用「在语料里数频率」这种最朴素的方式来做这件事。
  • 语言是概率的:同样的语义可以用不同词表达,同样的词在不同语境下意义不同——所以语言模型要预测的是「语言符号的概率分布」。
  • 核心思想:文本 w₁:N 出现的概率,拆成每个词在「上文条件下」出现概率的连乘:P(w₁:N) = Π P(wᵢ | w₁:i-1)(链式法则)。
  • 马尔可夫假设:「当前词只与前 n 个词有关」——把无穷长的上文截断成固定窗口,这就是 n 的来历。
  • MLE 估计:条件概率用频率比近似:C(前n个词) / C(前n-1个词),这是极大似然估计的离散形式。
  • n 是权衡旋钮:n 越大越贴合语料但越容易「零概率」(没见过的词组合直接概率为 0);n 越小越通用但上下文信息不足。可用平滑(Smoothing)缓解。
语料库(5 个句子) 长颈鹿脖子很长 长颈鹿脖子能伸很高 脖子长的长颈鹿很优雅 长颈鹿喜欢吃树叶 脖子疼的长颈鹿很可怜 数频率 C(长颈鹿) = 5 C(脖子) = 6 C(长颈鹿, 脖子) = 2 C(脖子, 长) = 2 P(长颈鹿脖子长) = 2/5 × 2/6 = 2/15 没出现过的句子也能算概率
bigrams 示例:「长颈鹿脖子长」没在语料里出现过,但 n-grams 依然能算出概率——这是它比规则方法强的根本原因。
📐
n-grams 的统计学原理

n-grams 本质是「n 阶马尔可夫假设 + 离散变量极大似然估计」:把链式法则里的长条件概率 P(wᵢ|w₁:i-1) 用 P(wᵢ|wᵢ₋ₙ:i-1) 近似,再把条件概率用频率比 C(wi-n:i)/C(wi-n:i-1) 估计。简单,但有据可依。

§02 · 语言模型基础

RNN 语言模型

Recurrent Neural Networks —— 用环路把历史「卷」进当前状态。
一句话:RNN 靠一条「环路」把历史状态叠加到当前状态上,从而让预测「记得」上文——代价是不能并行、还容易梯度消失。
  • 螺旋式前进:前馈网络(FNN)只走单向、只看当前输入;RNN 在结构中加环路,把 h(t-1) 与当前输入一起编码成 h(t),历史信息被「循环累积」。
  • 长颈鹿例子:看到「脖子」预测下一个词,FNN 可能猜「短/疼」;RNN 因为记得「长颈鹿」,预测「长」的概率更高——历史信息提升预测。
  • 梯度消失/爆炸:RNN 损失对参数求梯度时涉及大量矩阵级联相乘;W_H 最大特征值 < 1 梯度消失、> 1 梯度爆炸,训练困难。
  • 门控救星:GRU / LSTM 引入门控结构(遗忘门、输入门、输出门),成为主流 RNN 架构。
  • 自回归生成:训练后把输出的词拼回输入、继续预测下一个词,循环迭代就生成了一段文本。
  • Teacher Forcing:训练时每轮用「标准答案」拼接而非模型自己的输出,加速收敛;代价是「曝光偏差」(训练与推理不一致),可用 Scheduled Sampling 缓解。
前馈 FNN:只看当前 x(t) o(t) 每个输入独立处理 循环 RNN:带着记忆走 x(t) o(t) 环路把历史状态循环叠加
FNN vs RNN:RNN 的「螺旋式前进」靠环路把历史状态 h(t-1) 揉进当前状态,代价是串行计算和梯度问题。
⚠️
RNN 的两道坎,催生了 Transformer

① 串行计算:下一个词依赖上一次预测,难以并行加速;② 长序列梯度消失:矩阵级联相乘让梯度指数衰减。这两道坎正是 Transformer 用「并行注意力」解决的——也是本书下一节的主角。

§03 · 语言模型基础

Transformer 语言模型

Transformer-based Language Models —— 把历史「通盘考虑」,还能并行起飞。
一句话:Transformer 用注意力把「一定长度的历史 + 当前状态」一次性加权相加来预测下一个词——不再串行、不再丢远距离信息,代价是计算量随序列长度平方增长。
  • 通盘考虑:给定一个序列,Transformer 把「一定数量的历史状态和当前状态」同时输入,按相关性加权相加后再预测未来状态——这是注意力机制的核心思想。
  • 两大模块:Transformer 是模块化网络,由注意力模块与全连接前馈模块组合构建;每个模块 = 核心层 + 残差连接 + 层正则化,可反复堆叠。
  • 注意力层:输入被编码成 query / key / value 三部分,权重 α = softmax(sim(qₜ, kᵢ)),输出 Attention(xₜ) = Σ αₜ,ᵢ·vᵢ——用加权平均把前文信息叠加到当前状态上。
  • 全连接前馈层:占据 Transformer 近 2/3 的参数,是「Key-Value 式」的记忆存储模块:FFN(v) = max(0, W₁v+b₁)W₂+b₂,两层之间用 ReLU 激活,第一层像 key、第二层像 value。
  • 层正则化 + 残差:LN 加速训练、提升泛化:LN(vᵢ) = α(vᵢ−µ)/δ + β;残差连接把层的输入由一条旁路叠加到层的输出上,有效缓解梯度消失。
  • Post-LN vs Pre-LN:层正则化放在残差连接之后叫 Post-LN(抗表征坍塌强、抗梯度消失弱),放在之前叫 Pre-LN(反之);现代大模型普遍倾向 Pre-LN。
  • Encoder-Decoder 与三大家族:原始 Transformer 的 Encoder 由 6 个级联层(每层 1 个注意力模块 + 1 个 FFN 模块)构成,Decoder 由 6 个级联层(每层 2 个注意力模块 + 1 个 FFN 模块)构成;Encoder / Decoder 可单独使用,对应 Encoder-Only(BERT 掩词补全)、Encoder-Decoder(T5 截断补全 / 顺序恢复)、Decoder-Only(GPT-3 下一词预测)三类模型。
注意力模块 自注意力层 + 残差连接 + 层正则化 输入 x₁..xₜ 自注意力层 ⊕ 层正则化 LN 输出 oₜ 残差 q/k/v 三路编码 · α = softmax(sim(qₜ,kᵢ)) 全连接前馈模块 FFN 层 + 残差连接 + 层正则化 输入 v 全连接前馈层 FFN ⊕ 层正则化 LN 输出 残差 FFN(v) = max(0, W₁v+b₁)W₂+b₂ · ReLU 激活 注意力 = 加权平均叠加前文, 「通盘考虑」历史与当前 FFN 占近 2/3 参数,Key-Value 式记忆, 第一层像 key、第二层像 value
两个模块:注意力模块 = 自注意力层 + 残差 + 层正则化;全连接前馈模块 = FFN 层 + 残差 + 层正则化。结构几乎一样,只是「核心层」不同——一个管上下文,一个管记忆。
输入 Encoder Layer ×6 注意力模块 全连接前馈模块 ⋮ 共 6 层级联 输出 → key / value 输出(自回归输入) Decoder Layer ×6 自注意力模块 交叉注意力模块 全连接前馈模块 ⋮ 共 6 层级联 线性层 Softmax 输出词概率 k / v(编码器末层) q(解码器自注意力输出) 自注意力:q/k/v 输入相同(同源);交叉注意力:q/k/v 输入不同 Encoder / Decoder 可单独构成 Encoder-Only 与 Decoder-Only 语言模型
Encoder-Decoder:编码器 6 层输出作为 key / value,解码器交叉注意力用自注意力输出做 query——编码器与解码器各自都能单独撑起一个语言模型。
RNN:串行循环
  • 逐词串行输入,历史经环路累积
  • 长序列易梯度消失 / 爆炸
  • 难以并行加速,训练慢
Transformer:并行通盘
  • 历史 + 当前同时输入,加权相加
  • 容易并行计算,训练快
  • 计算量随序列长度平方增长,长序列是挑战
🎯
本节核心记忆点

Transformer = 注意力模块 + FFN 模块的重复堆叠,每个模块都是「核心层 + 残差连接 + 层正则化」。注意力用 q/k/v 加权「通盘考虑」前文,FFN 占近 2/3 参数负责「记忆」。Encoder / Decoder 都能单独撑起一个语言模型。

⚠️
并行性的代价

并行输入带来速度,也带来随序列长度平方增长的注意力计算量——序列越长,矩阵越大。处理超长序列是 Transformer 的经典挑战,也是后文「非 Transformer 架构」登场的原因。

§04 · 语言模型基础

采样方法

Sampling Methods —— 从「最可能的词」到「最像人的词」。
一句话:把概率向量解码成文本有两条路线——概率最大化求「最可能」,随机采样求「多样」;贪心、波束、Top-K、Top-P 与 Temperature 各管一段。
  • 解码即采样:自回归生成时每轮输出一个概率向量,把向量解码为词的方法显著影响生成质量;整段文本的概率是各轮概率的连乘 P = Π oᵢ[wᵢ₊₁]。
  • 贪心搜索:每轮选概率最大的词 wᵢ₊₁ = argmax oᵢ[w],只顾「眼前利益」忽略「远期效益」,容易陷入局部最优——长颈鹿故事里第一词选「是」(0.3),最终「是草食」只有 0.03。
  • 波束搜索:每轮保留 b 条概率最高的路径(如 b=2),收束时挑联合概率最大的组合;同例可得「脖子长」0.1。但概率最大的文本往往平庸重复——「废话文学」。
  • Top-K 采样:每轮固定取 K 个概率最高的词,softmax 归一化后随机采样:Top-3 可能选中「看着躲在」这种戏剧性开头;但固定 K 在分布方差大时易「胡言乱语」(如「长颈鹿有四条裤子」),方差小时又「枯燥无味」。
  • Top-P(Nucleus)采样:按累计概率阈值 p 划定候选集 S_p(Σ oᵢ[w] ≥ p)再归一化采样;p=0.9 既能避开低概率的「裤子」,又能容纳「打架 / 睡觉」等冷门但合理的词。
  • Temperature 机制:在 softmax 里把 logits 除以 T:p ∝ exp(o[w]/T);T > 1 分布变平坦、随机性增强(开放创作),0 < T < 1 强者越强、更保守(代码生成)。
  • 按场景选策略:封闭式任务(翻译、摘要)用贪心 / 波束求稳;开放式创作用 Top-P + Temperature 求新。
生成一个以长颈鹿开头的故事:长颈鹿 是 0.3 脖子 0.2 看着 0.15 草食 0.1 反刍 0.09 长 0.5 优雅 0.2 躲在 0.3 贪心路径 波束 b=2 Top-3 路径 是草食 0.03 脖子长 0.1 看着躲在 0.045 路径概率 = 各步概率连乘:0.3 × 0.1 = 0.03 b=2 波束的 4 个候选组合 是草食 0.03 · 是反刍 0.027 · 脖子长 0.1 · 脖子优雅 0.04 取联合概率最大 → 「脖子长」 贪心只顾眼前,波束看全局,采样找惊喜 —— Top-K / Top-P 把「随机」加进了解码 ① 贪心搜索 Greedy 每轮只取概率最高的词,一步一贪 「是草食」仅 0.03 —— 陷入局部最优 ② 波束搜索 Beam(b=2) 每轮保留 2 条最优路径,收束时挑联合概率最大 「脖子长」0.1 —— 更接近全局最优 ③ Top-K 采样(K=3) 固定 K 个候选,softmax 归一化后随机采样 可能选中「看着躲在」—— 戏剧性开头 ④ Top-P 采样(Nucleus,p=0.9) 按累计概率 ≥ p 动态选候选集,再归一化采样 避开「裤子」低概率词,容纳「打架 / 睡觉」
四种策略一图对比:同一棵概率树上,贪心走最陡的坡(是草食 0.03)、波束放眼全局(脖子长 0.1)、Top-K / Top-P 引入随机性去碰「看着躲在」这样的惊喜。
Temperature 机制 p(w) = exp(o[w] / T) / Σ exp(o[j] / T) T 是对 softmax 自变量做的尺度变换 · T > 1:概率差距缩小,分布变平坦 · 随机性增强 → 开放创作更妙 · 0 < T < 1:强者越强,弱者越弱 · 随机性减弱 → 代码生成更稳 · T = 1:原始分布,不做调节 同一组 logits 在不同 T 下的分布 T = 0.7 更确定 · 尖 T = 1.0 原始分布 T = 2.0 更随机 · 平
Temperature 旋钮:把 logits 除以 T 后再做 softmax——T 越小分布越「尖」(确定性高、保守),T 越大分布越「平」(随机性强、有创意)。
🎯
本节核心记忆点

概率最大化(贪心 / 波束)求「最可能」→ 文本偏平庸;随机采样(Top-K / Top-P)求「多样」→ 文本更新颖;Temperature 是调节随机性强弱的旋钮。封闭式任务求稳,开放式创作求新。

💡
参数速记

Top-K 按「个数」截断候选、Top-P 按「概率和」截断候选;贪心就是 b=1 的波束搜索;Temperature = 1 时即原始分布。这些方法还能组合使用(如 Top-P + Temperature)。

§05 · 语言模型基础

评测方法

Evaluating Language Models —— 想知道模型行不行?先问它「困惑不困惑」。
一句话:评测分两路——内在评测看模型对测试文本的「困惑度」(PPL),外在评测让它做翻译 / 摘要等具体任务,再用统计指标、嵌入相似度或「GPT-4 裁判」打分。
  • 内在 vs 外在:内在评测不依赖具体任务,直接用模型输出评测生成能力;外在评测通过机器翻译、摘要生成等具体任务来评判——前者看「会不会说话」,后者看「会不会干活」。
  • PPL 困惑度:最常用的内在指标,度量模型对测试文本的「困惑」程度:PPL = exp(−1/N · Σ log P(wᵢ|w<i));模型越「肯定」(概率越高)PPL 越小,越不确定 PPL 越大。
  • PPL 与熵:PPL 中的交叉熵是词分布信息熵的上界——困惑度减小意味着熵减,「胡言乱语」的可能性降低;测试文本须与预训练文本同分布,PPL 才有意义。
  • BLEU:精度导向的统计指标(机器翻译):多层次 n-gram 精度的几何平均;例「big language models」vs「large language models」,n=1 精度 2/3、n=2 精度 1/2,可用加权与长度惩罚微调。
  • ROUGE:召回导向的统计指标(摘要生成):ROUGE-N(n-gram 召回)、ROUGE-L(最长公共子序列 LCS)、ROUGE-W(加权)、ROUGE-S(Skip-bigram)。
  • BERTScore:用 BERT 的上下文词嵌入计算生成文本与参考文本的相似度,从 Precision / Recall / F1 三面评分——比统计指标更接近人类评测,但依然依赖人类标注的参考文本。
  • G-EVAL:生成式评测的典型:用 GPT-4 当「裁判」,Prompt 由「任务描述与评分标准 + 评测步骤(Auto CoT 思维链)+ 输入文本与生成的文本」三部分组成,无需参考文本;对可能得分加权平均以提升区分度,InstructScore 还能给出分数解释。
语言模型评测 内在评测 Intrinsic 不依赖任务 · 直接评生成能力 PPL(s) = exp(−1/N · Σ log P(wᵢ|w<i)) 模型越「肯定」→ PPL 越小 · 越不确定 → PPL 越大 · PPL 减小 = 熵减 → 少「胡言乱语」 · 测试文本须与预训练同分布 · 最常用:困惑度 Perplexity · 交叉熵是信息熵的上界 外在评测 Extrinsic 依赖具体任务(翻译 / 摘要 / …) ① 统计指标(词面重合) BLEU 精度·机器翻译 | ROUGE 召回·摘要 n-gram 精度几何平均 | ROUGE-N/L/W/S ② 上下文嵌入(语义相似) BERTScore:BERT 词嵌入算相似度 Precision / Recall / F1 · 接近人类,需参考文本 ③ 生成式(LLM 当裁判) G-EVAL:GPT-4 打分,无需参考文本 Auto CoT 思维链 · 可解释
评测谱系:内在评测一指标(PPL),外在评测三梯队——统计(BLEU / ROUGE)、上下文嵌入(BERTScore)、生成式(G-EVAL),越靠后越接近人类判断。
G-EVAL:让 GPT-4 当「裁判」 Prompt 三部分 ① 任务描述与评分标准 ② 评测步骤(Auto CoT 思维链) ③ 输入文本与生成的文本 GPT-4 生成 Auto CoT 与评分 评价结果 对可能得分加权平均 提升区分度 三部分组合成一个 Prompt 交给 GPT-4 → 输出评分;对比 BERTScore,G-EVAL 无需人工参考答案
G-EVAL 流程:Prompt 三部分(任务 + 评分标准、评测步骤 Auto CoT、待评文本)喂给 GPT-4 打分,并对可能得分加权平均——没有参考文本也能评。
🎯
本节核心记忆点

内在评测看「困惑度」:PPL 越小越好;外在评测分三梯队——统计(BLEU / ROUGE 看词面重合)→ 嵌入(BERTScore 看语义相似,需参考)→ 生成式(G-EVAL 用 GPT-4 当裁判,无需参考)。越往后越接近人类判断,成本也越高。

💡
选指标经验

翻译任务先看 BLEU,摘要任务看 ROUGE;句子改写 / 语义相似看 BERTScore;没有参考答案、还想要解释时,用 G-EVAL / InstructScore。

§06 · 大语言模型架构

大数据 + 大模型 → 新智能

Big Data + Big Models → New Intelligence —— 数据管饱、规模管够,智能就自己冒出来了。
一句话:模型越大、数据越多,模型不仅「越练越强」,还会在某个规模阈值上「凭空」冒出上下文学习、代码生成这类新能力——这就是大语言模型的「新智能」。
  • 三个「大」一起涨:大语言模型的「大」= 模型规模 N + 数据规模 D 一起涨;截止 2024 年 6 月,国内外已诞生超过百种大语言模型,能力增强靠两者的共同作用。
  • Kaplan-McCandlish 扩展法则(OpenAI 2020):在 768~15 亿参数、2200 万~230 亿 Token 的实验范围内拟合出幂律:L(N) = (N/Nc)^αN(αN≈-0.076)、L(D) = (D/Dc)^αD(αD≈-0.095),损失随规模幂律下降;在 C ≈ 6ND 的预算约束下,最优分配为 N ∝ C^0.73, D ∝ C^0.27——预算 ×10 时模型应扩约 5.37 倍、数据约 1.86 倍。
  • Chinchilla 扩展法则(DeepMind 2022):在 7000 万~1600 亿参数、50 亿~5000 亿 Token 的更大范围拟合 L(N,D) = E + A/N^α + B/D^β(E=1.69,A=406.4,B=410.7,α=0.34,β=0.28),最优分配变为 N ∝ C^0.46, D ∝ C^0.54——预算 ×10 时模型与数据都扩约 3.16 倍,数据和模型几乎同等重要。
  • 20 倍数据法则:理想数据集大小 ≈ 模型参数的 20 倍(7B 模型配 140B Token)。反例:GPT-3 有 1750 亿参数却只用 3000 亿 Token,MT-NLG 有 5300 亿参数只用 2700 亿 Token;而 Chinchilla 用 700 亿参数 + 1.4 万亿 Token 反超了更大的模型。
  • 涌现能力(Emergent Abilities):不是靠特定任务训练出来的,而是模型复杂度跨过阈值后「相变式」突然显现——20 亿参数只会语言理解/情感分析,130 亿参数冒出上下文学习/代码生成/常识推理/问答,1750 亿参数解锁复杂逻辑推理/多模态理解/多轮对话/垂域问答。
  • 四种典型涌现能力:① 上下文学习(靠提示/示例即可干活,无需微调);② 常识推理;③ 代码生成;④ 逻辑推理——GPT-1/GPT-2 全都不行,130 亿的 GPT-3 初显身手,1750 亿才全面解锁。
  • 代价与挑战:涌现能力带来可解释性、信息安全与隐私、伦理公平等问题,也对计算资源提出巨大需求,需要技术、法律、社会层面综合应对。
① 萌芽期 · 2017-2018 基础模型破土 · 预训练新纪元 Transformer(2017) BERT(2018) GPT-1(2018) 关键词:架构奠基、规模很小 ② 发展期 · 2019-2022 参数与能力大幅提升 RoBERTa · ALBERT GPT-2 · T5 · BART GPT-3 · ELECTRA InstructGPT · FLAN 关键词:规模竞赛、探索潜力 ③ 突破期 · 2022-2024 AIGC 浪潮之巅 ChatGPT(2022.11) GPT-4 · Gemini LLaMA · Claude 3 Baichuan 2 · 文心一言 关键词:能力涌现、商用爆发 2017-2018 萌芽 → 2019-2022 发展 → 2022 起突破:每一次「变大变多」,都换来一次能力跃迁(参考教材图 2.1)。
能力涌现三阶段:Transformer/BERT/GPT-1 破土萌芽,GPT-2/T5/GPT-3 蓄力发展,ChatGPT/GPT-4 一鸣惊人——规模与数据把模型一步步推向「新智能」。
对比项Kaplan-McCandlish(OpenAI · 2020)Chinchilla(DeepMind · 2022)
实验范围模型 768~15 亿参数;数据 2200 万~230 亿 Token模型 7000 万~1600 亿参数;数据 50 亿~5000 亿 Token
损失公式L(N)=(N/Nc)^αN,αN≈-0.076;L(D)=(D/Dc)^αD,αD≈-0.095L(N,D)=E+A/N^α+B/D^β(E=1.69,A=406.4,B=410.7,α=0.34,β=0.28)
计算预算最优分配N ∝ C^0.73,D ∝ C^0.27(模型增长应略快于数据)N ∝ C^0.46,D ∝ C^0.54(数据与模型几乎同等重要)
预算 ×10 时模型 ×5.37、数据 ×1.86模型与数据均 ×3.16
核心结论扩大模型规模与丰富数据集是两大关键策略理想数据 ≈ 20 × 参数(7B 模型配 140B Token),开创「小模型 + 大数据」路线
20 亿参数 语言理解 情感分析 基础能力,中规中矩 130 亿参数 上下文学习 ★ 代码生成 ★ 常识推理 ★ 问答任务 ★ 涌现能力开始出现 1750 亿参数 复杂逻辑推理 ★★ 多模态理解 ★★ 多轮对话 ★★ 垂域问答 ★★ 复杂任务全面解锁 GPT-4 亦在此列 能力随模型规模「突变式」涌现(参考教材图 2.2)
能力阶梯:20 亿参数只会基础理解,130 亿参数「冒出」上下文学习等新能力,1750 亿参数连逻辑推理、多模态都能拿下——能力是跨过阈值突然出现的。
🎯
本节核心记忆点

两条扩展法则一对账就记住了:Kaplan 说「模型涨快点」(C^0.73 / C^0.27),Chinchilla 说「数据一样重要」(C^0.46 / C^0.54)并给出 20 倍数据法则。从此大模型告别「只卷参数」,走向「小模型 + 大数据」——LLaMA 正是这条路的信徒(§11 见)。

§07 · 大语言模型架构

三大架构概览

Three Main Architectures —— 同一个 Transformer 爹,三种性格的孩子。
一句话:Transformer 长出三兄弟——Encoder-only 最懂「读」、Encoder-Decoder 能读又能写、Decoder-only 专注「写」;如今靠生成能力和计算效率,Decoder-only 笑到了最后。
  • 同源三兄弟:三种架构都源自 Transformer 的自注意力机制,区别只在「留哪几块」:Encoder-only 只留编码器,Encoder-Decoder 编码器+解码器,Decoder-only 只留解码器。
  • Encoder-only:三部分 = 输入编码(分词→词嵌入→位置编码)+ 特征编码(M 个编码模块:自注意力 + 全连接前馈)+ 任务处理(输出头按任务定制);双向注意力「通盘考虑」,预训练时输出头做掩码预测。
  • Encoder-Decoder:在 Encoder-only 基础上加解码器;解码器含掩码自注意力(防「偷看未来」)+ 交叉注意力(读取编码器输出)+ 前馈模块;训练用 Teacher Forcing 与 [START] 标记,推理时自回归逐 Token 采样。
  • Decoder-only:删掉编码器和交叉注意力,只留掩码自注意力做自回归生成;参数量更小、计算更省、参数易扩展,非常契合大规模文本生成场景。
  • 注意力矩阵定性格:Encoder-only 是「完全」的双向方块(每个 Token 看全序列 x1~xn);Decoder-only 是「下三角」(生成 yᵢ 只能看 y1~yᵢ₋₁);Encoder-Decoder 是编码器双向方块 + 解码器下三角 + 交叉注意力(解码器随时查编码器)。
  • 适用任务各有所长:Encoder-only 适合 NLU(情感分析、文本分类等判别任务);Encoder-Decoder 适合有条件生成(机器翻译、文本摘要、问答系统);Decoder-only 擅长无条件生成(故事、新闻文章)。
  • 历史演变:2018 年 BERT 的理解能力盖过 GPT-1 → 2019 年末 T5/BART 等 Encoder-Decoder 因 Seq2Seq 生成需求成为主流 → 2021 年后 GPT-3 推动 Decoder-only 占据主导,展现「大一统」潜力。
Encoder-only · 双向 「完全」注意力 · 通盘考虑 每个 Token 都能参考全部 x1~xn Decoder-only · 下三角 掩码自注意力 · 单向 生成 yᵢ 只能看已生成的上文 y1~yᵢ₋₁ Encoder-Decoder · 交叉 编码器通盘 + 解码器掩码 + 交叉 编码器 x 解码器 y 解码器每步都能查编码器的完整上下文 看注意力矩阵认架构:方块 = 双向、三角 = 单向、方块 + 三角 + 交叉 = 编解码(参考教材图 2.6)
三种架构的注意力矩阵:Encoder-only 全方块、Decoder-only 下三角、Encoder-Decoder 双份矩阵加交叉连线——注意力形态直接决定了模型适合「理解」还是「生成」。
2018 · Encoder-only 当红 BERT 与 GPT-1 几乎同时诞生 BERT 的双向理解能力更亮眼 → Encoder-only 被广泛探索 Decoder-only 则相对受冷落 2019 末 · Encoder-Decoder 主流 T5、BART 等模型陆续登场 机器翻译等生成需求增长 Encoder-only 无法直接生成 序列到序列成为主流方案 2021 后 · Decoder-only 大一统 GPT-3 推动下占据主导 参数易扩展、计算效率高 生成能力与任务泛化双强 展现「大一统」架构潜力 Encoder-only Encoder-Decoder Decoder-only
架构流行史:从 BERT 的理解优势 → T5/BART 的 Seq2Seq 主流 → GPT-3 的 Decoder-only 大一统,更迭的驱动力始终是「生成能力 + 计算效率」。
🎯
本节核心记忆点

看注意力矩阵认架构:方块=双向理解、三角=单向生成、方块+三角+交叉=编解码。Encoder-only 留给判别任务,Encoder-Decoder 干翻译摘要,Decoder-only 靠参数易扩展和生成能力成为主流——后面的 §08~§11 逐个细讲。

§08 · 大语言模型架构

Encoder-only:BERT 与衍生

Bidirectional Encoder Representations from Transformers —— 双向读题、理解满分,就是不会写作文。
一句话:BERT 用「双向编码 + 完型填空(MLM)+ 句子配对(NSP)」把语言理解做到极致,RoBERTa / ALBERT / ELECTRA 则在数据、参数、任务上各出奇招。
  • 双向编码模型:同时融合左→右与右→左的注意力,为每个词生成依赖上下文的动态嵌入(对比 Word2Vec/GloVe 的静态嵌入),能处理词的多义性,在句子级任务上显著胜出。
  • BERT 结构与数据(2018.10 · Google AI):Base = 12 编码模块 / 768 维 / 12 头 / 1.1 亿参数;Large = 24 模块 / 1024 维 / 16 头 / 3.4 亿参数;预训练语料 BookCorpus(约 8 亿 Token)+ 英语维基百科(约 25 亿 Token)≈ 33 亿 Token、约 15GB。
  • MLM 掩码语言建模:随机选约 15% 的 Token 遮成 [MASK] 或随机词,像完型填空一样根据上下文预测原词;只对被替换的 Token 计算交叉熵损失来更新参数。
  • NSP 下文预测:样本由两个句子组成(50% 来自原文连续、50% 随机拼接),模型判断两句话是否连续;序列开头加 [CLS] 聚合信息、句间加 [SEP] 划清界限。
  • 下游任务三件套:文本分类取 [CLS] 向量 + 全连接层;问答构造 [CLS]问题[SEP]文本[SEP] + 两个全连接层预测答案起止位置;语义相似度用 [CLS]文本1[SEP]文本2[SEP] + 线性层或余弦相似度。
  • RoBERTa(2019.07 · Meta):更大语料(新增 CC-News 76GB、OpenWebText 38GB、Stories 31GB ≈ 160GB)、更长训练;去掉 NSP;静态掩码→动态掩码(数据复制 10 份分别掩码,40 epoch 每份训 4 次);Base 1.2 亿 / Large 3.5 亿。
  • ALBERT(2019.09 · Google):参数因子分解(Embedding 从 V×H 拆成 V×E + E×H,E=128,Base 的嵌入参数约为 BERT 的 1/6)+ 跨层参数共享(只学第一层、其余层共享);任务改 MLM + SOP 句序预测;Base 仅 0.12 亿,XX-Large 也才 2.2 亿。
  • ELECTRA(2020.03 · Google Brain + 斯坦福):借鉴 GAN 的生成器-判别器架构:生成器做 MLM 恢复掩码,判别器用 RTD 替换词检测判断每个 Token 是否被换过;所有 Token 都参与学习,效率更高;Small 0.28 亿 / Base 2.2 亿 / Large 6.6 亿(Large 用 330 亿 Token 语料)。
原始文本 水豚性格温顺. 且没有攻击性. 因此能与大多数动物和谐相处. 它们的食物以草类和水生植物为主... 构造样本序列 句子 A:水豚性格温顺. 且无攻击性. 句子 B:且没有攻击性. 辅以水果蔬菜等. 50% 连续句子 / 50% 随机句子 分词并处理 [CLS] 水 豚 性 格 温 顺 . [SEP] 且 无 攻 击 性 . [SEP] [CLS] 聚合序列 · [SEP] 分隔句子 NSP 下文预测任务 输入:[CLS] 水 豚 性 格 温 顺 . [SEP]    且 无 攻 击 性 . [SEP] 这两个句子是连续的 / 不是连续的句子 训练句子间关系 → 服务问答、自然语言推理 (模型:分类头判断是否相邻) MLM 掩码语言建模任务 添加掩码:[CLS] 水 豚 性 格 [MASK] . [SEP]      且 无 [MASK] 击 性 . [SEP] 被遮挡的内容是:温顺、攻 完型填空式学习双向上下文表示 (只对约 15% 被替换 Token 算损失)
BERT 双预训练任务:原始文本 → 构造句子对 → 加上 [CLS]/[SEP] 后兵分两路——NSP 判断句子是否连续,MLM 预测被掩码的词(参考教材图 2.7)。
模型发布时间参数量(亿)语料规模预训练任务
BERT2018.101.1 / 3.4约 15GBMLM + NSP
RoBERTa2019.071.2 / 3.5160GBDynamic MLM(去 NSP)
ALBERT2019.090.12 / 0.18 / 0.6 / 2.2约 15GBMLM + SOP
ELECTRA2020.030.28 / 2.2 / 6.6约 20-200GBRTD(生成器-判别器)
原始文本 水豚性格十分温顺. 分词处理并添加掩码 添加掩码 [CLS] 水 豚 [MASK] 格 十 分 [MASK] 顺 . [SEP] 掩码约 15% Token 生成器 掩码预测(MLM) 恢复被遮挡的 Token 输出会「换词」 判别器 RTD 逐词检测 水豚体格十分温顺 T T F T T T T 判别器对生成器输出的 每一个 Token 判断「是否被替换过」——所有 Token 都参与学习,效率远高于只学 15% (参考教材图 2.9 · ELECTRA 的替换词检测 RTD)
ELECTRA 的 GAN 式预训练:生成器把掩码「填」回去,判别器逐个 Token 打真假标签(T/F)——学习信号覆盖全序列,训练效率更高。
🎯
本节核心记忆点

BERT 家族一句话识别:RoBERTa 靠更大语料 + 动态掩码(还去掉了 NSP)、ALBERT 靠参数分解 + 跨层共享把参数压到 1/6、ELECTRA 靠生成器-判别器让每个 Token 都学到东西。但整个家族的参数量止步 6.6 亿、专注判别任务——生成时代的接力棒交给了后面两节。

§09 · 大语言模型架构

Encoder-Decoder:T5 与 BART

Text-to-Text Transfer Transformer & Denoising Autoencoder —— 一边读懂输入,一边写出一段好话。
一句话:T5 把所有 NLP 任务统一成「文本进、文本出」用一个模型通吃;BART 则用五种方式把文本弄坏,再训练模型把它修好。
  • 架构分工:编码器(M 个编码模块:自注意力 + 前馈)把输入变成上下文表示;解码器(N 个解码模块:掩码自注意力 + 交叉注意力 + 前馈)生成输出;交叉注意力中 query 来自解码器、key/value 来自编码器,保证输出与输入高度相关。
  • 注意力两副面孔:编码器自注意力「通盘考虑」输入;解码器掩码自注意力只盯已生成的上文;训练用 Teacher Forcing(真实文本并行输入),推理自回归逐 Token 采样到 [end] 或最大长度。
  • T5 统一框架(2019.10 · Google):核心思想是 text-to-text——所有任务都写成「前缀指令 + 输入文本 → 输出文本」,用不同的输入前缀(如「翻译成中文:」「总结以下内容:」)指示任务,是早期 Prompt 技术的雏形。
  • T5 版本阶梯:Small 6000 万(6+6 模块 / 512 / 8 头)→ Base 2.2 亿(12+12 / 768 / 12)→ Large 7.7 亿(24+24 / 1024 / 16)→ 3B 28 亿 → 11B 110 亿。
  • T5 数据与任务:从 Common Crawl 清洗出 C4 数据集(约 750GB);预训练用 Span Corruption:选 15% 的 Token、每段连续 3 个 Token 整体掩成 [MASK],让模型预测整个片段。
  • BART(2019.10 · Meta):Bidirectional and Auto-Regressive Transformers;Base 1.4 亿(6+6 / 768 / 12),Large 4 亿(12+12 / 1024 / 16);语料与 RoBERTa 相同约 160GB。
  • BART 五种破坏任务:① Token 遮挡(类似 MLM);② Token 删除(删掉后要推位置和内容);③ 连续文本填空(span 长度服从 λ=3 的泊松分布);④ 句子打乱(重排后推前后句关系);⑤ 文档旋转(随机起点旋转后找合理开头)。
  • 衍生变体:mT5(支持 100+ 语言)、T0(多任务训练增强零样本)、Flan-T5(指令微调)、mBART(跨语言生成)——Encoder-Decoder 至今活跃在开源社区。
传统做法:一个任务一个定制模型(重复造轮子) 翻译任务 翻译成中文:水豚为什么… → 专用翻译模型 总结任务 总结以下内容:水豚与其他物种… → 专用总结模型 问答任务 问:水豚吃什么? → 专用问答模型 T5 统一框架:一模型通吃(text-to-text) 前缀:「翻译成中文:」+ 原文 → 输出:中文译文 前缀:「总结以下内容:」+ 原文 → 输出:摘要 前缀:「问:」+ 问题 → 输出:答案 同一个语言模型(T5) 前缀 = 任务指令(早期 Prompt 雏形)· 零样本即可用,也可微调 输入输出都是文本 → 翻译 / 摘要 / 问答共享一套架构与权重(参考教材图 2.11)
T5 统一框架:传统做法是一个任务一个模型,T5 用「前缀指令」把翻译、总结、问答统统收进同一个语言模型——文本进、文本出。
① Token 遮挡 水豚[MASK]格十[MASK]温顺. 且[MASK]攻击性. 类似 BERT 的 MLM ② Token 删除 豚性格十分顺. 且无攻击. (随机删除一部分) 要推断位置 + 内容 ③ 连续文本填空 水豚性格[MASK]顺. 且无攻击性. span 长度服从 λ=3 泊松分布 ④ 句子打乱 且无攻击性. 水豚性格十分温顺. 重排后推前后句关系 ⑤ 文档旋转 十分温顺. 且无攻击性. 水豚性格 随机起点旋转,找合理开头 原始文本 水豚性格十分温顺. 且无攻击性. 训练目标:把被破坏的文本恢复为原始文本(Denoising 降噪自编码,参考教材图 2.12)
BART 五种破坏任务:围绕同一句原文「水豚性格十分温顺. 且无攻击性.」分别做遮挡、删除、填空、打乱、旋转——模型学会在任何残缺下重建文本。
模型发布时间参数量(亿)语料规模
T52019.100.6 - 110750GB(C4)
mT52020.103 - 1309.7TB
T02021.1030 - 110约 400GB
BART2019.101.4 - 4约 160GB
mBART2020.060.4 - 6.1约 1TB
🎯
本节核心记忆点

T5 与 BART 的共同点:都是「把文本搞坏再复原」的降噪式预训练。区别一句话:T5 靠统一框架 + Span Corruption 追求任务通用(参数量上限抬到 110 亿),BART 靠五种破坏花样追求生成鲁棒。它们都适合翻译、摘要、问答这类「读 + 写」任务。

§10 · 大语言模型架构

Decoder-only:GPT 系列

Generative Pre-trained Transformer —— 从初出茅庐到一鸣惊人,只用了六年。
一句话:GPT 系列把「预测下一个词」坚持到底,从 1.17 亿参数一路滚到 1750 亿,再靠 RLHF 变成会听话的 ChatGPT——然后闭源了。
  • 架构与起点:Decoder-only 的概念最早可追溯到 2018 年的 GPT-1;当时被 BERT 盖过风头,直到 2020 年 GPT-3 的突破性成功才让这种架构被广泛采用。
  • GPT-1 · 初出茅庐(2018.06):12 解码块 / 768 维 / 12 头 / 1.17 亿参数;BookCorpus 约 8 亿 Token(约 5GB);预训练用下一词预测,自回归生成;下游需微调(文本分类、文本相似度、多项选择),生成能力还不足以实战。
  • GPT-2 · 小有所成(2019.02):四个版本 Small 1.24 亿 → XL 15 亿;新数据 WebText 40GB 高质量网页文本;部分任务可直接零样本完成,泛化能力改善。
  • GPT-3 · 崭露头角(2020.05):八个版本,最大 1750 亿参数(96 解码块 / 12288 维 / 96 头);语料近 1TB(Common Crawl / WebText / BookCorpus / Wikipedia);涌现上下文学习(ICL)——不微调,靠任务描述 + 少量示例就能干活。
  • InstructGPT 与 RLHF 三步:① 有监督微调 SFT:收集「问题-人类回答」对微调模型;② 训练奖励模型:同一输入生成多个候选输出,人工排序(如 输出2 > 输出4 > 输出1 = 输出3)构成偏好数据,训练打分模型;③ 强化学习微调:模型生成后由奖励模型评分,RL 算法据此更新参数。RLHF 成本高昂(奖励模型训练复杂 + 多模型联合训练)。
  • DPO 直接偏好优化(2023 · 斯坦福):直接用偏好数据微调:提高选最优响应的概率、压低选次优的概率;省略奖励模型和复杂 RL,计算更高效、训练更稳定。
  • 一鸣惊人到闭源:ChatGPT(2022.11)以对话能力引爆 AIGC,开启 LLMaaS 服务模式;GPT-4(2023.03)支持图文多模态;GPT-4o(2024.05)响应更快、多模态与多语言更强。自 ChatGPT 起参数与数据不再公开,只能「用」不能「共创」。
  • 衍生各怀绝技:Codex 用十亿行代码继续预训练专攻代码生成;InstructGPT 用 RLHF 对齐用户意图——它们共同把 GPT-3 推向实用化。
GPT-1 2018.06 1.17 亿 约 5GB 初出茅庐 需微调才能用 GPT-2 2019.02 15 亿 40GB WebText 小有所成 部分任务零样本 GPT-3 2020.05 1750 亿 约 1TB 崭露头角 涌现上下文学习 ChatGPT 2022.11 未知 闭源 · RLHF 一鸣惊人 LLMaaS 服务模式 GPT-4 2023.03 未知 闭源 · 多模态 图文双模态 高级认知任务更强 GPT-4o 2024.05 未知 闭源 · 低延迟 响应速度大幅提升 多模态多语言增强 参数与语料激增(表 2.3);2022 年起 GPT 系列闭源,参数与数据不再公开 (数据来源:教材表 2.3 GPT 系列模型参数和语料大小表)
GPT 演进时间线:1.17 亿 → 15 亿 → 1750 亿一路狂奔,ChatGPT 之后参数与语料全部成谜——但扩展法则告诉我们,它只会更大。
① 有监督微调 SFT 收集大量「问题-人类回答」对 问题1 / 问题2 / …… 对 GPT-3 做有监督微调 训练基础语言模型 微调后模型(SFT 模型) 学会模仿人类回答 ② 训练奖励模型 同一输入生成多组回答 输出1 / 输出2 / 输出3 / 输出4 人工标注偏好顺序 输出2 > 输出4 > 输出1 = 输出3 奖励模型 给输出是否符合偏好打分 ③ 强化学习微调 模型生成回答 (自回归采样) 奖励模型评分 得分:0.85 强化学习更新模型 提升高质量输出概率 → → RLHF 成本高昂:奖励模型训练复杂 + 多模型联合训练;DPO 直接用偏好数据微调,省掉②③两步(参考教材图 2.15)
RLHF 三步走:SFT 学模仿 → 奖励模型学打分 → 强化学习学讨好人类;InstructGPT 靠它从「会说话」进化成「会听话」。
模型发布时间参数量(亿)语料规模
GPT-12018.061.17约 5GB
GPT-22019.021.24 / 3.55 / 7.74 / 1540GB(WebText)
GPT-32020.051.25 / 3.5 / 7.62 / 13 / 27 / 67 / 130 / 1750约 1TB
ChatGPT2022.11未知(闭源)未知(闭源)
GPT-42023.03未知(闭源)未知(闭源)
GPT-4o2024.05未知(闭源)未知(闭源)
模型版本解码块数量隐藏层维度自注意力头数量总参数量(亿)
GPT-112768121.17
GPT-2 Small12768121.24
GPT-2 Medium241024163.55
GPT-2 Large361280207.74
GPT-2 XL4816003615
GPT-3 Small12768121.25
GPT-3 Medium241024163.5
GPT-3 Large241536167.62
GPT-3 XL2420482413
GPT-3 2.7B3225603227
GPT-3 6.7B3240963267
GPT-3 13B40512040130
GPT-3 175B9612288961750
🎯
本节核心记忆点

GPT 的成功公式 = 下一词预测 + 规模狂飙(1.17 亿 → 1750 亿)+ 语料翻倍(5GB → 1TB)+ 人类反馈对齐(RLHF / DPO)。从 GPT-3 起「涌现」上下文学习,从 ChatGPT 起走向闭源——它把可复制的路线图留给了开源世界,接棒者正是 LLaMA(§11)。

§11 · 大语言模型架构

Decoder-only:LLaMA 系列

Large Language Model Meta AI —— 不卷参数卷数据,开源共创满天星。
一句话:LLaMA 信奉 Chinchilla 的「小模型 + 大数据」,用 5TB → 7TB → 50TB 的数据把开源 Decoder-only 模型喂成了闭源 GPT 的对手。
  • 差异化打法:GPT 系列的升级聚焦「模型规模与语料同步提升」,LLaMA 则参数规模相对稳定、专注堆预训练数据;权重在非商业许可下向学术界开放,推动「共创」与知识共享。
  • LLaMA1(2023.02 · Meta):践行 Chinchilla「小模型 + 大数据」;语料约 5TB(Common Crawl、C4、GitHub、Wikipedia、Gutenberg、Books3、Arxiv、StackExchange 等);共 4 个版本 7B / 13B / 32B / 65B。
  • 架构改进三件套:① RoPE 旋转位置编码替代绝对位置编码(参考 GPTNeo),并在自注意力前对 Q/K 添加;② SwiGLU 激活替代 ReLU(参考 PaLM);③ Pre-Norm 层正则化(借鉴 GPT-3),正则化作用于注意力与前馈的输入。
  • LLaMA2(2023.07):语料扩至约 7TB;预训练后引入 RLHF(指令微调 → 奖励模型 → PPO + 拒绝采样);34B 与 70B 版本额外加入 GQA 分组查询注意力(一组 query 共享相同的 K/V,降低内存、减少参数)。
  • LLaMA3(2024.04):语料高达 50TB(LLaMA2 的 7 倍),含丰富代码数据、超过 5% 非英文数据、覆盖 30 多种语言;tokenizer 字典长度扩大三倍、推理效率大增;8B 版本超越 LLaMA2-70B,70B 版本多项任务超越 GPT-4——数据的力量。
  • 性能改进类衍生:Alpaca(用 GPT-3.5 生成的指令样例微调 LLaMA1,小模型媲美 GPT-3.5);Vicuna(用 ShareGPT 日常对话数据微调,对话能力更强);Guanaco(引入 QLoRA 微调,时间成本大降)。
  • 垂域与多模态衍生:垂域类——CodeLLaMA(代码生成/检测/优化)、LawGPT(30 万条法律问答指令微调)、GOAT(Python 生成数学题库)、Cornucopia(金融问答);多模态类——LLaVA(Vicuna + CLIP 图像特征 + 线性投影对齐)、MiniGPT4(Vicuna + VIT-G/14 + Q-Former + 线性投影)。
标准 Transformer 解码块 输入 多头自注意力模块(Softmax) 层正则化(后置) 全连接前馈模块(ReLU) 层正则化(后置) 输出 LLaMA 解码块 输入 RMS 层正则化(前置) 注意力模块 + 旋转位置编码 RoPE RMS 层正则化(前置) 全连接前馈模块(SwiGLU) 输出 三处关键改进:RoPE 旋转位置编码 · SwiGLU 激活 · RMSNorm + Pre-Norm(参考教材图 2.16)
LLaMA 解码块 vs 标准 Transformer:位置编码换成 RoPE、ReLU 换成 SwiGLU、正则化换成 RMSNorm 且前置(Pre-Norm)——三处小改,成了开源大模型的标配。
模型发布时间参数量(亿)语料规模
LLaMA-12023.0267 / 130 / 325 / 652约 5TB
LLaMA-22023.0770 / 130 / 340 / 700约 7TB
LLaMA-32024.0480 / 700约 50TB
模型版本解码块数量隐藏层维度自注意力头数量总参数量(亿)
LLaMA1-7B3240963267
LLaMA1-13B40512040130
LLaMA1-32B60665652325
LLaMA1-65B80819264652
LLaMA2-7B3240963270
LLaMA2-13B40512040130
LLaMA2-34B60665652340
LLaMA2-70B80819264700
LLaMA 家族 LLaMA1 / 2 / 3 开源权重 非商业许可开放 众智众创的土壤 性能改进类 Alpaca · 指令微调 GPT-3.5 生成样例数据 Vicuna · 对话微调 ShareGPT 日常对话数据 Guanaco · QLoRA 微调时间成本大降 垂域任务类 CodeLLaMA · 代码 公开代码数据微调 LawGPT · 法律 30 万条法律问答 GOAT · 数学 / Cornucopia · 金融 Python 生成题库 / 金融问答 多模态类 LLaVA Vicuna + CLIP 线性投影对齐图文 MiniGPT4 VIT-G/14 + Q-Former + 线性投影对齐 开源让全世界一起微调:性能、垂域、多模态三路开花(参考教材 2.5.3 衍生模型小节)
LLaMA 衍生生态:性能类(Alpaca/Vicuna/Guanaco)、垂域类(CodeLLaMA/LawGPT/GOAT/Cornucopia)、多模态类(LLaVA/MiniGPT4)——一个开源底座,长出一片森林。
代际GPT 系列(参数量 / 语料)LLaMA 系列(参数量 / 语料)
第一代GPT-1:1.17 亿 / 约 5GBLLaMA-1:652 亿 / 约 5TB
第二代GPT-2:15 亿 / 40GBLLaMA-2:700 亿 / 约 7TB
第三代GPT-3:1750 亿 / 约 1TBLLaMA-3:700 亿 / 约 50TB
第四代起ChatGPT / GPT-4:未知(闭源)——
🎯
本节核心记忆点

LLaMA 的差异化打法一句话:GPT 卷参数(1750 亿),LLaMA 卷数据(5TB → 50TB);架构上 RoPE + SwiGLU + Pre-Norm 三件套成了开源主流标配;再叠加 RLHF(LLaMA2)、GQA 与超大词表(LLaMA3),最终 8B 干翻 70B、700 亿参数叫板 GPT-4——数据的力量,就是这么不讲道理。

§12 · 大语言模型架构

非 Transformer 架构

Beyond Transformer —— Transformer 不是终点,线性时间的后浪们正在赶来。
一句话:Transformer 的长序列计算量随长度平方增长,SSM(含 RWKV、Mamba)和 TTT 用「线性时间」换来了百万级长上下文——架构的百花齐放还在继续。
  • Transformer 的软肋:并行输入的机制让计算量随序列长度平方级增长,长序列是瓶颈;传统 RNN 线性但难并行、有梯度消失/爆炸;SSM 与 TTT 正是两条补救路线。
  • SSM 的数学骨架:源自控制理论的动力系统;三个随时间变化的变量 x(t)∈Cⁿ(n 个状态)、u(t)∈Cᵐ(m 个输入)、y(t)∈Cᵖ(p 个输出),四个可学习矩阵 A(状态)、B(控制)、C(输出)、D(命令,可视为残差忽略);连续形式为 x′(t) = Ax(t) + Bu(t)、y(t) = Cx(t) + Du(t)。
  • 离散化出三形式:用梯形法把积分离散化得到递归形式 xₖ = Āxₖ₋₁ + B̄uₖ, yₖ = C̄xₖ;把递归迭代展开又得到卷积形式 yₖ = K̄ₖ ∗ uₖ,卷积核 K̄ₖ = (C̄B̄, C̄ĀB̄, …, C̄ĀᵏB̄)。
  • 递归 vs 卷积:递归形式像 RNN——推理线性复杂度、高效,但无法并行训练、长序列有梯度问题;卷积形式可并行训练,但受时不变性限制(参数全程固定)、上下文长度固定,自回归时延迟大;实战选择:训练用卷积、推理用递归。
  • RWKV(v4):核心 WKV 机制可看作两个 SSM 之比;两个模块——时间混合模块(处理跨时间步关系)与通道混合模块(处理同一步内特征通道交互),四要素 R 接收向量 / K 键 / V 值 / W 位置权重衰减(w(t,i) = −(t−i)w);规模做到 14B,是第一个可扩展到数百亿参数的非 Transformer 架构;训练可并行、推理常数复杂度。
  • Mamba:提出选择机制(让 B、C、Δ 变成输入的函数:sB(x)=LinearN(x)、sC(x)=LinearN(x)、sΔ(x)=BroadcastD(Linear1(x)),Δ 用 softplus 调节)——参数带时间维度、从时不变转为时变,能做基于内容的推理;配合硬件感知算法(内核融合 + 并行扫描 + 重计算,HBM→SRAM),A100 上推理吞吐比类似规模 Transformer 高 5 倍;Mamba-3B 超过两倍参数的 Transformer,可处理百万级序列。
  • TTT 测试时训练:把上下文信息存在模型参数里(而非固定长度隐藏状态);内部循环每步用自监督重构损失 ℓ = ‖f(θK·xₜ; Wₜ₋₁) − θV·xₜ‖² 做梯度更新 Wₜ = Wₜ₋₁ − η∇ℓ,外部循环负责下一词预测;推理时只跑内部循环,同样线性复杂度,超长上下文表现优于 SSM(Mamba 在上下文超 16k 后困惑度基本不再下降)。
① 连续形式(控制理论动力系统) x′(t) = Ax(t) + Bu(t) y(t) = Cx(t) + Du(t) 适合连续数据(音频、时间序列)· 训练推理都慢 ② 离散 · 递归形式(梯形法离散化) xₖ = Āxₖ₋₁ + B̄uₖ,yₖ = C̄xₖ 像 RNN:推理线性复杂度 · 无法并行训练 Ā=(I−Δ/2·A)⁻¹(I+Δ/2·A),B̄=(I−Δ/2·A)⁻¹ΔB,C̄=C ③ 离散 · 卷积形式(迭代展开) yₖ = K̄ₖ ∗ uₖ,K̄ₖ = (C̄B̄, C̄ĀB̄, …, C̄ĀᵏB̄) 可并行训练 · 时不变 → 上下文长度固定 离散化(梯形法) 迭代展开 时不变性 矩阵参数在整个序列处理中固定 → 一致处理各时间步、高效并行训练 → 但处理信息密集文本能力较弱 S4 用 HiPPO 矩阵初始化 A 矩阵 实战选择 训练时用卷积形式(可并行) 推理时用递归形式(线性高效) 可应用于文本 / 视觉 / 音频 / 时间序列
SSM 系统方程三形式:连续形式描述状态演化,离散化出递归形式用于推理、卷积形式用于训练——一张图记住「训练用卷积、推理用递归」。
RWKV(v4) WKV = 两个 SSM 之比 时间混合 + 通道混合模块 四要素:R 接收 / K 键 / V 值 W 位置衰减(w(t,i) = −(t−i)w) Token 位移:线性插值当前/前一步 规模:14B 首个百亿级非 Transformer 训练并行 · 推理常数复杂度 长上下文仅次 S4 Mamba 选择机制:B/C/Δ 变成输入的函数 sΔ(x)=BroadcastD(Linear1(x)),softplus 参数带时间维度 → 打破时不变 硬件感知算法 内核融合 + 并行扫描 + 重计算 HBM → SRAM 吞吐:A100 上 ≈ 5× Transformer Mamba-3B 胜过两倍参数 Transformer TTT 测试时训练 模型参数 = 隐藏状态 内部循环:每步梯度更新 Wₜ = Wₜ₋₁ − η∇ℓ(重构损失) 外部循环:下一词预测 推理时只跑内部循环 线性复杂度 超长上下文更强 Mamba 超 16k 困惑度饱和 TTT 的回应:参数存记忆 三家的共同目标:把长序列复杂度从平方级降到线性级——Transformer 仍主流,但后浪已至
RWKV / Mamba / TTT 对比:RWKV 用 WKV 把注意力线性化,Mamba 用选择机制 + 硬件算法把吞吐提 5 倍,TTT 把「训练」搬进推理过程存记忆——三条不同的线性时间之路。
⚠️
非 Transformer 的三点提醒

① SSM 有时不变性的甜头(可并行)也有苦头(上下文固定、信息密集文本弱),所以 Mamba 要引入选择机制打破它;② 固定长度隐藏状态会过早饱和(Mamba 超 16k 困惑度不再下降),TTT 用「参数当记忆」回应;③ 它们仍在「挑战者」阶段——性能接近但生态远不如 Transformer,谁主沉浮还未可知。

§13 · 参数高效微调

PEFT 总览

Parameter-Efficient Fine-Tuning —— 只动一小撮参数,办成大事。
一句话:PEFT 冻结大模型的绝大部分参数、只更新一小部分,用极低的计算与存储成本把大模型适配到垂直领域。
  • 适配的两条老路都不完美:上下文学习(ICL)把任务转成生成任务、靠 Prompt 驱动,无需训练,但①性能与微调有差距、Prompt 设计费人力且不同写法差异大,②推理代价随样例增多快速上升;指令微调要构建指令数据集(数据集成如 Flan/P3,或大模型生成如 InstructWild/Self-Instruct)再监督微调,效果最好,但 LLaMA2-7B 全量微调需要近 60GB 内存,RTX4090(24GB)都扛不住。
  • PEFT 是什么:参数高效微调(Parameter-Efficient Fine-Tuning)避免微调全部参数,大幅减少需要更新的参数量和计算开销——「在几乎不牺牲性能的前提下省钱省资源」。
  • 三大类方法(教材图 4.2 分类学):参数附加方法(附加新模块:Adapter-tuning / Prompt-tuning / Prefix-tuning / Proxy-tuning)、参数选择方法(只挑关键参数:BitFit / Child-tuning / FishMask)、低秩适配方法(用低秩矩阵近似参数更新:LoRA / AdaLoRA / DyLoRA / DoRA)。
  • 三大优势:① 计算效率高——更新参数少,训练资源消耗低;② 存储效率高——每个任务只保存小补丁,特别适合内存受限设备;③ 适应性强——能快速适配不同任务,无需重新训练整个模型。
  • 微调的价值:微调后模型指令遵循能力显著提升,推理水平增强、能泛化到新任务新领域——这是「只靠提示」的 ICL 难以企及的。
预训练大模型 权重冻结 · 世界知识不动 只需更新一小部分参数 ① 参数附加方法 在结构中「额外加」小模块 外部参数 · 输入:软提示 Prompt 外部参数 · 输出:Proxy 代理 内部参数 · K/V 前缀、Adapter ② 参数选择方法 在原有参数里「挑」关键子集 基于规则 · BitFit 只调偏置 基于规则 · 最后 1/4 层、PaFi 基于学习 · Child-tuning 掩码 ③ 低秩适配方法 用「低秩矩阵」近似参数更新 LoRA · W = W₀ + αBA AdaLoRA · 动态秩分配 ReLoRA · DoRA · LoRAHub 计算效率高 存储效率高 适应性强
PEFT 分类学(教材图 4.2):「只更新一小部分参数」可以拆成三条路——附加新参数、挑选旧参数、用低秩矩阵近似更新,殊途同归。
模型(80GB A100 + 64GB+ CPU 内存)全量参数微调参数高效微调(LoRA)
bigscience/T0_3B47.14GB GPU / 2.96GB CPU14.4GB GPU / 2.96GB CPU
bigscience/mt0-xxl(12B 参数)OOM GPU56GB GPU / 3GB CPU
bigscience/bloomz-7b1(7B 参数)OOM GPU32GB GPU / 3.8GB CPU
🎯
本节核心记忆点

PEFT 三字诀:「附加、选择、低秩」——附加是加新参数、选择是挑旧参数、低秩是用小矩阵近似更新。共同点是冻结原始权重,换来计算、存储、适应三方面的效率。教材表 4.1 是最好的证据:7B/12B 模型全量微调在 80GB 显卡上直接 OOM,换成 LoRA 后单卡就能训。

§14 · 参数高效微调

参数附加方法

Additional Parameter Methods —— 参数不够?加一点来凑。
一句话:在模型的输入、内部或输出处「外挂」一小撮可训练参数,冻结原模型只训新参数——加在哪,决定了怎么加。
  • 按附加位置分三类:加在输入(Prompt-tuning 软提示)、加在模型(Prefix-tuning / Adapter-tuning / AdapterFusion)、加在输出(Proxy-tuning)。
  • Prompt-tuning(加在输入):软提示嵌入 P ∈ R^(m×d) 拼到输入嵌入 X ∈ R^(n×d) 之前,形成 [P; X] ∈ R^((m+n)×d) 一起送进 Transformer,只更新 P;软提示长度常用 1–200、20 以上有性能保证,用词表 token 或类名初始化优于随机初始化。
  • Prompt-tuning 的账本:T5-XXL 全量有 11B 参数,软提示长度取 5 时每任务只需 20,480 个参数;一个冻结模型可服务多任务混合推理(各任务前缀不同即可);规模到 10B 时性能接近(多任务)全参数微调。
  • Prefix-tuning(加在模型①):把可训练前缀 Pk、Pv 插进每个注意力模块的 K、V 之前;直接训练前缀不稳定,所以先用 MLP 重参数化,训练完丢弃 MLP、只保留前缀参数——参数效率高、任务适配灵活、且保留预训练知识。
  • Adapter-tuning(加在模型②):在每个多头注意力层和 FFN 层后插瓶颈适配器:下投影 Wd ∈ R^(d×r) 压到低维 r,过非线性 σ,上投影 Wu ∈ R^(r×d) 还原,带残差 A(l) = σ(Wd·H(l-1))·Wu + H(l-1);每层约 2dr + d + r 个参数(r ≪ d),只训适配器、层正则化和分类头。
  • AdapterFusion(加在模型③):两阶段——① 知识提取:每个任务各训一个适配器(ST-A 独立训练 / MT-A 多任务联合);② 知识组合:冻结模型和所有适配器,只训融合模块 Ψ ← argmin Ln(Dn; Θ, Φ1…ΦN, Ψ),用注意力把多个适配器的输出加权合并,实现跨任务知识复用。
  • Proxy-tuning(加在输出):解码时算法,调整后的分数 s̃ = sM + sM+ − sM− 再 softmax 采样;用「微调过的小专家 M+」与「反专家 M−」的 logits 差异,去修正更大的代理模型 M(如把 LLaMA-7B 学到的知识迁移给 13B/70B);只访问输出分布,黑盒模型也能用。
① 加在输入 · Prompt-tuning 输入嵌入 X(冻结) 软提示 P(可调) [P; X] ∈ R^((m+n)×d) 拼接 Transformer(冻结) 仅更新 P · T5-XXL:11B → 20,480 参数 ② 加在模型 · Prefix / Adapter 多头注意力层 K、V 前插前缀 Pk / Pv(可调) 适配器(瓶颈结构) 下投影 Wd → 激活 σ → 上投影 Wu + 残差(r ≪ d) 层正则化(可调) Prefix 先过 MLP 重参数化,训练后丢 MLP 只留前缀 ③ 加在输出 · Proxy-tuning 代理模型 M(13B/70B) 反专家模型 M−(7B) 专家模型 M+(微调 7B) s̃ = sM + sM+ − sM− softmax → 采样 解码时算法 · 无需模型权重,黑盒也能用
附加位置三连(教材图 4.3 / 4.4 / 4.5 / 4.7):输入处拼软提示、模型内部插前缀与适配器、输出处做 logits 修补——三种「外挂」各有擅长场景。
💡
位置即哲学

加在输入最灵活(对模型结构改动最小);加在模型能保留预训练知识、泛化更好;加在输出(Proxy-tuning)能以极小代价驱动更大的黑盒模型。三招殊途同归——都是「用一小撮新参数撬动大模型」。

§15 · 参数高效微调

参数选择方法

Parameter Selection Methods —— 挑重点,只训关键参数。
一句话:不添加任何新参数,只「挑」原模型参数的一个子集来更新——推理阶段零额外开销,难题变成「挑哪些」。
  • 基本思路:利用「只有部分参数对下游任务起决定性作用」的特性,抓住主要矛盾,仅微调关键参数;与附加方法不同,它不引入任何新参数,推理阶段没有额外计算成本。
  • 基于规则 · BitFit:只微调每一层的偏置项(Bias)+ 任务特定的分类头;偏置项只占总参数约 0.08%–0.09%,却能在 GLUE Benchmark 上与全量微调媲美、某些任务甚至更好;还允许使用更大的学习率、优化更稳定;局限:只在小模型(BERT、RoBERTa)上验证过。
  • 更多规则法:只微调 BERT / RoBERTa 的最后 1/4 层即可达到全量微调 90% 的性能;PaFi 选择绝对值最小的模型参数作为可训练参数。
  • 基于学习 · Child-tuning:引入与参数矩阵 Wt 同维的 0-1 掩码矩阵 Mt 选择子网络 Ct,更新公式 Wt+1 = Wt − η(∂L/∂Wt ⊙ Mt)——被屏蔽参数的梯度直接归零。
  • Child-tuningF(任务无关):不依赖任何下游数据,每轮迭代从伯努利分布采样 Mt ~ Bernoulli(pF),pF 控制子网络比例;同时向全梯度引入噪声做正则化,防止小数据集过拟合、提高泛化。
  • Child-tuningD(任务驱动):用费舍尔信息矩阵(FIM)估计参数重要性 F(i)(W) = (1/|D|) Σ (∂log p(Yj|Xj; W)/∂W(i))²,对全部参数排序后取前 pD 比例组成子网络——参数越重要 Fisher 值越高。
  • 其他学习法:FishMask(学习与权重相关的二值掩码,用噪声估计器更新)、Fish-Dip(Fisher 掩码每训练周期动态重算)、LT-SFT(受「彩票假设」启发,取初始微调阶段变化最大的参数子集)、SAM(二阶逼近,解析求解优化函数决定掩码)。
全量微调(对比基线) 更新全部 d×k 参数 LLaMA2-7B 全量微调 ≈ 60GB 显存 BitFit · 只调偏置项 浅色 = 冻结 · 深色 = 可调 偏置项仅占 ≈ 0.08%–0.09% GLUE 媲美全量 · 可用更大学习率 同类:最后 1/4 层(≈90% 性能)、PaFi Child-tuning · 梯度掩码 Wt+1 = Wt − η(∂L/∂Wt ⊙ Mt) F 版:Mt ~ Bernoulli(pF)(任务无关) D 版:费舍尔信息排序,取前 pD 比例
掩码机制对比:全量微调动所有参数;BitFit 只让偏置项「亮灯」;Child-tuning 用 0-1 掩码 Mt 把梯度「打码」,只更新选中的子网络。
🎯
本节核心记忆点

参数选择的核心矛盾:规则法(BitFit、最后 1/4 层、PaFi)便宜但靠专家经验;学习法(Child-tuning)聪明但费算力——尤其 Child-tuningD 的费舍尔信息计算十分耗时。如何选最佳参数子集、如何平衡「更新数量 vs 模型性能」,仍是开放问题。

§16 · 参数高效微调

低秩适配:LoRA

Low-Rank Adaptation —— 用一块低维「补丁」,撬动全量更新。
一句话:把参数更新 ΔW 低秩分解成两个小矩阵 B、A,冻结 W₀ 只训它们——参数量少到千分之一,显存省一大半,还能拆下来当插件用。
  • 低维固有维度假设:过参数化模型的固有维度很低——存在与全参数更新效果媲美的「低维参数更新」,这是低秩适配的理论依据。
  • LoRA 原理:把参数更新矩阵分解为两个小矩阵:W = W0 + αBA,其中 B ∈ R^(d×r)、A ∈ R^(r×k)、r ≪ min{d, k};B 用随机高斯初始化、A 置零,α 是缩放因子;训练时固定预训练权重,只更新 B 和 A。
  • 参数账本:全量微调每层要更新 d×k 个参数,LoRA 只需 r×(d+k) 个;LLaMA2-7B 首个 FFN 层(11008×4096 = 45,088,768)在 r=4 时只需 (11008×4)+(4×4096) = 60,416 个参数——不到千分之一;LoRA 原本应用于注意力投影层,后续工作表明加到 FFN 层还能进一步提升性能。
  • 显存账本(RTX4090 24GB,batch=1):全量微调约 60GB 直接超显存,LoRA 约 23GB 可训;内存四件套中,优化器内存省约 25GB、梯度内存省约 14GB(权重+激活因增量参数略增约 2GB,可忽略);反向传播提速 1.9 倍。
  • 可插拔性:训练完 B、A 可与模型分离,封装成即插即用的「参数插件」,不破坏原始模型——可共享、可复用,多任务插件还能组合出新能力(LoRAHub)。
  • 变体①打破低秩瓶颈:全量微调的秩比 LoRA 高 10–100 倍;ReLoRA 用「合并-重置」(merge-and-reinit)周期性执行 W ← W + αBA 后重初始化 B(Kaiming)、A 置零,并部分重置优化器状态,让多次低秩更新累积出接近高秩的效果。
  • 变体②③:AdaLoRA 把更新参数化为 SVD(W = W0 + PΛQ),按奇异值重要性动态剪枝、逐层分配秩;DoRA 把 W0 分解为方向与大小,只对方向组件施加 LoRA(W′ = m·(W0+BA)/‖W0+BA‖c),训练更稳定;LoRAHub 用无梯度方法 Shiwa 学习权重,把多个任务 LoRA 插件加权组合(m̂ = (Σ wiAi)(Σ wiBi))迁移到新任务。
LoRA:W = W₀ + α·B·A 冻结 W₀,只训练 B、A 两个低秩矩阵 输入 x 预训练权重 W₀ ∈ R^(d×k) (冻结,不更新) 输出 h 下投影 A ∈ R^(r×k)(可训练) 上投影 B ∈ R^(d×r)(可训练) α·B·A·x 初始化:B 随机高斯 · A 置零 α 缩放因子,控制补丁大小 全量微调 更新 d×k = 11,008×4,096 = 45,088,768 ≈ 60GB 显存(超 RTX4090 24GB) LoRA(r = 4) 更新 r(d+k) = 60,416 个参数(不到千分之一) ≈ 23GB 显存 ✓ · 反向传播提速 1.9 倍
LoRA 原理(教材图 4.8):输入 x 走两条路——冻结的 W₀ 主路径 + 可训练的 A→B 低秩旁路,输出合并为 h = W₀x + αBAx,等价于只更新 W₀ + αBA。
对比项(LLaMA2-7B 首个 FFN 层)全量微调LoRA(r=4)
需更新的参数量11,008 × 4,096 = 45,088,768(11,008×4) + (4×4,096) = 60,416
微调显存(RTX4090 单卡)约 60GB(超出 24GB 容量)约 23GB ✓ 可训练
内存变化明细—优化器 −25GB · 梯度 −14GB · 权重/激活 +2GB
反向传播速度基准提升 1.9 倍
🎯
本节核心记忆点

LoRA 为什么香:一句话 W = W0 + αBA——把「更新」变成「补丁」。补丁小到千分之一、显存省一半多、速度还快 1.9 倍;而且补丁可拆、可拼(LoRAHub),配合 ReLoRA / AdaLoRA / DoRA 等变体还能逼近全量微调的性能。

§17 · 参数高效微调

PEFT 实践与应用

Practice & Applications —— 装上轮子,跑进垂直领域。
一句话:HF-PEFT 把 LoRA 等方法的门槛压到「pip 安装 + 五步配置」,FinSQL 与 TabLLM 则示范了 PEFT 如何用少量数据撬动金融与表格领域。
  • HF-PEFT 框架:Hugging Face 开源库,集成 LoRA、Adapter-tuning、Prompt-tuning、IA3 等先进方法;与 Transformers、Diffusers、Accelerate 无缝集成,支持单机到分布式训练,兼容模型量化,Transformer 与 Diffusion 模型都能用,消费级硬件也能跑。
  • 五步使用流程:① 安装与配置(装 peft 及 Transformers 依赖)→ ② 选择模型与数据(按任务挑预训练模型、备训练集)→ ③ 确定微调策略(LoRA / 适配器等)→ ④ 模型准备(配置任务类型、推理模式、参数值)→ ⑤ 模型训练(定义损失函数、优化器,可加数据增强与学习率调度)。
  • Prompt / Prefix 参数技巧:num_virtual_tokens 即软提示长度,通常设 10–20、按输入长度调节;prompt_tuning_init 可选随机(RANDOM)或文本(TEXT)初始化,用特定文本初始化可加速收敛;Prefix 的 encoder_hidden_size 通常与模型隐藏层大小匹配。
  • LoRA 参数技巧:r 控制更新矩阵复杂度,常用 4 / 8 / 16,小数据集用更小的 r;lora_alpha 控制补丁大小,通常与 r 成反比以保持更新一致性;lora_dropout 设小值(如 0.01)做正则化防过拟合;target_modules 指定挂载模块(如注意力中的 q / k / v),可选特定模块或全部线性层。
  • FinSQL(金融 Text-to-SQL):三大件——Ⅰ 提示构造:数据增强、表列检索、同义句增强、思维链生成、骨架预测;Ⅱ 参数高效微调:一个基座模型挂多个 LoRA 获得多种能力,再用 LoRAHub 权重融合,提升少样本性能;Ⅲ 输出校准:SQL 解析修正语法错误 + Self-Consistency 选出一致性 SQL;把 SQL 编写时间从分钟级压到秒级。
  • TabLLM(表格分类):把表格行序列化为自然语言字符串(如 "The age is 42. The education is Master...")并附上分类问题的简短描述,用 LoRA 在少量带标签样本上微调;在多个基准上超过基于深度学习的表格分类基线,少样本设置下甚至超过梯度提升树等传统强基线。
HF-PEFT 微调五步 ① 安装与配置 装 peft + Transformers ② 选择模型与数据 按任务挑模型、备数据 ③ 确定微调策略 LoRA · Adapter · Prompt ④ 模型准备 任务类型·推理模式·参数 ⑤ 模型训练 损失·优化器·学习率调度 与 Transformers / Diffusers / Accelerate 无缝集成 · 兼容量化 · 消费级硬件可跑大模型 FinSQL:金融 Text-to-SQL 三大件 Ⅰ 提示构造 数据增强 · 表列检索 同义句增强 · 思维链生成 骨架预测 · 多任务增强 Ⅱ 参数高效微调 一个基座模型挂 LoRA₁…LoRAₙ 获得多种能力 → LoRAHub 融合 少样本场景性能提升 Ⅲ 输出校准 SQL 解析 · 修正语法错误 Self-Consistency 选一致性 SQL SQL 编写:分钟级 → 秒级 TabLLM:表格数据分类 表格行 → 自然语言字符串 + 分类问题提示 → LoRA 少样本微调 超过深度学习表格基线 · 少样本下超过梯度提升树
实践与应用全览:上半场是 HF-PEFT 的五步标准流程,下半场是 FinSQL 的「提示构造 → PEFT 微调 → 输出校准」三件套 + TabLLM 的表格分类套路。
💡
实践心法

小数据集就把 r 调小、dropout 别开大;FinSQL 与 TabLLM 的共同套路是「把垂直领域数据变成模型熟悉的文本/提示 + LoRA 少样本微调」。PEFT 让一块消费级显卡也能微调 7B 大模型——垂直领域的大门就此敞开。

附

附录 · 名词速查

全站高频术语一张表收好:看到不懂的英文缩写,回来翻这里。

n-gramsN元模型

基于「数频率」的统计语言模型:用长度为 n 的词序列在语料库中的出现频率估计语言概率。n=1 称 unigram,n=2 称 bigram。

马尔可夫假设Markov Assumption

「当前词只与前 n 个词有关」——把无限长的上文截断成固定窗口,是 n-grams 能算得动的理论前提。

RNN循环神经网络

带环路的神经网络:把历史状态循环叠加到当前状态,实现「记住上文再预测」。缺点是串行、梯度消失。

LSTM / GRU

引入门控结构的 RNN 变体,解决梯度消失问题:LSTM 用遗忘/输入/输出门,GRU 简化成更新/重置门,成为主流 RNN。

Teacher Forcing

训练时每轮用「标准答案」拼接而非模型自己的输出,加速收敛;代价是训练/推理不一致的曝光偏差,可用 Scheduled Sampling 缓解。

Transformer

基于注意力机制的模块化网络:注意力模块 + 全连接前馈模块堆叠,可并行、能通盘考虑上下文,是大模型的共同地基。

自注意力Self-Attention

把输入编码成 Query/Key/Value,用「Q 与 K 的相似度」做加权权重,对 V 加权求和——让每个词都能看到序列里的所有词。

Top-K / Top-P

随机采样解码方法:Top-K 固定保留概率最高的 K 个候选词,Top-P(Nucleus)按累积概率阈值 p 动态选候选集。配合 Temperature 调节随机性。

困惑度Perplexity / PPL

内在评测指标:模型对测试文本「困惑」的程度,PPL 越小说明生成能力越强,等价于交叉熵的指数。

BLEU / ROUGE

外在评测的统计指标:BLEU 精度导向(算生成与参考的 n-gram 重合),ROUGE 召回导向(含 LCS 最长公共子序列),分别常用于翻译与摘要。

Scaling Laws扩展法则

模型性能与参数/数据规模的定量关系:Kaplan 认为模型增长优先(N^0.73),Chinchilla 认为二者同权重(N^0.46/D^0.54),数据应为模型 20 倍。

涌现能力Emergent Abilities

模型规模跨过阈值后突然出现的能力(上下文学习、常识推理、代码生成、逻辑推理),具有突变性和不可预见性。

Encoder-only

只用 Transformer 编码器:双向注意力,适合理解型任务(分类/情感分析),代表 BERT。缺点是不能直接生成。

Encoder-Decoder

编码器 + 解码器 + 交叉注意力:适合有条件生成(翻译/摘要/问答),代表 T5、BART。参数规模与计算量偏大。

Decoder-only

只用解码器 + 掩码自注意力:自回归生成,当前大模型的「大一统」主流,代表 GPT 系列、LLaMA 系列。

MLM / NSP

BERT 的两种预训练任务:掩码语言建模(完型填空,15% 词被遮)和下一句预测。衍生改进:RoBERTa 去 NSP 用动态掩码,ALBERT 换成 SOP。

RLHF人类反馈强化学习

SFT 微调 → 训练奖励模型 → 强化学习三步,让模型对齐人类偏好。InstructGPT 由此而来;DPO 用偏好数据直接优化,省掉奖励模型。

SSM / Mamba / TTT

三类非 Transformer 架构:SSM 状态空间模型把上下文压进固定隐藏状态(线性复杂度);Mamba 加选择机制+硬件感知;TTT 在推理时用梯度更新隐藏状态。

PEFT参数高效微调

只更新一小部分参数完成领域适配:三类方法——参数附加(Adapter/Prompt)、参数选择(BitFit/Child-tuning)、低秩适配(LoRA)。

LoRA低秩适配

把参数更新矩阵 ΔW 低秩分解为 B·A 两个小矩阵(W = W0 + αBA),只训练它们。LLaMA2-7B 单层 4508 万参数 → 6 万,显存 60GB → 23GB。

HF-PEFT

Hugging Face 开源的 PEFT 库:集成 LoRA/Adapter/Prompt-tuning/IA3,消费级显卡可微调大模型,支持与 Transformers/Diffusers 无缝集成。

A2

附录 · 视频专区

图文为主,视频为辅:每章配一条精选讲解,B 站免费看。

💡
怎么配合图文使用

建议顺序:先读每节的「一句话」和要点,再看图解把结构钉进脑子,最后用视频里的直观动画做二次加深。视频链接为 B 站公开资源,若失效可在站内搜索标题。