跳转到内容

Transformer 第2章:训练、长上下文与微调

第 1 章解释 Transformer 的基本结构,本章转向训练和工程选择:模型学什么目标、上下文怎样扩展、推理成本从哪里来、什么时候用 LoRA,以及继续预训练和偏好优化分别解决什么问题。各组件不按“新技术清单”排列,而按它们改变训练或推理哪一部分来组织。

1. 预训练目标、规模与位置表示

Section titled “1. 预训练目标、规模与位置表示”

预训练利用大规模无标签或弱标签序列学习数据分布中的统计规律和可迁移表示。

范式直观解释掩码/可见性经典用途
CLM 因果语言建模猜下一个 token只能看过去GPT 系、多数生成式基因组 LM
MLM 掩码语言建模挖空再填双向可见BERT 系、部分蛋白 LM
Prefix / 前缀 LM前半双向、后半因果混合部分统一架构
去噪 Denoising打乱/删改后还原看损坏版T5 系 seq2seq
对比学习正样本靠近、负样本推远通常双塔/同塔增强检索、部分表示学习
要「续写 / 自由生成」? → 偏 CLM(Decoder)
要「整段理解 / 分类 / embedding」? → 偏 MLM 或 CLM 取表征
输入 A 输出 B(翻译、设计)? → 偏去噪 Enc-Dec 或 Decoder+提示
要「找相似序列」? → 可考虑对比学习
现象可能原因调整项
生成很顺但分类一般CLM 偏下一 token,表征未必对齐任务加小监督头、对比损失、或换 MLM 式预训练
填空很强但不会写长文MLM 没练「从左到右写」加生成阶段或换 CLM
训练集 loss 很低、下游崩背了数据分布,任务分布不同数据配比、领域 CPT、评估要独立 hold-out

生物向预告(第3章):基因组常 CLM;蛋白既有 MLM(ESM 思路)也有生成式;任务标签稀缺时预训练质量几乎决定上限。


不必背公式,记住三件「一起涨才划算」的事:

杠杆变大时通常…单独增加时常见副作用
数据覆盖更完整时通常有利于泛化噪声、重复和偏置会限制收益
参数提高函数容量数据或正则不足时可能过拟合
算力/步数允许更充分优化继续增加步数可能过拟合或造成计算浪费

实践原则:

  1. 在固定预算下,数据质量、覆盖和模型容量需要共同设计;扩大模型并不能补偿严重的数据噪声或分布错配。
  2. 算力预算固定时,应同时检查有效 token 数、重复率、数据混合和模型规模,而不是只增加层数。
  3. 预训练损失只是优化指标,下游任务仍需独立验证。
示意图

第1章:位置 = 「座位号名片」。 第2章:现代大模型几乎不用「简单绝对位置表」一条路走到黑。

方案直觉优点注意
绝对可学习位置每个位置一个向量简单超长难外推,常卡死 max length
正弦绝对位置用波标记位置不占参数外推仍一般
RoPE 旋转位置用旋转把「相对距离」编进 Q·K相对位置友好,主流极长外推要额外技巧
ALiBi对注意力分数加「距离惩罚」实现直接,部分设置下具有长度外推优势与某些结构搭配要试

为什么在乎相对位置? 句子里「A 在 B 左边 3 个」往往比「A 在绝对第 107 位」更有意义——基因组 motif、依赖距离同理。

选择时需要检查:

  • 读论文看到 RoPE → 默认「相对位置 + 可尝试长度外推」
  • 上下文要从 4k 拉到 32k/100k → 不只换 PE,还要看数据里有没有长序列、注意力是否改稀疏

Self-Attention 有一张 [L, L] 的「全员对全员」关系表:

长度 ×2 → 这块的算力/显存往往 ×4 量级(再乘 batch、头数等)。

因此序列长度 LL 是计算和显存成本的关键变量。过细的 tokenization 或不必要的长上下文会显著提高注意力开销。

路线直观解释主要效果
FlashAttention 等同一套数学,算得更省显存、更快「同样全注意力,工程上扛更长」
稀疏注意力不看所有人,只看窗口/块/远程跳点丢一点全局,换长度
线性/核近似换一种近似注意力理论香,任务上要实证
分层 / 检索增强先粗筛再精看超长文档、超长基因组常用思路
SSM / Hyena 等混合不全靠 softmax 注意力长 DNA 论文里常见对照(第3章)

实践优先级(多数人): 先 合理 L + 好的 truncation/packing → 再 FlashAttention 级实现 → 再考虑改结构。


自回归时,每步只多一个新 token,但注意力还要看过去所有位置。

KV Cache = 把已经算过的 K、V 存起来,下一步只算新 token 的 Q/K/V,再和缓存拼。

没有 Cache有 Cache
每步重复算历史历史复用
越生成越慢得离谱接近「每步固定增量」

代价: 显存里要挂着「层数 × 头 × 已生成长度」的缓存——长对话/长基因组续写时,显存往往死在 Cache 而不是权重。

参数调高时调低时
Temperature 温度更随机、更有创意、更易胡言更贪心、更稳、更死板
Top-k只从概率最高的 k 个里抽k=1 近似贪心
Top-p (nucleus)从「累计概率达 p」的小集合里抽p 小 → 更保守

任务手感:

  • 注释/抽取/要可复现 → 温度低、甚至贪心
  • 设计/头脑风暴式生成 → 适度升温 + top-p
  • 生物序列生成要额外用生物学过滤器(开放阅读框、重复、GC…)——第3章展开

推理时把多条请求拼 batch 可提吞吐,但长度不齐要 pad,KV Cache 管理变复杂。产品系统才深挖;科研脚本先保证单条正确。


预训练好了,接到你的任务,通常有三条路:

示意图

全量微调 = 改整张大权重矩阵。 LoRA = 冻住原矩阵,旁边加一对很小的可训练低秩矩阵,用「低维修正」逼近需要的更新。

优点代价/注意
可训练参数少几个数量级rank 太小可能欠拟合
多任务可存多套小插件推理要合并或带插件
常减轻灾难性遗忘不是万能;数据烂一样挂

参数手感:

  • rank:容量;从较小试起(如 8/16),不够再加
  • alpha / 学习率:和 rank 耦合,要一起扫
  • 插在哪些层:常注意力的 Q/V,也可 MLP;领域差得远时多插一点
  • 领域与底座差很远,且你有足够高质量数据 + 算力
  • 要改的是「底层表征」而不只是表层格式
  • 可以接受维护完整新权重、并处理遗忘

否则:线性探测 → LoRA → 全参 由便宜到贵做消融,最省时间。


参数为什么存在手感
学习率 LR步子太大震荡,太小爬不动预训练小、微调往往更小;扫数量级
Warmup初期梯度乱,先热身再全速有助于大 batch / 大模型开训
梯度裁剪防止偶发爆炸一步毁模型出现 loss spike 时先查这个和数据
Weight decay限制权重无界变大轻度正则,不是主药
Dropout减轻过拟合现代大 LM 预训练有时很小;小数据微调可加
混合精度更快更省显存注意溢出;重要部分可保留高精度
Batch / 梯度累积等效大 batch显存不够就累积;过大 batch 要配 LR
序列 packing减少 pad 浪费提高有效 token 利用率
现象优先怀疑
一步飙到 NaNLR 过大、坏样本、溢出、没裁剪
训练降、验证升过拟合;减步数/加正则/加数据/早停
两边都不降LR 过小、数据 bug、标签错、模型太小或目标不对
训练很漂亮、一上真实分布就崩分布偏移;要领域数据或 CPT
  • 重复序列、泄漏的验证集、错误标签
  • 长度截断切掉了关键 motif
  • 正负样本比例极端

先做 100 条人工抽查,再开大规模训练——组学项目尤其如此。


你已在 RL 系列学过对齐。这里只钉与 Transformer 的接口:

阶段在 Transformer 上干什么数据长什么样
SFT用「标准输入→标准输出」做监督,更新(全参或 LoRA)指令-回答对
奖励模型 RM另训一个给回复打分的头/模型排序/偏好对
RLHF (PPO 等)策略=带 KL 约束的 Transformer 生成策略在线采样 + RM
DPO / GRPO 等常常不显式 RM,直接用偏好对改策略选定/拒绝回复对
关键划界(再强调):

关键划界(再强调):

  • CPT / 继续预训练:还在学「序列怎么继续/填空」——分布学习
  • SFT:学「在这种提示下输出该长什么样」——任务格式
  • DPO/RL:按人类或规则偏好改「更常说什么」——行为偏好
  • 三者都常是同一套 Transformer 权重上的不同目标,不是三种骨架

生物场景里:更多是 CPT + 小 SFT;真正 RLHF 少见,但「偏好/排序数据」(哪条 sgRNA 更好、哪段注释更可信)可以借鉴 DPO 思路——展开在第3章。


模式症状优先动作
过拟合训练好、验证差早停、更多数据、LoRA 降容、正则
上下文浪费窗口很长但有效信号短重做截断/检索/packing
捷径学习指标高但不靠生物学特征打乱对照、硬负样本、外部验证
灾难性遗忘领域 CPT/微调后旧能力崩回放混合、LoRA 插件化、小 LR、评估旧任务
评估泄漏虚高严格按序列/物种/家族划分 hold-out

延续你 RL / CPT 线的结论:

CPT偏好/RL 对齐
目标下一 token / 填空等按反馈改策略
常见正则数据混合 λ_mix、回放KL 对参考策略
风险忘通用/忘旧域奖黑客、多样性崩

λ_mix ≠ KL:一个管「旧数据还吃多少」,一个管「别离旧策略太远」。都是抗崩,但不是同一个参数。


拿到一篇 LLM / 生物 FM 论文,按序勾:

  • 架构:Enc / Dec / Enc-Dec?层数、d_model、头数?
  • Tokenization:粒度、词表、特殊 token、最大长?
  • 位置编码:绝对 / RoPE / ALiBi / 其他?
  • 预训练目标:MLM / CLM / 去噪 / 混合?数据从哪来、多大规模?
  • 长序列:截断、稀疏、SSM 混合、两阶段?
  • 微调:全参还是 LoRA?任务头怎么接?
  • 训练:LR、warmup、batch、步数、硬件?
  • 评估:ML 指标 + 是否有生物学验证?划分是否泄漏?
  • 失败与消融:去掉位置/换目标/缩数据会怎样?
  • 与你任务的差距:物种、长度、标签定义是否同分布?

第1章 已经给了结构/训练/生成参数的完整表。这里只列第2章 特有或要重新校准的参数,避免重复。

参数含义常见值手感关键公式/关系
max_seq_len上下文窗口2k / 8k / 32k / 128k+数据里没长序列,拉长白搭显存 ∝ L²
rope_thetaRoPE 基频10000(默认)/ 1M+(长上下文)拉长上下文常同步调大频率越低越能编码远距离
attention_window局部窗口大小128 / 512 / 4096Longformer 类稀疏必配用小窗换长 L
参数含义常见值手感
flash_attention是否用 FlashAttentionon/off现代训练默认开
gradient_checkpointing中间激活重算on/off显存换算力(约 1.3~2× 慢)
kv_cache_dtypeKV Cache 精度fp16 / int8 / int4长对话省显存关键
参数含义常见值手感公式
lora_rank r低秩维度4 / 8 / 16 / 32 / 64起 8~16,不够加ΔW = B · A,B∈ℝ^(d×r), A∈ℝ^(r×d)
lora_alpha α缩放系数通常 = r 或 2r有效放缩为 α/r更新 = (α/r) · B · A · x
lora_dropoutLoRA 层的 dropout0.0 ~ 0.1小数据可加—
target_modules插入哪些层Q,V / Q,K,V,O / +MLP领域差远就多插—
参数含义常见值手感
kl_coef βKL 约束强度0.01 ~ 0.5太大不学、太小跑偏(奖黑客)
dpo_betaDPO 的偏好锐度0.1 ~ 0.5越大越信偏好、越易过拟合
sft_epochsSFT 轮数1 ~ 3多了灾难性遗忘
参数含义常见值手感
λ_mix旧数据混合比例0.1 ~ 0.5领域越窄需回放越多
replay_buffer通用回放池占比5% ~ 30%与 λ_mix 相关
cpt_lrCPT 学习率通常 ≤ 预训练 LR 的 1/5 ~ 1/10小步慢走护住旧能力

核心问题:Transformer 的每个「零件」是否允许换?换成什么?为什么?效果如何? 下面按组件列出。

凡例: = 主流已成熟;🧪 = 有前景但需权衡;⚠️ = 有效但要小心搭配

6.1 位置编码(Position Encoding)· 可替换

Section titled “6.1 位置编码(Position Encoding)· 可替换”
变体为什么用效果代表文献
绝对正弦 Sinusoidal原论文默认、不占参数训练长度内可用,外推差Vaswani et al. 2017 · Attention Is All You Need
可学习绝对简单,让模型自己学卡死 max_len;外推≈0Devlin et al. 2018 · BERT
相对位置 Rel-PE更符合语言/序列直觉长距离更稳Shaw et al. 2018 · Transformer-XL
RoPE 旋转位置用旋转把相对距离编入 Q·K现代主流,LLaMA 系全用Su et al. 2021 · RoFormer
ALiBi 距离惩罚训练短、推理长的外推友好免外推训练,长度外推稳Press et al. 2021
YaRN / NTK 缩放 🧪已训好的 RoPE 模型拉长 L免重训扩展上下文Peng et al. 2023 · YaRN
NoPE 无位置编码 🧪因果掩码本身带隐式位置小模型可行,超长外推有惊喜Kazemnejad et al. 2023
变体为什么用效果代表文献
Post-Norm(原始)表达力强深层难训,需仔细 warmupVaswani et al. 2017
Pre-Norm深层友好GPT/LLaMA/多数现代 LM 默认Xiong et al. 2020
RMSNorm去掉均值项更快精度接近 LayerNorm,训练更快Zhang & Sennrich 2019
DeepNorm ⚠️训练极深(1000 层)时稳定千层 Transformer 可行Wang et al. 2022

6.3 激活函数(FFN 中的非线性)· 可替换

Section titled “6.3 激活函数(FFN 中的非线性)· 可替换”
变体为什么用效果代表文献
ReLU(原始)简单快部分神经元「死亡」—
GELU平滑,梯度更好BERT 默认Hendrycks & Gimpel 2016
SwiGLU门控增强 FFNLLaMA/PaLM 默认,明显更好Shazeer 2020
GeGLUGELU 版本的门控与 SwiGLU 接近同上
变体思路效果代表文献
FlashAttention融合内核减 IO同数学,2~10× 快,省显存Dao et al. 2022 · FlashAttn-2
Longformer滑窗 + 全局 token长文档友好Beltagy et al. 2020
BigBird随机 + 窗口 + 全局理论保证 + 长上下文Zaheer et al. 2020
Performer / Linear Attn 🧪核方法近似 softmax线性复杂度,任务上要实证Choromanski et al. 2020
Mamba / SSM 🧪状态空间模型替代注意力长基因组超香Gu & Dao 2023
Hyena 🧪长卷积 + 门控百万级 tokens DNA 可行Poli et al. 2023 · HyenaDNA
MoE 稀疏专家只激活部分专家参数大、算力小Shazeer et al. 2017 · Mixtral
变体思路效果代表文献
MHA 多头每头独立 K/V表达强、KV Cache 大原论文
MQA 多查询所有头共享 K/VKV Cache 小很多,略掉点Shazeer 2019
GQA 分组查询MHA 与 MQA 折中LLaMA-2/3 默认,性价比佳Ainslie et al. 2023
MLA 潜在注意力 🧪K/V 压到低维潜空间DeepSeek-V2/V3 默认,Cache 极省DeepSeek-V2
变体思路效果代表文献
CLM 因果猜下一 token生成主流Radford et al. 2018 · GPT
MLM 掩码挖空填空双向理解BERT · ESM 蛋白 LM
Span 掩码挖连续片段更强于短语级SpanBERT · T5
Prefix-LM前双向后因果兼容分类与生成UniLM
Denoising (T5)打乱/删/掩再还原seq2seq 万金油T5
ELECTRA 判别 🧪判「这个 token 是不是真的」样本效率高Clark et al. 2020
对比学习拉近正样本推远负样本检索/表征强SimCSE
FIM 填中间前+后→中间代码/结构化生成Bavarian et al. 2022
变体思路效果代表文献
LoRA低秩旁路 ΔW=BA主流性价比Hu et al. 2021
QLoRA底座 4-bit + LoRA单卡微调大模型Dettmers et al. 2023
DoRA分解方向/幅度常优于 LoRA 一点Liu et al. 2024
AdaLoRA自适应分配 rank参数更省Zhang et al. 2023
Adapter串行小瓶颈层LoRA 前身Houlsby et al. 2019
Prefix Tuning前缀虚拟 token生成任务好用Li & Liang 2021
P-Tuning v2深层前缀分类任务补齐Liu et al. 2021
IA³缩放向量极少参数Liu et al. 2022
BitFit ⚠️只训 bias极简,上限低Zaken et al. 2021
变体思路效果代表文献
PPO / RLHF在线 RL + KL 约束效果强、工程重InstructGPT
DPO无显式 RM,直接偏好对简单稳定,主流选择Rafailov et al. 2023
IPO身份偏好优化对过拟合更稳Azar et al. 2023
KTO单点偏好不需成对偏好数据Ethayarajh et al. 2024
GRPO群相对策略优化DeepSeek-R1 用它DeepSeek-Math
ORPO单阶段整合 SFT+对齐免 SFTHong et al. 2024
SimPO ⚠️无参考模型的 DPO 变体更省,风险稍大Meng et al. 2024

6.9 三大架构与其他骨架 · 可替换

Section titled “6.9 三大架构与其他骨架 · 可替换”
变体场景代表文献
Encoder-only分类/表征BERT · ESM
Decoder-only (现代主流)生成/续写GPT-3 · LLaMA
Encoder-Decoder翻译/seq2seqT5 · BART
Mamba/SSM 🧪长序列替代Mamba
Hyena 🧪超长基因组HyenaDNA
RetNet 🧪保留网络Sun et al. 2023
RWKV 🧪RNN-Transformer 融合Peng et al. 2023
零件 默认选择 什么时候要考虑换
─────────────────────────────────────────────────
位置编码 RoPE 超长外推 → ALiBi / YaRN
Norm Pre-Norm+RMSNorm 千层深模型 → DeepNorm
FFN 激活 SwiGLU 资源极紧 → GELU
注意力实现 FlashAttention 百万级 L → SSM/Hyena
注意力头 GQA 推理显存紧 → MQA/MLA
预训练目标 CLM 需双向表征 → MLM;A→B → 去噪
微调 LoRA 大模型单卡 → QLoRA;效果榨干 → 全参
对齐 SFT → DPO 工程强团队 → PPO;推理型 → GRPO

生物向的变体选择细节(k-mer vs BPE、蛋白 MLM vs 基因组 CLM、Hyena/Mamba 在超长基因组的地位、CPT 里 LoRA 的插入策略)→ 第3章展开。


文内「变体图谱」表格中的 arXiv / 论文链接即为本章主要参考来源;下列为高频入口:

本页导航

目录