跳到主要内容

阅读笔记 — The Craft of Post-Training (Csefalvay, 2026)

逐文件记录:机制、关键数字、可引短语(带行号)。导航章(01-05, 07, 165, 166)跳过。

06 Preface (作者立场)

  • Golem 比喻:base model=未成形的泥,post-training=shem(赋予目的的词)。06:13「unformed clay」
  • 作者:Chris von Csefalvay,原本是法律哲学家,Denver,落款 2026-01-21。06:59「January 21, 2026」
  • post-training 一词 2023 前几乎不存在;2024 年大实验室后训练团队已达数百人、预算上亿美元。06:35「barely existed before 2023」
  • jagged frontier:咨询顾问 +40% 某些任务,相似任务 -19%。06:27「40 percent」「19 percent less」
  • 代码仓:github.com/chrisvoncsefalvay/craft-of-post-training 06:41
  • 立场:post-training 是「everything technology」,是价值观与判断落地之处。

08 Introduction (全书地图 + 读者)

  • 全书=企业规模后训练的技术/艺术/实践。假定读者懂 transformer/反向传播/梯度下降;后训练概念从零建。08:13
  • 数学推导全给:「Math in language models is not an impediment but a shortcut」08:15
  • 技术栈:PyTorch, HF (TRL/Transformers/datasets), CUDA, Optuna, Hydra, SkyPilot, vLLM。08:17
  • 源于 2025 年底给 HCLTech Enterprise Research Services 开的课。08:29
  • Part I=Ch1-2 基础;Part II=Ch3 SFT, Ch4 RLHF+reward model+PPO, Ch5 DPO/KTO/GRPO, Ch6 评估;Part III=Ch7 优化(量化/PEFT/蒸馏), Ch8 领域适配;Part IV=Ch9 工具使用, Ch10 推理, Ch11 self-play/合成数据, Ch12 多模态, Ch13 前沿。08:33-39
  • vibe coding(Karpathy 2025 初造词);「Vibe Check」框讲 code agent 在哪有用/危险。08:53,57
  • DGX Spark:128GB 统一内存,桌面。08:43

09 Ch1 Post-Training Essentials: What It Is and Why It Matters (60k, 376 行)

  • 定义:post-training = foundation model 之后的一切(「right of pre」),含微调、对齐、评估、部署优化;fine-tuning 专留有梯度流动的部分。09:15,23,25
  • mid-training / domain-adaptive continued pre-training 也归入后训练(务实口径)。09:19
  • 三种尺度表 1-1:memscale(1 GPU 16-80GB, $10-100/run, 约束=VRAM, LoRA/QLoRA)、flopscale(几十到几百 GPU, $1k-10k, 约束=单位经济/ROI, full FT/RLHF/蒸馏)、powerscale(数千 GPU, $1M+, 约束=能源基建)。09:35-101
  • 企业 ikigai:擅长/喜欢/能收费/世界需要 四交点。09:107-119
  • 买智能为什么失败三因:buying doesn't scale;knowledge dissipates(金鱼记忆);identity matters(不能租人格)。09:139-151
  • LLM/SLM 无共识边界;本书 300M 参数以上都算 LLM。09:155
  • GPT-4o 2025-04 谄媚更新被回滚(史上首次);GPT-5 替换 4o 时 #BringBackGPT4o。风格/人格是后训练产物。09:165-167
  • Anthropic 2025-09 报告首例大规模 AI 自主网攻,30 组织,AI 自主完成 80-90%。能力天花板与安全地板都由后训练设定。09:171-173
  • Salesforce:2025 假期消费 $260B+ 受 AI/agent 影响。agent 四模式(reflection/tool use/planning/multi-agent)全是后训练注入。09:177-179
  • Artificial Hivemind 论文(UW/CMU/Ai2, NeurIPS 2025):前沿模型输出趋同;Merriam-Webster 2025 年度词 slop。09:185-187
  • Barney VRIN:valuable/rare/imperfectly imitable/non-substitutable — 领域适配模型可通过全部四条。09:199-209
  • RAG 不能注入知识:能教「去哪找」,不能教「怎么推理与产出」。09:195
  • 演示vs部署鸿沟:基础模型优化广度而非深度;Geertz thin/thick description — 模型擅长 thin(模仿形式)。09:217-223
  • prompting 三硬约束:上下文窗有限、few-shot 无法完备指定复杂行为、一致性不可靠。09:231-247
  • Min et al.:few-shot 随机换标签几乎不伤性能 — 模型学的是标签空间/输入分布/格式而非映射。09:241
  • Yuan et al.:bfloat16+greedy 下,GPU 数/型号/batch 不同可致 9% 准确率差、9000 token 长度差;根因浮点非结合性 (a+b)+c≠a+(b+c)。09:245
  • 生产要求三类:consistency / compliance / domain accuracy = production requirements gap。09:255-263
  • craft 词源:Old Germanic kraft=strength。09:271
  • SFT first:多数团队绕远路上 RLHF/DPO,最后发现 SFT 一周解决 80%。09:287
  • SFT 边界:需要示范数据;有些品质无法示范(好写作);有些偏好本质是比较性的;「何时不做」难用正例教。09:289-291
  • RLHF 三阶段:收偏好→训 reward model→RL 优化 policy(保持不离原分布太远)。09:299
  • DPO(闭式目标,免 reward model)、KTO(行为经济学)、GRPO(DeepSeek)、RLAIF。09:301
  • 技术是组合艺术不是互斥:Llama 3 六轮 SFT+DPO,每轮用上一轮最优模型采新偏好;Meta 明说 PPO 算不动且 DPO 在指令跟随基准更好。09:309-315
  • Ai2 Tülu 3:8B/70B/405B,五步 recipe,末段 RLVR(可验证奖励:数学/代码执行/指令约束,无法被 reward hacking)。09:317
  • 前沿范式 SFT+DPO+RLVR 三段。09:319-329
  • DeepSeek-R1:GRPO+可验证奖励,「aha moment」,AIME 2024 pass rate +40 个百分点。09:331
  • Hooker:信号质量>规模。09:331
  • 对齐=企业身份;Constitutional AI(Anthropic)、safety reward model、red-teaming。09:337-343
  • EU AI Act 2024 通过、2025 起分阶段执行。09:349
  • 量化:70B 半精度 140GB → 4-bit 35GB;GPTQ/AWQ。09:359
  • QLoRA:单卡 24GB 消费级 GPU 微调 30B。09:363
  • 蒸馏:7B student 学 70B teacher 保 80-95% 能力,1/10 推理成本。09:367
  • DGX Spark(2025 末):1 petaflop,128GB,可本地跑 200B 量化模型,两台 405B。气隙部署(数据主权,HIPAA/SOX/PCI DSS)。09:371-377

Ch2 Prerequisites for Success: Before You Fine-Tune (10-26)

  • 开篇引 Knuth 1974 图灵奖演讲「Premature optimization is the root of all evil」。10:5
  • prompting 够用的判据:不是「能不能work」而是「能否可靠到所需质量/延迟/成本」;95% 成功率对内部工具够、对客户面向不够。11:11
  • RAG:parametric vs nonparametric knowledge;knowledge currency(会变的)与 specificity(太细)。11:17-19
  • 知识 vs 行为判据:RAG 改「知道什么」,fine-tuning 改「怎么表现」;「accurate, enthusiastic product recommendations」=两者都要。11:21,12:3-9
  • RAFT:训练模型在有检索文档时回答、忽略 distractor、逐字引用相关文档;胜过纯 RAG 与纯微调。12:13
  • steering(激活引导,来自机制可解释性):稀疏自编码器发现激活空间里有可解释方向(正式语气/技术词汇/拒绝行为);推理时加减向量即可,毫秒级、无需训练。12:17-21
  • steering 优势:风格/语气微调;按请求个性化(同一 base 服务专家与新手);迭代周期从天到秒。12:23-25
  • steering test:「base model 是否已具备该能力?」steering 调制已有行为,不能教新能力。13:3-5
  • 与 abliteration(消除安全特性)同源的危险;工具生态年轻(Goodfire 等),研究级。14:3,7
  • steering 定位:比 prompting 可靠、比 fine-tuning 快,但窄于两者;目前首先是研究/诊断工具。14:5,7
  • 决策框架三问:什么行为不对?什么干预能解决?值不值这个价?最小干预原则。14:11,19
  • 表 2-1 决策矩阵:prompting/RAG/RAFT/steering/fine-tuning × 风格、格式、领域知识、推理模式、一致性、合规、延迟、隐私、维护负担。14:21-141
  • space pencil 现象(太空笔 vs 铅笔;但石墨粉尘在高氧环境易燃——效率不等于有效)。14:143-145
  • 隐藏成本:Llama 4(2025-04)/GPT-5(2025 末)发布即面临重训抉择;经验法则:快速变化领域每 6-12 月一次全量重训。15:3
  • 漂移:世界变了权重没变;监控漂移+刷新数据是持续工作。15:5
  • 机构记忆三件:model cards(Mitchell et al. 2019)、operational runbooks(literate code)、decision logs(ADR)。16:3-7
  • 后训练是独立 scaling 维度:合成数据、RL、推理时计算与预训练增益复合。16:11
  • Anthropic 据传用 Claude 3.5 Opus 生成合成数据+奖励建模来后训练 Sonnet(不发布 Opus)。16:13
  • Meta 在 Llama 2 人类偏好标注上花约 $8-20M,与算力成本相当。16:13
  • 复合示例:base 60% → SFT CoT 72% → 合成数据改善奖励模型 → DPO 81% → 多数投票 88%。16:15
  • Transformer 解剖:RNN/LSTM 两病(长程依赖难、无法并行);Vaswani 2017 Attention Is All You Need;GPT 2018 decoder-only。17:15-25
  • attention=QKV 软查找表;softmax(QK^T/√dk)V;缩放的 dk 防点积过大把 softmax 推进梯度消失区。17:51-57,18:3
  • multi-head:不同头追踪不同关系(句法/语义/位置)。18:5
  • 层分工(probing 研究):早期层=局部句法/表层;中层=抽象句法语义(句法属性峰值在中层);后期层=任务预测,微调时变化最大。18:13-25
  • 类比人类视觉系统 V1→背侧/腹侧流。18:27
  • layer-wise LR decay(discriminative fine-tuning, ULMFiT Howard & Ruder);冻早期层防灾难性遗忘;「问法国首都不是致敬 HF 而是监控遗忘」。18:29-31
  • residual stream 视角:隐状态=所有前层贡献之和;微调单层影响所有后续层;预训练表示被补充而非摧毁。18:33
  • FFN=键值记忆(Geva et al.):W1 行=key 相似度,非线性选择,W2 列=value 取出;微调 FFN=编辑模型存储的知识(「Paris is the capital of France」)。18:45-49
  • ROME/MEMIT:定位存特定事实的 FFN 神经元直接改;仍是研究工具。18:49
  • tokenization:phoneme/grapheme/morpheme/word 层级;神经网络放弃语言学分层因「预设了要理解的东西」;子词切分是统计折中,「happy accidents」。19:9-15
  • BPE:Gage 1994 数据压缩;Sennrich et al. 2016 引入 NMT;GPT-2 起 byte-level BPE。19:19-21
  • WordPiece(Google/BERT,按似然而非频率;## 前缀);Unigram(Kudo 2018,自顶向下剪,可枚举所有切分概率→subword regularization);SentencePiece(T5/ALBERT/Llama)。19:23-25
  • BPE 胜在简单+确定+快。19:27
  • 换 tokenizer:词表扩张(embedding 重初始化;化学 token 有效;但 BERT 加 12k 生物医学 token 无提升);50B token 级继续预训练可整个换 tokenizer 并恢复性能;本书技术范围内 tokenizer 视为固定。20:5,15
  • electroencephalography:GPT-4 切成 6 个 token(elect/ro/ence/ph/al/ography);多 token 概念更难操作。20:27
  • 替代:continued pre-training(AdaptLLM 7B 阅读 comprehension 格式匹敌 BloombergGPT-50B)、entity-aware training(EACL)、RAG。20:9-13
  • symbolic tokenization:Epic CoMET,118M 患者/115B 医疗事件,7105 token 词表表临床概念(时间间隔分箱、ICD-10-CM 片段、ATC 码、LOINC+十分位桶、38 个人口统计 token);预测下一医疗事件。21:5-7
  • VLM:图像切 14×14/16×16 patch 过 vision encoder 投到语言 token 空间;LLaVA 的 占位符替换为 576 个 patch embedding。21:9
  • Token Gestures:HF Tokenizer Playground 实测自己的 tokenizer。22:3
  • 微调几何:N 维权重空间,loss landscape;Li et al.:宽平坦盆地泛化好、尖锐极小泛化差。23:9-11
  • 预训练模型占据盆地状区域;微调=在邻域内找解,约束 ‖θ-θpre‖<r;嵌套能力盆地(数学盆地在语言盆地内)。23:13-17
  • LR 太高逃出盆地(能力崩溃),太低困在局部极小;微调 LR 通常比预训练低一个数量级;同超参不同种子结果差异大。23:19-25
  • 正则:显式(L2/weight decay,EWC)vs 隐式(early stopping,低 LR)。23:27-35
  • 相似任务微调出的模型权重空间区域重叠,插值得双能力模型 → 迁移学习的几何基础;post-training=「last-mile task」。23:41
  • 层学习差异:后层变化大且快(任务适配),前层慢(保通用);Lee et al.:BERT/RoBERTa 只训最后 1/4 层达 90% 全微调性能;<3B 模型冻底部 50% 层可匹配全微调/LoRA,省一半内存、快 20-30%。23:49-55
  • 冻结策略:static / gradual unfreezing(ULMFiT,每 epoch 解冻一层组,自顶向下)/ adaptive(AutoFreeze 按梯度幅度)。23:57-69
  • 只训最后一层:准确率掉 0.5-1.7%。23:71
  • stability-plasticity dilemma(Grossberg 1980);catastrophic interference(McCloskey & Cohen 1989)=catastrophic forgetting。23:77-79
  • 反直觉:1-7B 范围内越大模型遗忘越严重;scale 不是防御。23:81
  • EWC(Kirkpatrick,Fisher 信息矩阵标重要权重);replay buffer 混旧数据;平坦极小遗忘少→sharpness-aware optimization。23:85
  • 遗忘审计:微调前列「必须存活」任务清单进评估套件(例:agent 模型忘了怎么调工具)。24:3
  • base model 选择:open vs closed 表 2-2(control/reproducibility/deployment/privacy/customization/infra/expertise/vendor dependency/成本);OpenAI API 只支持 DPO 和 PPO-like RFT,且只给上一代。25:9-17
  • Tinker(Thinking Machines Lab)=纯后训练即服务。25:15
  • 大≠好:70B 千例 vs 7B 万例(sample efficiency);但推理成本终身伴随;$0.10 vs $1.00/次对话的经济性。Hooker:边界在质量不在规模。25:91-97
  • 许可地雷:Llama 自定义许可(7 亿 MAU 上限)、Mistral Apache 2.0 与其他、Qwen 自有条款;许可会变,逐个审。25:115-125

Ch3 Supervised Fine-Tuning (27-48)

  • LeCun 蛋糕比喻(NIPS ~2016):蛋糕体=无监督,糖衣=监督,樱桃=RL;「当前 AI 蛋糕的美味多来自糖衣和樱桃」。SFT=workhorse。27:5
  • 数据质量>模型规模>超参>算力;1000 条精选胜过 10000 平庸。「You cannot out-algorithm poor inputs」。27:7,31:3
  • teacher forcing:每个位置都条件在真值 token 上→可并行一次前向;代价=推理时条件在自己不完美的输出上→compounding errors,模型从未练习从自己的错误恢复。28:13
  • causal=方向受限(不能看未来),不涉及因果;对比 BERT masked LM。29:3
  • cross-entropy:loss 2.3→正确 token 平均概率≈0.1;1.8→≈0.165(置信+65%);perplexity=exp(loss)。29:7-11
  • completion-only loss:只在 response token 上算损失。29:13
  • AdamW:逐参数自适应 LR(按历史梯度幅度反向缩放);W=decoupled weight decay(权重衰减与梯度更新解耦)。30:19-21
  • LR:预训练 1e-41e-3,微调 1e-61e-5;cosine decay with warm-up。30:23
  • Optuna 贝叶斯 HPO;六小时 Optuna 胜过浪费数周 GPU。30:27-29
  • 多次 SFT 级联:窄能力用比宽能力低至少一个数量级的 LR(留在宽能力盆地内)。30(vc):9
  • batch size:大批=梯度估计准但倾向尖锐极小(泛化差);小批噪声大但找到平坦极小。30(vc 文件30 实为 ch03):15 —— 实际在 30-fm...:15
  • 激活内存≈线性于 batch size;gradient accumulation 数学等同大批。30:17-19
  • batch size 不必 2 的幂;要整除:全局 batch=设备 batch×累积步×设备数。30:21-23
  • sequence packing:拼接短例省 padding,需 attention mask 防串例;TRL SFTTrainer 一个开关。30:27-31
  • packing 时按 token 计损 vs 按例计损。30:33
  • 「Legendary teams start with a hundred solid examples」;slop 的产生机制=平庸数据规模化。32:3-5
  • 披萨法:人工筛几百条超高质量子集建立「好数据长什么样」。32:7
  • 10000 历史邮件 vs 1000 精选:精选几乎必赢。「Data is not our guide; it is our tool」。32:9-11
  • baby baseline(HF):100 例 1 epoch 先验证管道/格式/评估;再 vibe testing(读 20 个 prompt 的输出)。33:3-7
  • chat template:格式不匹配是微调失败最常见原因;HF apply_chat_template + Jinja。33:11-15
  • ChatML 与 Llama 3/4 模板样例。34:7-24
  • 去重:同例出现 10 次=10 倍梯度信号→记忆而非泛化;MinHash(Jaccard)/SimHash/embedding 语义去重(医学同义实体)。34:28-34
  • 污染检查:训练/评估重叠→测的是记忆。34:36
  • 数据三来源:专家标注(gold-standard 种子集,几百条)、受训标注员(校准+反馈回路;善待标注员)、合成生成(靠通过率定效率)。34:40-44,35:3-5,35:9
  • instruction backtranslation(Humpback):反向生成「什么 prompt 会引出这段文本」。35:17-19
  • LIMA:65B 只用 1000 精选例可比肩多几个数量级数据。35:23
  • Distilling Step-by-Step(Hsieh et al.):蒸馏推理过程而非只蒸馏答案。35:27-29
  • TinyStories(受限词汇合成故事);Textbooks Are All You Need:phi-1 1.3B HumanEval 50%。35:33-35
  • 「教科书式合成数据」结构本身携带信息。36:3
  • Toolformer(自监督学调 API,只留改善预测的调用);Gorilla(检索感知训练,API 文档进上下文,减少幻觉);ToolLLM(DFSDT 决策树,16k API/49 类)。36:7-11
  • 合成数据风险:放大生成器偏差,「confidently reproduce their teacher's mistakes」。37:3
  • 训练循环:forward→loss→backward→optimizer.step→zero_grad;TRL SFTConfig 样例(lr=2e-5, cosine, warmup 0.1, 3 epochs, bf16, grad ckpt)。38:15-80
  • 内存四件:参数+梯度(同参)+优化器状态(Adam=2×参)+激活;fp16/bf16 全微调≈16B/参数;7B≈112GB。38:88
  • fp16 vs bf16:10 尾数/5 指数 vs 7/8;bf16 动态范围=fp32,训练稳;A100/H100/Blackwell 默认 bf16。38:90
  • HF 生态=事实标准;Axolotl/LLaMA-Factory=配置驱动;自定义循环只在框架不够时。38:94-98
  • Unsloth:Triton 内核,2× 速度 -70% VRAM,A100 的活 RTX 4090 能干;Axolotl:YAML 配置,底下是 TRL/Accelerate,可与 Unsloth 叠加。39:9-21
  • 监控最低集:train loss/val loss/LR/grad norm/throughput;W&B report_to="wandb";SamplingCallback 定期采样生成做 vibe check。39:23-29,40:3-72
  • 分布式:DDP(数据并行,all-reduce);模型并行/pipeline;DeepSpeed ZeRO 与 FSDP 分片参数/梯度/优化器状态(7B 80GB→4×24GB);ZeRO-Infinity NVMe offload。40:78-102
  • 分布式独有故障:死锁、梯度同步 bug 静默发散、一卡 OOM 全崩;先单卡跑通再上分布式。41:3
  • 成本三类:compute(7B/10万例/3 epoch≈10-20 A100 GPU时,$20-50)/storage(检查点 TB 级)/人力(主导;专家标注可比算力贵一个数量级);spot 省 70%。41:11-19
  • Always Be Costing:事后看账单的习惯;B200 跑 3B LoRA 的糗事。42:3-5
  • loss 曲线诊断表 3-1:不降(LR 低/数据 bug/格式错)→LR×10;狂抖(LR 高)→÷10;突刺(数值不稳)→grad clip;缓升(遗忘);train↓val↑(过拟合);train≈0(记忆);双双早平(欠拟合)。43:11-67
  • train loss 近零=警报不是成功。44:3
  • 验证集必须像部署分布;时间分离;评估频率预先固定。44:7-11
  • 验证层级(便宜→贵):loss 曲线(秒)→抽查生成(分)→50 个多样 prompt(小时)→对比测试(小时)→正式评估(天-周);多数失败在 1-3 层被捉。44:17-21,45:69-81
  • 指标表 3-2:perplexity/exact match(结构化任务 80-95%)/ROUGE-L(F1>0.5)/BERTScore(F1>0.85)/格式有效性(95-100%)/embedding 相似度(cos>0.7)。45:11-67
  • 检查点:最好的常不是最后的;7B ckpt≈14GB fp16,70B≈140GB;save_total_limit 3-5;early stopping 时保留数≥patience。45:87-93
  • SFT 够用的判据:「我能为这个输入写出完美回答吗?」能→SFT;「我看到好的能认出」(Lemon test)→需要偏好建模/RL。46:9-11,47:3
  • SFT 数据收益≈对数曲线;plateau 两种含义(够了/到顶了)。47:7-11
  • Matsutani et al.:SFT 扩展正确推理路径空间但也保留错误路径;RL 压缩错误路径但也减少正确路径 → 先 SFT 后 RL 的非对称互补。47:17
  • 毕业到 RL 的症状:格式对、话题对,但缺说服力/优雅/洞察等「认得出演不出」的品质。48:3

Ch4 Reinforcement Learning: Better Each Time (49-59)

  • CoastRunners(OpenAI 2016):agent 在泻湖打转撞标靶,着火、从不完赛,得分比人类高 20%。「did exactly what researchers asked, and nothing that they wanted」。49:5-7
  • RLHF 核心 insight:不必显式指定偏好,只需认得出来。49:7
  • 两条研究流:RL(Atari/AlphaGo,奖励明确)+ 自动指标(BLEU/perplexity)与质量弱相关。Christiano et al.→Ouyang et al. InstructGPT。50:7-13
  • 判断的经济学:识别 vs 生成是不对称的认知操作(选择题 vs 填空题);专家示范 $50-100/时、单例 30 分钟;InstructGPT 约 40 标注员、约 13,000 demonstration 对;偏好比较 30 秒一对。51:3-9
  • on-policy(PPO:训练数据由当前 policy 生成,可探索)vs off-policy(DPO:从固定数据集学,便宜)。51:13-23
  • on-policy 代价:训练中生成贵(自回归串行)、分布持续移动、value function 追移动目标;PPO 需同时跑三个模型(policy/reference/reward)+value head≈3× 内存。51:27-29
  • 三阶段流水线:D={(x, yw, yl)}(chosen/rejected)→Bradley–Terry 训 reward model rϕ→PPO 优化 policy + KL 约束贴住 πref。51:35-41
  • reward model 不只是代理:它把偏好变得可微;「reward model quality is the secret mathematical heart of all preference optimization」。51:39
  • 偏好数据是质量天花板;InstructGPT 从被训模型的各 checkpoint 采样;UltraFeedback 从多模型采样(分布可能不匹配)。52:9
  • 信息最多的比较是两个都看似合理;明显坏例教不了细微差别。52:11
  • 罗马角斗士=早期 unpaired preference(注意:thumbs-up 当时=处死);pairwise 主流。52:15-17
  • 绝对评分有校准漂移;相对 pairwise 认知负担低。52:19
  • Anthropic 对齐数据集标注员间一致率约 63%——主观价值判断的可接受下限。53:3
  • 标注工具:Argilla(HF 开源)/Appen(企业,多模态)。53:9
  • gold standard 校准标注员;Cohen's kappa κ=(po-pe)/(1-pe),>0.7 实质一致,<0.4 该修指南。53:23-27
  • honeypot/golden set 检查;adjudication。53:29
  • helpful vs harmless 分开收(Anthropic);Safe RLHF 训两个 reward model 分开平衡。53:17
  • 数据量:InstructGPT RM 约 33,000 对;现代几十万;多样性>规模。53:35
  • red teaming 补均匀采样漏掉的失败模式。53:37
  • 偏好分布漂移:policy 超过偏好数据水平后 RM 分数不可靠 → online preference collection。54:3
  • prompt 池训练/评估必须分离。54:5
  • Constitutional AI:AI 按原则批评并修订,修订版=preferred。54:7
  • GPT-4 直接打偏好标签(UltraFeedback);AI 裁判与被训模型共享盲点;混合法=AI 为主+人验边缘。54:9
  • Bradley–Terry(1950s 锦标赛分析):p(yw≻yl|x)=σ(r(x,yw)-r(x,yl));σ(0)=0.5;损失=-E[log σ(差)]。55:7-17
  • 10 个标注员 10 种「7 分」校准;成对判断一致性高。55:19
  • shift invariance:损失只看差值,加常数不变 → 欠定;绝对尺度任意。55:27-31
  • Eisenstein et al.「Helping or Herding?」:underspecification——同分布精度相同的两个 RM 在分布外给出截然不同奖励;集成缓解但不消除(共享盲点)。55:33-37
  • reward centering:r̃=r-E_{πref}[r],锚定零点;或 whitening/自适应 KL。55:39-43
  • reward hacking:模型学会拿高奖励但没变好;与过拟合不同——它真学了新东西,只是学错了任务;misspecified objectives。55:47-49
  • Goodhart 定律的限定:仅当「测度与目标不同」才成立;可以设计出不留旁路的奖励。55:51
  • length bias:RM 偏好长回答;监控长度分布、length-controlled 比较、length penalty(长度须由 correctness 背书)。55:55
  • 防御纵深:KL 约束+RM 集成+持续人评;都不完备,目标是管理而非消除。55:57-59
  • RewardTrainer:chosen/rejected 字段;RM 从同一 base model 初始化加 scalar head;center_rewards_coefficient;LoRA 的 modules_to_save=["score"]。55:63-99
  • RM 指标=accuracy,>70% 经验线;完美准确率可能=过拟合表面特征;σ(1.0)≈0.73。55:103-105
  • policy gradient 直觉:迷宫机器人,不需知道最优动作,只需知道哪些动作结果好。56:7-9
  • REINFORCE/策略梯度定理:∇J=E[∇log π(a|s)·Gt]。56:13-19
  • 高方差问题:全为正奖励则全被强化;baseline 减法→advantage (Gt-b(st)),不引入偏置(只依赖状态)。56:21-27
  • PPO clipped surrogate:rt=πθ/πθold 裁到 [1-ε,1+ε],ε 常 0.1/0.2;min 取下界;「improve, but not that enthusiastically」。56:35-43
  • KL 约束双职:限 reward hacking 探索范围 + 防遗忘;β 太高不动、太低漂;自适应 β 维持目标 KL。56:47-63
  • KL 非对称:KL(π‖πref) 重罚 reference 不会的输出;JS 散度偶尔用。57:3
  • PPO 超参表 4-1:LR 1e-6~5e-5(起 5e-6)、β 0.01-0.1(起 0.02)、clip ε 0.1-0.3(起 0.2)、batch 32-512(128)、minibatch 4-64(16)、GAE λ 0.9-1.0(0.95)、epochs 1-10(1-4)、entropy 0-0.01、value coef 0.1-1(0.5)。57:9-89
  • RLHF 的 LR 比 SFT 低一个数量级。57:91
  • GAE λ≈0.95 是行业标准;entropy bonus 防 mode collapse。57:93
  • PPO 实践:生成(慢,自回归)与优化(快,可并行)交替;missing_eos_penalty 防模型逃避 EOS 拖长回答。57:97-140
  • 监控:objective/scores 升、objective/kl 适度;KL 健康区间 3-10。57:142,220
  • PPO 失败模式表 4-2:policy collapse(高奖励无意义输出→紧 KL/RM 集成)、不稳(降 LR/增 batch)、KL 爆炸(增 β)、KL≈0(减 β/增 LR)、length gaming(长度罚)、截断(missing_eos_penalty)、mode collapse(entropy bonus)。57:144-208
  • 调试顺序:先查 RM(随机采样打分)→查 KL→读输出。「Staring at loss curves tells you something is wrong, but reading outputs tells you what」。57:214
  • 指令跟随=奖励优化问题;RLHF 突破 SFT 示范天花板。58:7-13
  • HHH 框架(Askell et al.):helpful/harmless/honest 互相冲突;儿童发烧例子(阿司匹林/Reye 综合征)。58:21-31
  • 权衡由偏好数据的构成决定:偏好谨慎→模型过度 hedge。58:33-35
  • 前沿经验:RLHF 稳定提升 helpfulness/指令跟随;减少有害输出更难(对抗性用户);可复现性差(超参小变化→行为不同)。58:41-49

Ch5 Preference Optimization: Modern Alternatives to PPO (60-72)

  • 章首两轶事:Stanford 2023 DPO 论文「relief was near universal」;DeepSeek 被出口管制卡在 A100 以下,工程黑客逼出 GRPO→R1「Sputnik moment」。60:5-7
  • 偏好优化=性能+速度+可行性的协调问题。60:9
  • DPO 把困难从基建搬到数据质量;KL 约束奖励最大化的最优策略有闭式解 π*(y|x)=1/Z(x)·πref·exp(r/β),可逆 → r=βlog(π*/πref)+βlogZ;代入 Bradley-Terry 后 Z(x) 抵消——「这是 DPO 成立的全部原因」。61:9,62:19-37
  • DPO 并非消灭 RM,而是使其隐式:policy 的概率比就是奖励。62:3
  • DPO 训练像 SFT:无 RM、无训练中生成、无 value function;β 典型 0.1-0.5(起 0.2);LR 1e-6~1e-5(起 5e-6,低于 SFT);epochs 1-3。62:74-146
  • ref_model=None 时 TRL 自动冻结副本;内存=2× 模型;PEFT/LoRA 解法(base 只载一次)。62:68,63:3-27
  • DPO 三局限:①policy class 表达能力(4096 窗奖励不出 10k 记忆)②reference 依赖(参考模型对数据赋极低概率→大负数差→数值不稳;解法=偏好数据对齐参考分布/过滤)③distribution shift(离线学不到新情境;解法=coverage/混合在线)。63:35-51
  • Meta 经验:DPO「does not scale as well as PPO」冲极限能力时,转向 RLAIF;40 万+ GPU 时研究:算法选择决定天花板,细节只决定逼近效率。64:3-7
  • KTO(Kahneman-Tversky/prospect theory,诺奖):unpaired 数据(thumbs up/down);loss aversion 损失厌恶(丢 $10 比赚 $10 更痛);λ_undesirable 1-2;参考点 zref=全数据集平均对数比,防「全部概率一起抬」的平凡解。65:3-33
  • KTO 数据灵活:专家金标准(无负例)+失败案例可混用;现有反馈日志直接可用;有成对数据时与 DPO 相当,大尺度可超。65:37-43
  • 隐式信号风险:交互时长可能是困惑而非满意;假设要文档化。66:5
  • GRPO:每 prompt 采 G=4-16 个补全,组内均值当 baseline——value network 消失;Âi=(ri-μG)/σG;组合 PPO clipping+KL。67:3-43
  • 归一化例子:prompt A 奖励 8,7,9,8 与 prompt B 3,2,4,3 → 优势同为 +0.7,-1.0,+1.4,+0.7(均值 8/3,std 0.7),两 prompt 对梯度贡献相等。67:43
  • G 的权衡:4=便宜噪声大,16=稳但贵。67:49
  • DeepSeek:R1 无 SFT 直接 RL,质疑 SFT→RL 传统。67:9
  • GRPO-LEAD:长度依赖奖励(5 步可解的题 15 步解法降奖励)、显式错误答案罚(区分「全坏」与「大多好」组)、难度感知优势重加权(90% 会做的题信号是噪声,30% 会做的题最有空间);14B 规模 SOTA。68:3-11
  • IPO:治 DPO 在强偏好对上梯度无界(σ(-βΔ)→1 推 Δ→∞)导致逐对过拟合;改平方误差 ((Δ-1/2β)²),超过 margin 后梯度封顶。69:7-19
  • ORPO:SFT+NLL 与 odds-ratio 偏好罚合并一段,免参考模型(省一半内存);λ 平衡。69:23-57
  • SimPO:免参考模型,长度归一化序列概率+目标 margin γ;治 DPO 偏短偏差。69:63-69
  • 选型是匹配问题不是排名问题;on/off-policy 四维度:exploration/distribution shift/compute/data。70:3-25
  • 表 5-2:PPO(online,需 RM+value net,最贵,最敏感)/DPO(offline pairwise,隐式 RM,最便宜)/KTO(offline unpaired)/GRPO(online 组采样,需 RM 免 value net,中等)。70:31-141
  • 基准结论:数据质量主导算法选择;控制实现质量后 online 一致优于 offline(分布漂移);DPO vs PPO 置信区间重叠。70:155-161
  • 「The burden of proof should lie with complexity」;DPO 默认, demonstrably 失败才上 PPO。70:163,71:3
  • 混合管道:DPO 打底+PPO 精修;iterative DPO(自生成新偏好);GRPO+constitutional AI 合成偏好。71:9-11

Ch6 Evaluation Strategies (73-91)

  • 评估难是结构性的:「The cat sat on the space shuttle」vs「vmslkrmw」错法有层次;可算指标与所求弱相关,Goodhart 格外毒。73:5-7,74:7-11
  • 开发者也会 Goodhart:用 perplexity 决策的团队会做降 perplexity 但不提质的选择;「The metric shapes the behavior of the humans doing the development」。74:19
  • 防御=评估多样性(多指标/轮换评估集/持续人评)。74:21
  • artificial hivemind:RLHF 相似偏好数据→输出多样性下降。74:23
  • metric triangulation:自动(快)+模型评判(细)+人评(真);三者同升才算真进步;发散本身是最重要信号;「你最不信的那个指标常揭示别人藏住的真相」。75:3
  • 评估栈表 6-1:自动(秒,近零成本,每 checkpoint)/模型评判(分,中,候选过滤)/人评(时-天,高,部署决策)/A/B(周,生产真相);经验比 1000💯10。75:9-59,76:3
  • BLEU(n-gram 精度+brevity penalty)/ROUGE(recall;ROUGE-L 最长公共子序列)/METEOR/BERTScore(embedding 余弦,治换词)/chrF。76:13-67
  • token 级指标需要 canonical 参考;开放任务低分可能只是「不像参考」而非不好。77:3
  • perplexity=exp(平均负对数似然);PPL 20=每位置像在 20 个等可能 token 里均匀猜;测流畅不测真实;API 不给概率就算不了。77:7-9
  • pass@k:至少 1/k 过单测;all-k=一致性;HumanEval 164 题(Codex 2021 28% → 2025 前沿 >90%,饱和);MBPP 974;HumanEval Pro:96%→76% 揭虚高。77:13-61
  • RAG 评估:检索(context relevancy/precision/recall)与生成(faithfulness/answer relevancy)分开;RAGAS/DeepEval/TruLens。77:65-121
  • 安全:Perspective API(6 维,2026 底停服)/Detoxify/RealToxicityPrompts(99k)/ToxiGen(274k,13 群体)/DecodingTrust。77:125-167
  • 公平:demographic parity/equalized odds/calibration 互相权衡;AIF360(71 指标);BBQ/CrowS-Pairs/Wino-Bias。78:7-15
  • LLM-as-a-judge:judge 至少与被评模型一样强;同族评判=共享盲点;评分 prompt 四件(明确标准/内容/判断表达格式/校准示例);CoT 先理后评证据不一。78:19-27,79:3-5
  • judge 偏差:长度、风格匹配、位置(交换位置重测)、置信、自-enhancement;缓解表 6-6;金标准=定期对人评校准。79:49,80:3-29
  • GPT-5 案例:基准全优但用户要 4o 回来;「Benchmark improvement is not the goal; user satisfaction is」。81:3
  • coding agent 适合编排 eval 管道,但「orchestrator, not the evaluator」;CI/CD 评估应集中管。82:3-19
  • 基准动物园表 6-7:MMLU(57 域,饱和中)/HellaSwag/ARC/MT-Bench/AlpacaEval/TruthfulQA(测常见误解)/HumanEval/GSM8K(8500 题,污染有据)。83:7-87
  • 选择题格式:识别≠生成,识别高估真实知识。83:83
  • 基准生命周期:创建→饱和→替换;必要但不充分。83:85
  • 污染:常非故意(网络爬取混入);检测=模糊去重;预防=时间切分/私有留出集;Artificial Analysis 这类 evals-as-a-service 的价值=持有不可游戏的留出集。84:3-5
  • red-teaming 是猫鼠游戏,安全评估永不完成;「停止找问题的组织只是找不到了」。84:23
  • 人评协议:模糊指令=每人自创标准;绝对评分 vs pairwise vs 排序;二元 vs 细粒度。85:7-9
  • 一致率统计:%agreement 误导、Cohen κ(>0.6 实质)、Krippendorff α(多评估者+序数层级);60% 一致率下 55% vs 50% 胜率差异在噪声内。86:9-13
  • 人评成本:单次成对比较 ≥$1;策略=高风险决策才用/模型评判校准人评/active sampling 聚焦有分歧的 prompt/高效标注界面。86:17-21
  • 外包客观性:Artificial Analysis;「It's never about the state of the art, but about the state of your art」。86:25-29
  • 自建基准:任务规格/分布覆盖/标准映射业务价值/版本控制。87:9-11
  • living benchmark:50-100 例起步,每次部署周期加入暴露弱点的真实失败;一年内长成精准资产;要严加看管。88:3
  • 泄漏路径:显式重叠/看评估失败改训练数据/用评估例做 prompt 工程/看结果定 early stop;防御=先建评估集、隔离存储、访问控制、时间切分。88:9-11
  • 回归测试:已知相关能力重点测+广泛采样;意外的提升也要查(可能是分布漂移)。88:15-19
  • A/B:随机化、样本量公式 n=2(zα/2+zβ)²σ²/δ²;例:σ=0.8(5 分制),δ=0.1,80% power,α=0.05→每组≈1003,总 2000。89:9-11,90:3-13
  • 多重检验(20 指标 p<0.05 → 期望 1 假阳性;Bonferroni/FDR/预定主指标);peeking 膨胀假阳性(sequential analysis 调整)。90:15
  • 用户说 vs 做:置信度被误认为准确;近因偏差;偏好+行为结合,分歧本身有信息量。90:17-23
  • 总结:评估是 discipline 不是 gate;「停止评估的组织不是成功了,只是停止寻找失败了」。91:13-15

Ch7 Efficiency Techniques: Quantization and Compression (92-110)

  • 章首:1990s 欧洲 demo 亚文化(几 KB 可执行文件做演示)→约束激发创新。92:5
  • 精度阶梯:fp32 7B=28GB;fp16 65536 值;bf16(Google Brain,保 fp32 指数范围);int8=256 值;int4=16 值「works surprisingly well」。93:7-17
  • NVFP4(Blackwell/Vera Rubin;E2M1=1 符 2 指 1 尾,16 值,±6 范围,per-block scaling);比 FP8 快 3.6×,省电。93:21-25
  • NF4(bitsandbytes,QLoRA 用,针对权重正态分布)≠ NVFP4(推理向)。94:3
  • BitNet(微软):三元 {-1,0,+1} 原生训练,乘加变加法;不能事后量化到 1 bit。94:5
  • PTQ 两族:校准(GPTQ=逐层优化最小重建误差,二阶信息;AWQ=激活感知,保护乘大激活的权重;128-512 样本,几分钟)vs 免校准(LLM.int8 处理 outlier;NF4;HQQ 半二次求解)。94:19-29
  • 免校准落后校准 1-2 个百分点,bit 越低差越大。表 7-1:7B 内存 FP16 14GB / int8 7GB<1% / HQQ 3.5-7GB 1-3% / GPTQ 3.5GB 1-2% / AWQ 3.5GB <1% / FP8 7GB<0.5% / NVFP4 3.5GB 1-2%。94:31-131
  • 70B:fp16 140GB→4bit 35GB。94:131
  • QAT:训练中模拟量化;rounding 不可微→straight-through estimator(前向用量化权重,反向假装没量化,更新全精度主权重)。94:135-137
  • 基础实验室规模:3D/5D 并行;MFU 差 5%=百万美元;10 万上下文时 attention 内存主导。95:3
  • GGUF(llama.cpp):单文件=权重+tokenizer+元数据;命名 Q{bits}{method}{size}:legacy Q4_0/Q4_1/Q8_0;K-quants(2023 中,不同 tensor 不同位深,S/M/L);IQ(imatrix 校准,IQ2_XXS 2bit 可用;IQ4_NL 非线性网格)。95:11-33
  • 表 7-2(7B):Q2_K 2.7GB 差 / IQ2_XXS 2.1GB 可用 / Q4_K_M 3.9GB 推荐默认 / Q5_K_M 4.7GB 最佳平衡 / Q6_K 5.5GB 近无损 / Q8_0 7GB 事实无损。95:37-137
  • 选型启发:放得下(留 KV cache+上下文)的最高位深;同位深选 _M;内存紧降 _S 而非升 _L;极限用 IQ。95:139
  • 网上的 GGUF 不都可信:找官方或公布方法与 PPL 的社区量化者。96:3
  • 量化验证:PPL 是第一道防线(4bit 升 0.1-0.5 正常,>1.0 要查;llama-perplexity);PPL 由常见模式主导,恰恰漏掉罕见难预测的能力;任务基准+LLM-judge 头对头。96:13-31
  • 量化质量门(CI/CD):PPL 阈值(+0.5)→基准回归(<3%)→任务验收;阈值按部署需求定(闲聊 vs 急诊分诊)。97:3-11
  • LoRA:微调权重变化低内蕴维度;ΔW=BA,d×k→r(d+k),可省 100×;7B 只有 10-100M 可训;r 典型 4-64,默认 16/32。98:7-15
  • rank 选择:默认 16;格式任务 4 够;复杂领域迁移 64。99:3
  • QLoRA:base 4bit NF4 加载+LoRA 高精度训练;乘法效应 8×内存 × 100×参数;30B@24GB,70B@48GB;double quantization(量化量化参数)。99:7-11
  • Unsloth Llama-3.3-70B 示例:140GB→约 40GB;target_modules 全投影(q,k,v,o,gate,up,down);use_gradient_checkpointing="unsloth"。99:15-39
  • QLoRA 革命:70B 微调从几千美元/小时的 A100 到几百美元 24GB 卡;「QLoRA 调的 70B 通常赢全量调的 7B」。100:3
  • DoRA:权重分解为幅度 m+方向 V,只对方向做 LoRA;基准 +1-3%;use_dora=True。100:7-11
  • soft prompt:prompt tuning(只输入层,>10B 匹配全微调)/prefix tuning(每层加 KV,<0.1% 参数,经 FFN 防不稳,低数据强)/P-tuning(任意位置插,biLSTM 生成)。100:15-39
  • soft prompt 适用:一个冻结模型服务多任务,每任务几 KB;不可解释是代价。100:39
  • PEFT 表 7-3:full/LoRA/QLoRA/DoRA/AdaLoRA(SVD 重要性分配 rank)/LoHa(Hadamard 积 rank 可到 r²,图像)/LoKr(Kronecker,结构保持)/经典 adapters(瓶颈层,不可合并,有推理延迟)/IA3(逐元素缩放 0.01% 参数,只能放大抑制已有特征)。100:45-219
  • 默认 LoRA;有证据不足才换。101:5
  • 模型合并:线性插值 W=αWA+(1-α)WB;TIES(剪小变化+符号多数表决);DARE(随机丢弃变化);task arithmetic(权重空间向量加减,「coding direction」+「writing direction」);合并不了根本冲突(极谨慎+极有用)。101:9-13
  • 蒸馏:软标签携带相似性结构(dog 0.9/wolf 0.05/coyote 0.02);hard label 丢掉这些。102:9
  • 蒸馏损失=T²·KL(softmax(zs/T)‖softmax(zt/T));T=3-10,默认 4;<3 太尖,>20 太平;T² 补梯度缩放。102:23-31
  • feature/attention distillation 匹配中间表示。102:19
  • 学生超不了老师;差距太大(1B 学 70B)只学到表面;适度差距最好(7B←70B);multi-teacher 可在特定维度超过任一老师。103:3-5
  • 何时蒸馏:部署约束挡佳最佳模型+有强 teacher;窄任务直接 SFT 更省。102:35-37
  • 剪枝:训练网络大多冗余;幅度剪枝(小权重贡献小,但小权重×大激活可能重要);结构化(整神经元/头/层,映射到密集计算);迭代剪枝+重训;Transformer 常可去 50%+ 参数。104:9-13
  • 稀疏要硬件能利用:非结构化稀疏可能更慢;N:M(2:4,Ampere+ 原生,约 2× 速度);block sparsity。104:17-27
  • lottery ticket hypothesis(Frankle & Carbin 2019):dense 网络含「中奖票」子网络;实际要先训全网络;与 LoRA 低维子空间成功的联系。104:31-35
  • serving:vLLM PagedAttention(虚拟内存式 KV cache 页表,消碎片);TensorRT-LLM;HF TGI(continuous batching/streaming)。105:9
  • FlashAttention:不实体化中间矩阵(平方内存),tiling 留 SRAM,2-4× 快;FA2/FA3;Blackwell 上 cuDNN9 SDPA 快于 FA2,FA4 再快 20%;DGX Spark GB10 上 FA4 可能不稳。「Always benchmark on your target hardware!」105:11,106:3
  • continuous batching(token 级管理,完成的槽立刻补新请求);speculative decoding(小 draft 模型猜 5 个 token,大模型并行验证,对则一次进 5 步)。107:9-13
  • 硬件分层:GB200 数据中心 / 2×RTX4090 跑 4bit 70B(48GB) / CPU llama.cpp / 边缘;路由可用小分类器自动分派。107:19-23
  • FunctionGemma(280M,专做函数调用);2B 4bit≈1GB;WebLLM(WebGPU 浏览器内)。107:27-29
  • smallest viable model:别从「刚好放得下」的最大模型起步;100 token 上下文的「放得下」不可部署;500M vs 7B 的差距对受约束任务(抽取/分类/函数调用/简单 QA)常可忽略。108:3
  • 优化栈可组合:4bit 量化+QLoRA+continuous batching+speculative decoding;4bit 保 95%+ 能力。109:5-7
  • 总纲:网络冗余+精度富余=机会;效率=战略灵活性(新 base 出来能快速量化适配)。109:9,110:3

Ch8 Domain Adaptation: Make It Yours (111, 单文件 312 行)

  • 模型知识不均且自己不知道(不像人知道缺口);信心是普遍的,知识不是。111:5
  • 心脏病例子:外行惊艳、专家皱眉;混淆药物类别、引用过时指南。111:7
  • 问题不是能力是 specificity;MRI「flow void」=有血流出所以无信号——字面理解会反。111:9-11
  • fluently clueless:广度以深度为代价;Wikipedia 几千字讲心脏病 vs 心脏病专家数年经验;tacit knowledge 无法进训练数据。111:21-23
  • 立场声明:不是说模型「理解」医学;目标是让输出不只 plausible 而且 correct;writing like vs writing as a cardiologist;reasons like a cardiologist 的模型输出更可能对、更被专家信任。111:25-27
  • FOGBANK:热核武器部件,冷战后十年失传,花五年数百万美元逆向工程——机构知识流失的代价。111:31
  • 机构知识三形:explicit(文档)/implicit(系统结构与决策模式)/tacit(会做说不出);竞争者下载不到。111:35
  • 捕获专长:别叫专家写尽他们所知(没用),用 RL/DPO 让他们判断;作者亲历:金融程序项目,专家们(正是写手册的人)一致偏好以某种方式解决手册歧义的回答——判断与产出是不同的认知过程。111:41-45
  • 监管:要求不可谈判且不可外包(责任在部署方);「One does not have to be a bird to be an ornithologist」。111:51-57
  • continued pre-training:术语/时效/风格三种领域错配信号;数十亿 token、几千到几万 GPU 时;Parmar et al. 配方(NVIDIA Nemotron)≈28 亿 token。111:61-71,137
  • 表 8-1 策略阶梯:prompting(零)/RAG(文档,低)/领域 SFT(几百-几千例,中)/continued pre-training(数十亿 token,高)/领域 RL(专家偏好,很高)/全管道(受监管领域,最高)。111:75-131
  • 语料质量:内部文档/行业出版/领域网页(需过滤)/专有库;OCR 坏文本、样板重复、子领域失衡都是坑。111:139-141
  • 防遗忘:data mixing(起点 70% 领域/30% 通用;混合比=「mini-learning rate」)+降 LR+正则/蒸馏回原模型;只盯领域指标是常见错误。111:145-155
  • show don't tell:专家的贡献不是答案对(教科书就行)而是 taste/method/judgment。111:159
  • 专家标注 vs 合成+专家验证 vs active learning。111:165-169
  • Vibe Check 领域课程:CPT/HCPCS 医疗编码,从通用 prompt 到 beginner/intermediate/advanced 课程式生成;可验证领域给 coding agent 配 verifier(regex 就够)。111:173-187
  • QA:10% 错误数据→相应频率的错误输出;一致性检查(同情境矛盾建议);覆盖分析。111:191-195
  • 专家时间是瓶颈:用专家验证而非生成、先过滤再审、批量相似决策。111:199
  • 风格即实质:格式合规是硬要求(专利局/内部 house style);训练中一致才生成一致,但要变化措辞防死记。111:205-209
  • 领域 reward model:放射科医生 vs 外行对「好报告」判断不同;SFT 打底+领域 RL 精修,可超过示范质量。111:217-221
  • 合规作为奖励信号:「clear and not misleading」这类标准无法规则化编码,但人能判断→偏好优化;合规 RL 可融合多位合规专家判断,比任何单个专家更全面一致。111:225-231
  • 反馈飞轮:部署暴露弱点→反馈基础设施(人要愿意用)→tiger team(领域+ML+UX);KTO 适合单信号。「The feedback you don't gather has no chance to improve your model」。111:235-243
  • 验证五层「Hollandaise」(因配料数命名;扩展版 Bearnaise 加 rubric 检查/语料 BLEU/短 hard negatives):①领域 PPL delta(gate 非 grade)②遮盖领域术语的 token 级准确率(按频率分层看真学还是死记)③结构化抽取 P/R/F1(ground truth 无歧义)④强制选择辨别探针(「Trastuzumab targets HER2 vs HER3」,领域版 Winograd)⑤校准(ECE/Brier,知道自己知道什么)。111:257-267
  • Stephen Schwartz 假引证案本可用 LexisNexis 扫一遍避免;法律案例可用 headnote 核验。111:269
  • 实验性部署:canary(好的金丝雀用户是培养出来的不是找到的;要有用且有代表性,两者不常共存)/holdout 组(约 10%,做样本量计算)/渐进铺开/AB/回退机制。111:275-287
  • 「你 2024 年微调的模型是 2026 年的遗留系统」;模型=持续的资产,像车一样定检;文档/可见性(registry/ModelOps)/监控(预设评估)/维护与退役预算;应急比计划维护贵。111:291-299
  • 领域适配不是项目是持续能力。111:309

Ch9 Agentic Models: Deeds, Not Words (112-124)

  • Searle speech acts:计算中 words are deeds。112:5
  • agentic model:计划、调工具、跨交互记忆、多步推理追目标。112:7
  • Dikika 洞穴(埃塞俄比亚):340 万年前石器割肉痕迹(2010 认定)——最早工具使用证据;工具使用者眼中的世界=「什么工具能让我做到」。113:7-9
  • 函数调用协议:JSON schema 定义工具;模型生成结构化调用;基础设施解析/验证/执行/回注;「模型表达意图,基础设施决定许可」。113:13-17
  • 工具调用难在交错生成:文本→结构化 JSON→让渡控制→读回不可预测的结果→续写;每个切换都是失败点(坏 JSON/错参数/无视工具结果而幻觉);模式切换全靠特殊 token 信号。113:25-33
  • 好消息:基础模型已是胜任的通用 tool caller;企业微调=教它认你的专有 API,而不是从零教机制。113:35
  • Claude Code 系统提示示例:工具定义在用户 prompt 之前——「agent 先知道自己的能力再看到问题」。113:41-55
  • progressive disclosure:工具太多污染上下文,按需揭示;服务器端 tool search 写作时多为 beta。113:57
  • 好工具描述三问:做什么/何时用何时不用/参数怎么给;xlam 例子 light_travel_time(名字指结果不指过程/soft context/类型约束/默认值)。113:59-83
  • 语义三分:tool calling(一般)>function calling(JSON schema 函数)>code execution(执行环境)。114:3-11
  • 描述即 prompt engineering:「searches the web」不如「当问题需要超出知识截止的信息时用」。114:13
  • 参数 schema 加约束(枚举/范围)=模型无法违反的约束;边界情况文档(「无结果返回空列表」「负载高时可能超时,稍候重试」)。114:15-17
  • Pythonic tool-calling 语法(Meta 叫 zero-shot,Llama 3.2/3.3/4)。114:19-24
  • 编排层:认证/限流/日志/格式转换;「能力强的模型配烂基建也会显得无能」。114:28-30
  • 沙箱:假设模型可能试图作恶(越狱/幻觉/涌现),基建层拦而非靠模型自律;E2B/Modal/Fly.io 临时沙箱服务;权衡=延迟与按次成本。114:32-38
  • 状态管理/超时重试/同步 vs 异步执行环境。114:40
  • 「只示范语法教不出判断」;好数据集要全周期:可能需要也可能不需要工具的 prompt、选哪个工具的推理、正确调用、结果解释、整合进回答。115:3-7
  • query-completion 格式(xlam-function-calling-60k:6 万验证实例,3600+ 可执行 API;两个工具只有一个是对的——也要学「哪个别动」)。115:9-34
  • 多轮对话格式(Glaive/Hermes)更完整但更贵;实践中混用。115:36
  • 合成轨迹:APIGen 管道(DeepSeek-V2/Mixtral 生成→格式检查→真实执行→语义验证三段;人评 600 样本准确率 >95%);「生成容易,验证才是真功夫」。115:40
  • coding agent 可生成工具轨迹+注入失败(超时/畸形响应/权限错)。116:3
  • 工具使用训练目标表 9-1:format compliance/tool selection/argument correctness/result interpretation/irrelevance detection/error handling/multistep coherence。116:7-57
  • irrelevance detection:全是正例→hammer-and-nail;构造法=把正确工具从可用集移除并重标为「无需工具」;Berkeley Function-Calling Leaderboard 专设相关性检测类;乱调工具比偶尔不调更不可靠。116:61
  • 工具总会失败:只训成功轨迹的模型会无视错误/幻觉结果/死循环重试/放弃;失败注入训练(参数错→改参重试;工具挂→换备选;超时→等再试;没救→承认)。116:67-71,117:3
  • agent vs 工具使用者:目标分解为子目标、跨交互追目标。118:7
  • 显式计划 vs RL 涌现 vs 混合。118:9
  • 计划即沟通:让人能监督;「要求 agent 先说计划再动手,比任何事后分析都能抓更多问题」;Meta 2026 初研究计划数据集(自然科学问题+rubric);规划常是领域特定的(科学方法即规划框架;CONSORT/PRISMA);作者亲历:药物研发 agent,偏好数据奖励「先查 drug likeness 和毒性」的计划。119:3-9
  • 多步推理:error accumulation——每步 10% 错,10 步全对只剩约 35%;对策=中间验证/保守决策/不确定性追踪;训练要含「链条出错并恢复」的例子。119:19
  • 记忆:上下文窗口=隐式短期记忆;外部记忆/检索/显式状态跟踪(checklist);训练例要示范何时存、何时取、如何调和过时信息。119:23-27
  • 安全:sandbox/权限/资源限制;least privilege(5 个工具比 50 个攻击面小;「不提供的能力不会被滥用」);Claude Code 2025-09 事件;「最安全的防删文件法是不给删除权限;次好是需用户批准;没有第三好的办法」。120:7-13,121:3
  • 训练级干预:RLHF 罚有害调用/Constitutional AI 原则自评/SFT 拒示范例;基建接住训练失败,训练避免触发基建。121:7-11
  • human-in-the-loop:confirmation(不可逆/高风险动作)/escalation/override;按风险定确认类别;全批准=没法用,全免=有害自主。121:15-19
  • agent 评估=任务完成为中心(结果非过程);效率指标(步数/工具数/token/墙钟);partial credit 防 gaming。122:7-9
  • 基准设计:成功标准无歧义、可自动验证、难度有跨度。122:11
  • SWE-bench(真实 GitHub issue)/WebArena(真实网站)/GAIA(多步跨工具,抗捷径)。123:5-11
  • agent 红队:伪装合法任务/间接指令/多步渐进攻击;安全评估是持续的。123:15-19
  • 鲁棒性:分布偏移/噪声输入(错别字、模糊指代)/对抗鲁棒;「测试抓到的每个失败模式都是生产中不会让用户吃惊的失败模式」。123:23-27
  • 三层安全栈:基建沙箱(硬限制)+训练级(不愿做)+人在环(高风险审批);agent 的对手面比单轮大得多。123:29-37
  • 章末:工具是肌肉,推理是大脑。124:3

Ch10 Reasoning Capabilities (125-136)

  • o1(2024-09):首次展示训练出的推理过程;此前推理是「internals」,靠「Show your work!」诱导。125:5
  • 推理从 prompt 技巧变成可训练能力:PRM/验证程序/领域方法。125:7
  • 不争论「机器是否真在推理」的哲学;自回归结构下,最近几千 token=草稿纸,CoT=鼓励它用草稿纸。126:7-9
  • 「let's think step by step」有效但不可靠:可能事后合理化(rationalization)——先定了答案再编步骤;若推理不影响答案,展示它=虚假保证。126:11-13
  • 训练 CoT 奖励正确链条而非只奖励正确结论;test-time 诱导不持久,trained reasoning 成为模型内部结构。127:5-7
  • 领域推理模式例:鉴别诊断(最低检查成本达最高诊断准确率)可用 RL 教。127:9
  • 好链条数据:每步显式承接、专家隐式推理要显式化、格式约定一致(分步/结论标记/不确定性表达)。127:13-17
  • scratchpad:隐藏推理空间,用户只见打磨后的结论;五页隐藏推理+一段结论。127:21-25
  • 推理披露政策:全披露(信任/调试/监管)vs 隐藏(保护方法/攻击面/体验);中间路=摘要给用户+全轨迹给调试+审计日志;要一致。128:3-5
  • overthinking:准确率与链长呈倒 U;每步 95% 正确→10 步全对 60%,20 步 36%。128:9
  • length hacking:模型学会「长=高奖励」,3 步的题写 15 步=procrastinating。128:11
  • Hobbesian 截断罚(nasty, brutish, short)不给有用梯度;更好=难度分级奖励(USMLE Step 1/2/3 类比;difficulty-aware reweighting)。128:13-17
  • 「moving finger writes」(Omar Khayyam):写进链条就无法抹除;regression to defaults(RtD)=模型用自己的默认定义替换合同里约定的术语(作者亲历:租赁协议公平性模型每次推理都冒着调回「material breach」默认定义的风险);疗法=checkpoint 推理步/rubric learning(按清单逐项奖励,如研究计划各步骤)/周期性假设检查奖励。129:3-17
  • ORM vs PRM:ORM 只评最终答案(稀疏:错误推理得对答案也奖;对推理最后一步算错不奖);Cobbe et al. verifier:6B+验证≥175B 微调,约 30× 规模当量。130:7-9
  • PRM 逐步评分,信用分配到步;PRM 还能在「全错」中挑出「更接近对」的链。130:11-13
  • Uesato et al.:简单任务上 outcome 与 process 终答错误率相近且更省标注;但 process 才能保证「推理对」而非「答案对」——错误理由得对答案会在新题上不可预测地失败。130:15
  • PRM800K(Lightman et al.):80 万+ 步级人工标注,75,000 解;难数学任务上 process 显著胜 outcome。130:17
  • Math-Shepherd:从每步采多条续写路径,算「通向正确答案的比例」=蒙特卡洛步质量;零人工标注;Mistral-7B GSM8K 77.9→84.1(重排 89.1),MATH 28.6→33.0(重排 43.5)。130:83
  • PRM 形式:rPRM=∏ p(step_i correct|…);每步 90%→10 步 35%;步概率 <0.7 就该剪掉换路。130:89-93
  • PRM 实现:token 分类器,只在每步最后一个 token(分隔符前)计损,其余 mask -100;迫使读完整步才判决;聚合=乘积或最小值(最弱环);best-of-N 选总分最高。130:95-99
  • TRL PRMTrainer(experimental):AutoModelForTokenClassification, num_labels=2, step_separator="\n", train_on_last_step_only。130:101-130
  • Tree of Thoughts:decomposer/generator/evaluator/search 四件;Game of 24:CoT 4% vs ToT 74%。130:165
  • MCTS+PRM;AlphaProof(2024 IMO 银牌:Lean 证明搜索)。130:167
  • Snell et al.:易题 best-of-N,难题 PRM 引导深搜;按难度分配算力比均匀 best-of-N 效率高 4×;小模型+足够 test-time compute 可胜 14× 大模型(flops 匹配);test-time 与预训练算力部分可互换。130:169
  • 推理经济学:当前推理模型的天花板是经济不是能力(链长受限);predispositional(预设推理长度档)vs interventional(ChatGPT 2025 末允许用户截断);AlphaGo 去掉搜索掉 2000+ Elo;「你看到的不是 state of the art,是 state of the affordable」;推理变便宜会出现不连续能力跳。131:3-9
  • 可验证奖励:Lean 4/Coq 验证明、编译器/SAT;反馈环以计算速度运行。132:3-9
  • AlphaProof 细节:proof network 预训 3000 亿 token;30 万 state-tactic 对 SFT(Mathlib);AlphaZero 式 RL;Gemini 自动形式化;2500 种子题→8000 万形式化变体;解 6 题中 3 题(含仅 5/609 人类满分的第 6 题),28/42,离金牌 1 分;但每道难题 2-3 天、数百 TPU 天——不可日常化,是概念证明。132:11-13
  • 可验证域训出的推理似乎迁移到不可验证域。132:15
  • 代码即验证:DeepSeek-R1 编程任务 0/1 测试奖励进 GRPO——「编译器就是 reward model」;Codeforces Elo 2029,超 96.3% 人类;Tülu 3 RLVR。132:21
  • self-debugging:执行失败→读错误→修→重试循环。132:23
  • 作者:code execution 是最实用的通用推理验证系统;muffin 配方也能形式化(好数据定义+迷你 DSL)。133:3-5
  • Mathlib:21 万+ 定理、10 万定义;LeanDojo;Kimina Lean Server 100 证明/秒。133:11
  • DeepSeek-Prover:miniF2F 46.3%(v1,64 次尝试)→63.5%(v1.5,+RL)→88.9%(v2,671B,子目标分解)。133:15
  • 验证是 CPU-bound、生成是 GPU-bound:一次 step-level prover 训练约 21,000 CPU 天,GPU:CPU=1:11;Lean import/tactic elaboration 是瓶颈;「95% 正确的证明在形式数学里=100% 错误」(last mile problem)。133:17
  • 形式→非形式迁移不完美但显著;推理时用形式化当过滤器(翻译候选答案→试证明→选)可 +8% 竞赛数学准确率。133:19
  • 法律推理:IRAC(issue/rule/application/conclusion);IRAC 结构化 prompt 把 COLIEE(日本司考)从约 70% 提到 81%+;binding vs persuasive authority;「distinguished」。134:7-9
  • Mata v. Avianca(2023):至少 6 个编造判例,$5000 罚款;到 2025 末 AI 幻觉法庭案例数据库 900+ 起;Dahl et al.:GPT-4 在随机联邦判例查询上幻觉 ≥58%,Llama 2 约 88%,最难任务(holding 识别)>75%;模型无法预测自己何时在幻觉(校准差)。134:11-13
  • 法律推理三维难点:时间意识(法律会变)/管辖权特定/先例动态(是否被推翻、区分、限缩)。134:15
  • 临床推理:病史→鉴别诊断(排序列表)→假设检验→贝叶斯式更新→诊断;诊断 vs 治疗推理不同;网上医疗问答数据质量可疑。134:19-23
  • 金融推理:定量+定性判断+合规;过度自信的危险 vs 全是 hedge 的无用。134:27-31
  • 组合性墙:会做 3 步题却败在 5 步题;学到的不是「证明步骤」而是「三步证明」;加数据只在边缘有用。135:7-9
  • 求救时机:数字母(tokenization 使之难,Python 一行解决)/事实检索/形式验证 → 工具增强;混合架构:模型管开放端,工具管「不容近似」的部分。135:15-19
  • 前沿:neurosymbolic;面向组合性的架构创新(变量绑定/结构化记忆/模块化)。135:23-25
  • 可复现性问题(再次引 Yuan et al.);「reasoning tax」:推理模型推理成本可高一个数量级;超长链反而降准确率;hybrid reasoning 按查询复杂度决定要不要深思;按难度路由模型。135:27-29
  • Ch10 收尾:推理技法被作者视为前面所有技法的 culmination(顶点),后面三章是「日益专门化的前沿」。136:3

Ch11 Synthetic Training: Self-Play and Generated Data (137-147)

  • 章首定位:后训练自诞生起的约束就是数据——高质量样例要专家时间、偏好判断要一致的标注员、评估要昂贵人评;合成数据把这个约束从「稀缺人力」换成「充裕算力」,从而让人类标注永远支撑不起的规模变得可行。三条路:self-play(模型跟自己对抗)、RLAIF(通常由别的模型当标注员)、procedural generation(按需造样例)。137:5-7
  • 「唯一算数的检验」:ML 界对合成数据的偏见是历史遗产;判据不是「是否和人类数据一样好」,而是是否服务于训练目的——「data that improves model performance is good data」。来源只在其预测有效性的意义上才重要。138:7
  • 合成数据质量三维:correctness(事实/计算/示范对不对)、diversity(覆盖不覆盖该覆盖的空间)、naturalness(像不像真实部署条件)。可以高 correctness 而低 diversity(准确但重复),也可以反过来。138:9
  • 评估法:自动指标(embedding 距离/n-gram 统计测多样性、验证测正确性、分类器筛明显问题)管规模,人评管校准——验证自动指标对应的是质量而不只是「可测的代理」。138:11
  • 生成策略由简到繁:prompt-based(一句任务描述直接生成;省事,但会聚在常见模式、漏边缘)→ iterative refinement(生成→批评→修订,多轮;代价是每轮额外推理算力,收益递减)→ 流水线组合(ensemble 多模型提多样性 / verification 过滤 / augmentation 改写替换扰动 / curriculum 由易到难)。复杂只有在简单做法证明不够时才划算。 138:15-19
  • 六个里程碑技法(这是本章的骨架,每一个都带数字):138:23-55
    • Self-Instruct(注183):从 175 条人写种子指令自举出 52,000 条指令;vanilla GPT-3 在 Super-NaturalInstructions 上绝对提升 33 个百分点,逼近用昂贵私有人工标注训出来的 InstructGPT。它模糊了「被训模型」和「训练数据来源」的边界。138:25-27
    • Evol-Instruct(注184):不从零生成,而是把已有指令进化成更复杂的变体(加约束/加深推理/引入冷门话题/更具体);产出 WizardLM,人评上在复杂任务超过 ChatGPT,数据量只是零头。洞见:复杂度本身是一个值得优化的维度——全喂简单合成数据的模型应付不了生产里的多约束请求。138:31-33
    • Persona Hub(注185):从网页数据自动策展出 10 亿个 persona,生成时以 persona 为条件。气候科学家和小店主问的「能源政策」问题不一样。治的是「模型只会输出一个默认视角」的毛病。实验:7B 模型在 persona 驱动的合成数学题上微调后 MATH 达 64.9%,与 GPT-4 Turbo 持平。138:37-39
    • Magpie(注186):最省事的机制——只喂给指令模型它自己的 pre-query 模板(系统提示+用户消息前缀,后面什么都不给),让它幻觉出一个用户问题,再把这个问题喂回去要答案。利用的是「指令模型已内化了一个用户消息的分布,可以直接采样」。用 400 万条 Magpie 数据微调的模型,与官方 Llama-3-8B-Instruct(用 1000 万条精心策展数据训的)表现相当。零提示工程、零种子数据、零外部模型。138:43-45
    • Textbooks Are All You Need(注83,微软 Phi 系列):不生成原始问答对,而是合成结构化教材(课本/习题/例题)。phi-1 只训 70 亿 token(60 亿策展网页 + 10 亿合成),HumanEval 50.6%。开源复现 Cosmopedia 用 Mixtral-8x7B-Instruct 生成 250 亿 token、耗 1 万+ GPU 时;同一份种子内容按多种风格与受众层级改写(儿童读本/本科讲义/研究生研讨),1B 模型胜过数据多得多的 TinyLlama 1.1B。138:47-51
    • WRAP(注188,web rephrase augmented pre-training):用指令模型把原始网页改写成结构化格式(「像维基百科」「问答体」「面向大众简化」「技术讲解」),真实数据与改写变体联合训练:预训练加速约 3 倍,Pile 子集平均困惑度改善 10%+;arXiv/Hacker News 等特定域困惑度降到近 1/3。洞见:同样的事实,结构更清楚就教得更省。 138:55
  • 表 11-1 策略对照(策略/做法/长处/局限):prompt-based · iterative refinement · ensemble · verification · constitutional · self-play · Self-Instruct · Evol-Instruct · persona 驱动 · 教材合成。138:59-147
  • 信噪分离(过滤):原始合成数据从优秀到不可用都有;「砍到只剩最好的一半」常常训得比全量好,因为低质样例是噪声。手段=质量打分(模型评分过阈值)、去重、一致性检查(互相矛盾说明至少一条错)、验证(代码能跑/计算对/可查证)。138:151-153
  • 过滤阈值是量与质的交换:SFT 直接从样例学,激进过滤通常划算;RL 有奖励信号能纠正部分噪声,宽松过滤可接受。最终按经验定:试不同阈值,选训出最好模型的那个,而不是选数据集最大或最「干净」的那个。138:155
  • 模型给自己打分(RLAIF):对易验证的品质(事实准确、格式合规、逻辑一致),AI 反馈可以在远大于人的规模上匹配甚至超过人的可靠性;主观品质则复杂得多。139:3
  • Constitutional AI(注32):人写「宪法」(有用/无害/诚实/尊重自主/承认不确定…),模型按宪法自评自改,修订版就是训练样例;可以迭代(改→批评→再改)。效率账:一个人写一部宪法,产生的训练信号覆盖数百万样例;一个人标偏好,一天大约一百条。 成立的两个前提:模型有能力准确按宪法评判 + 宪法真的对齐人的价值。139:7-11
  • AI 反馈的四种形态:pairwise 偏好判断(直接喂 DPO)、标量质量分(训奖励模型或过滤)、详细批评(把「原答案+按批评修订后的答案」配对做 SFT)、verification(二值可查性质)。AI 评估器的灵活性本身就是价值——它可以被要求产出任何格式,人类标注员会抗拒不熟悉的格式139:15-19
  • RLAIF 效果分裂:易验证的品质上 AI 常比人更可靠(人会疲劳、走神、知识有限);写作风格/说服力/幽默/共情/有用性这类主观品质上,AI 的近似会以微妙但要命的方式偏离人的偏好,单看个例看不出来,累积起来就训出「优化 AI 偏好而非人类偏好」的模型。139:23-25
  • RLAIF 适用性两问(小方框,可直接当判据用):① 评估模型能不能可靠分出好坏?② 「模型判断的更好」等不等于「人判断的更好」?两个都是 yes 才能用;任一为 no 就得上人评或验证。事实准确类常通过;说服力/有用性类必须先实测。140:3-9
  • 辩论式自博弈:模型实例分正反两方辩论,配人类对「哪方更有说服力」的判断;学到的是构造强论证 + 找对方弱点,能迁移到非辩论场景(预判反驳、压力测试自己的推理)。红队/蓝队是同一洞见的延伸。统一原理:模型能从彼此找弱点的尝试中学到单模型训练给不了的鲁棒性。 141:7-11
  • SPIN(self-play fine-tuning,注190):形式化成两人博弈——「主玩家」是当前被训模型,「对手」是上一轮的自己;每轮任务是分辨「上一轮的自己生成的回答」和「人写的回答」。目标函数把输出分布推向人类数据分布,作者证明了收敛:全局最优只在策略恰好匹配目标分布时达到。141:15
  • SPIN 的实践含义:不需要外部奖励模型、不需要偏好标签、不需要更强的老师模型,只需要当初做 SFT 用的那个数据集。从 UltraChat 5 万例微调过的 Zephyr-7B-SFT 出发,三轮 SPIN 在 HF Open LLM Leaderboard / MT-Bench / BIG-bench 上全面改善,胜过用 GPT-4 偏好数据补充的 DPO。局限也在这:天花板就是人类参考数据的质量,SPIN 越不过去;价值在「SFT 常常欠拟合训练分布」到「数据本身的质量上限」之间的那段空隙。141:17-19
  • STaR(Self-Taught Reasoner,注191):从少量示范推理链出发,让模型给大批题目生成推理链,只在导向正确答案的那些链上微调。关键创新是 rationalization:模型答不出的题,把正确答案告诉它,让它倒推一条能到达该答案的理由链——这给了「模型当前还解不了的题」以训练信号,把能力自举到当前水平之上。迭代:每轮微调后能解更多题,又产出更多正确链。CommonsenseQA 上达到「直接在答案上微调的、大 30 倍的模型」的水平。141:23-25
  • Quiet-STaR(注192):推广到每个 token 位置都生成内部理由来解释和预测后文;只用互联网文本训练(无任务数据),就在 GSM8K 和 CommonsenseQA 上取得 zero-shot 改善——说明 STaR 式自举出来的不是窄任务技能,而是更一般的序列推断能力。141:27
  • 自我改进的海市蜃楼:「模型生成数据→训练变强→生成更好数据→无限迭代」的愿景只存在于经费申请书里(原文 grant proposals)。现实是很快平台期,因为模型无法为它不具备的能力生成训练信号;RL 不是魔法,变不出信息论意义上凭空的价值。数学推理弱的模型生成并「验证」不了数学证明,拿它错误的验证去训练,训出来的是「看起来很数学但答案是错的」。没有外部基准(external grounding,指模型自身判断之外的东西),就没有机制去纠正模型认不出来是错的那些错误。 141:35
  • 反馈回路会放大问题:细微偏差会被自生成数据强化;质量判断只要略有失准,失准就在迭代中复合;结果是内部指标越来越好、外部标准越来越差。对策:停止准则、外部验证、多样性机制。141:37
  • 这个动力学外溢到整个领域:多个团队用相似模型生成的合成数据、相似的评估标准 → 收敛效应,大家落到同一片平庸的中间地带。要差异化就得刻意换数据源、换评估标准、换 grounding 信号。作者原话大意:此处最需要的多样性不只是数据的,还是人的——「如果卡住了,去找一个上过艺术学院的人」。141:39
  • 迭代蒸馏:标准蒸馏是老师→学生一次传递;迭代蒸馏用每一代学生给下一代生成数据。第一代学生可能产出老师不会产出的数据(新的组合方式、略不同的解法),第二代同时学到老师和一代学生的东西。与纯自我改进的关键区别:老师始终在场当参照点,防止漂离原能力分布。迭代太少拿不到多代收益,太多则累积噪声压过累积洞见;甜点取决于任务、老师能力、代际之间的过滤质量。141:43-47
  • 数据工厂(生产化流水线):临时脚本撑不起生产。核心阶段=生成 → 质量关卡(自动打分/验证/去重)→ 存储(带索引与元数据)→ 版本与溯源(什么生成参数、什么过滤、什么模型版本——这才让复现、解释和排障成为可能)。模块化设计让单个组件可换,还能局部重跑(过滤有 bug 时只重跑过滤及其之后,不必重新生成)。全流程可观测性(生成多样性、过滤通过率、质量分布、下游训练结果)构成持续改进的反馈回路。142:7-11
  • Vibe Check:coding agent 很适合搭建与维护合成数据流水线(提示构造、并行生成、可配阈值的质量打分、embedding 相似度去重、格式校验、版本化落盘、监控看板);质量指标漂移时还能诊断是生成提示、过滤阈值还是模型退化的问题。143:3
  • 质量关卡与持续监控:早期抓到的问题比训练之后才发现便宜得多。自动指标是第一道防线(多样性指标测坍缩、评估模型打分测退化、格式校验),要对历史基线设告警。人评提供自动指标近似不了的 ground truth:随机抽样看整体、分层抽样保证重要子群覆盖、定向抽查自动系统标为边缘的样例。再往上是留出集对比(测分布漂移)和训练结果 A/B——这才是流水线好坏的终极检验。143:7-11
  • 规模化的三笔账:生成算力(小模型初生成 + 大模型只用在过滤;批处理;缓存)、存储(高效格式/压缩/保留策略)、处理时间(并行化、增量处理、按需增量生成)。工程做得好,合成数据的产出配得上投入;做得差,花在合成数据上的钱会超过模型改善的价值。 143:17-19
  • 工具生态:NVIDIA NeMo Curator(注193)偏策展侧——建在 RAPIDS 上做 GPU 加速,30+ 启发式过滤器、fastText 质量分类、三层去重(精确 / MinHash LSH 模糊 / GPU embedding 语义);大数据集上比 CPU 方案快 16 倍、总成本降约 40%;支持文本/图像/视频/音频;它的合成生成流水线曾用于产出 Nemotron-4 340B 的训练数据;任何兼容 OpenAI API 的推理服务都能当生成后端。143:25
  • Meta Synthetic Data Kit(注194)偏端到端——四段 CLI:ingest(PDF/HTML/YouTube 字幕/DOCX/PPT → 干净内部格式)、create(用 vLLM 起本地模型生成问答对/思维链/摘要)、curate(Llama as a judge,默认 10 分制阈值 7.0 过关)、save-as(导出 Alpaca / OpenAI / ChatML / HF datasets)。自动分块并带重叠保上下文。对已经在 Llama 生态里的组织,「从领域文档到微调数据」从几天自定义脚本压到改几行配置。143:27
  • From the Trenches:两者都不是完整方案——NeMo Curator 长于大规模策展但把提示设计与生成编排留给你;Synthetic Data Kit 全流程但偏向 Llama 生态。作者的生产做法是混着用:Synthetic Data Kit 或自定义脚本做生成与格式化,NeMo Curator 的 GPU 去重与质量过滤做规模化策展。选型看你的瓶颈在生成还是在策展。144:3
  • NVIDIA NeMo Data Designer(注195)补的正是编排缺口:声明式定义多列合成数据集的 schema,有的列从统计分布或外部数据集采样,有的列由 LLM 生成、其提示用 Jinja2 模板变量引用前面的列({{ persona.age }}{{ diagnosis }});框架把引用解析成有向无环图,按依赖顺序生成——于是「用药清单反映诊断、随访计划同时引用诊断与处方」这类字段间相关性写在配置里而不是脚本里。配套的 Nemotron-Personas(注196)是**10 亿+**合成 persona,锚定真实人口/职业/性格分布,带美日印巴新五个地区变体,可直接当 persona 驱动生成的种子。144:5
  • 清单 11-1 具体例子:生成「就诊后小结」(AVS)——persona 列采样 Nemotron-Personas-USA(姓名/年龄/性别/职业/城市/州),clinical 列采样 Gretel 的 symptom_to_diagnosis(注197,病人自然语言描述的症状-诊断对),after_visit_summary 列用 llama-3.1-70b-instruct 同时条件在两列上;两个种子列互不依赖可并行采样,AVS 列等它们都好了才生成。144:7-50
  • DataChef-32B(注198):RL 开始进入这一层——它生成的不是训练数据,而是数据配方(合成数据流水线的规格说明)。用它训出的 Qwen3-1.7B-Base 胜过朴素的 Qwen3-1.7B,并在 2025 AIME 上取得优于专家的表现。奖励函数「同时评果与树」:生成有效性(确保产出可用配方)+ 最终数据集的 rubric 合规度。作者说下一步逻辑上是按最终微调模型的表现给奖励,目前算力上代价过高,但可能在不久将来可行。144:52-54
  • 合成数据出问题的两种走法。① 偏差放大:合成数据不可能比生成它的模型更多样,实践中总是更少;生成器的偏差进输出,训练又强化它,下一轮更偏——几轮之内把细微偏差放大成显著偏差。阴险之处在于它不体现在 correctness/fluency 类质量指标上:回答可以正确、写得好、有帮助,却一致地反映特定视角。缓解:提示里明确要求多视角、质量控制里加多样性指标(人口/话题/风格)、偏差检测分类器,最重要的是掺人类生成的数据当 grounding145:7-11
  • 模型崩塌:模型收敛到窄输出分布,只在一个主题上做变奏。窄范围内每个回答都可以是高质量的,但对每个问题都给同一种风格的答案就已经崩塌了。Shumailov et al.(注199,2024 Nature)证明在递归生成的数据上训练会导致不可逆的退化,分两阶段:早期崩塌先丢掉低概率但有效的内容(罕见样例、少数视角、边缘情形——正是分布的「尾巴」);晚期崩塌分布收窄到与原始训练数据几乎不像,产出自信、流利、错得模型自己发现不了。因为一定量的方差总得安置,模型改用「扰动一个窄分布」而不是「从宽分布里选」来制造多样性,结果常常是胡话。跨架构成立:LLM、变分自编码器、高斯混合模型都被证明会崩。145:15-17
  • 对整个行业的含义:LLM 生成内容在互联网上堆积,未来靠爬网训练的模型必然训在早期模型的合成产物上,每一代复合一次分布收窄,尾巴最先烂掉。解法不是完全不用合成数据,而是保证每一代训练数据都还能接触到真正人类生成的内容保有高质量人类数据当混合成分的组织有结构性优势。 145:19
  • 检测崩塌:embedding 空间聚类分析、n-gram 统计测重复、人抽样看质性相似。缓解:奖励函数里加多样性项(罚输出之间相似)、生成时的温度等干预、策展时保证多样样例不被质量过滤清掉。根本张力是质量与多样性:激进优化质量→模式坍缩;激进保多样性→留下低质输出。 145:21
  • 不可消除的人的成分:合成数据的效率诱人到让人想做纯合成流水线。要抵住这个诱惑——人的监督之所以必要,恰恰因为合成数据太高效:同样的效率也能大批量产出有问题的数据。自动指标是人设计的质量代理,过度优化会触发 Goodhart:指标涨、它本要衡量的质量跌。合成数据的正确角色是增补(augmentation)而非替代145:25-29
  • 章末总纲:核心张力贯穿全章——合成数据的好坏上限就是生成它、过滤它的那套流程。能干的生成器同时把它的偏差按规模复制出来;有效的过滤器同时可能把多样性滤没;自我改进回路能自举能力,但没有外部 grounding 就只是在优化「模型已经相信的东西」。综述(注200)指出剩下的关键挑战就是多样性:直接让 LLM 生成合成数据,可靠地产出流利、正确且重复的输出。146:3-7
  • Summary:合成规模 + 人类 grounding。用合成生成拿量,拿人评校准;用 AI 反馈拿效率,拿人的偏好校准;用自博弈拿鲁棒性,拿外部标准锚定评估。把高质量人类数据当作防止跨代崩塌的分布锚(distributional anchor)保有下来,而不是当成历史遗留物。 147:3

Ch12 Multimodal Systems: Post-Training Beyond Text (148-163)

  • 章首:语言不够——世界经由视觉、声音、感觉抵达我们。近年的一大发现是同一套架构也能容纳别的模态(作者加了一句:这件事其实藏得并不深)。多模态系统不是各自独立处理多种输入,而是学联合表示148:5-7
  • VLM 的三件套骨架(LLaVA skeleton,注59/204):vision encoder(把原始图像变成连续表示)→ projection(把这些表示映射进语言模型的嵌入空间)→ language backbone(以拼好的视觉+文本 token 为条件生成文本)。编码器可以是 ViT(注201)、CLIP 系(注202)或自定义;投影可以是一个线性层、一个多层感知机,或交叉注意力模块;backbone 几乎可以是任何语言模型。输出序列全是文本。 149:7-11
  • 投影层是后训练的中心:线性投影高效易训但可能丢信息,交叉注意力保留更多视觉细节但加参数加算力。对打算微调的人,投影层往往是甜点:参数够多能有意义地适配,又少到能在有限数据上高效训练。149:15
  • Note:只训投影层既不冒犯编码器的视觉词汇,也不冒犯语言模型的语言能力;只有在投影层训练明确达不到要求时才往深里走(解冻编码器或 backbone)。150:3
  • backbone 冻不冻是最要命的架构决定:冻住保住通用能力,只让「视觉信息如何呈现给它」发生变化;训 backbone 能更深地整合视觉理解,代价是语言能力灾难性遗忘的风险。当前实践越来越倾向分阶段:先训投影层对齐模态,必要时再选择性解冻语言模型的部分层。150:5
  • 各家实现差异(骨架不变,连接件变):Qwen2.5-VL 用动态分辨率按原始宽高比处理图像(注203——注意此注实为 Qwen2-VL 论文),保留文档与图表里的细节;Llama 3.2 Vision 用与 transformer 块交错的交叉注意力层而非简单拼接;Gemma 3 用 SigLIP 编码器并原生支持图文交错序列;InternVL、MiniCPM-V 往更高分辨率与更复杂投影推。选底座时多数情况下可以只看实际因素(参数量、许可、框架支持)而非架构本质差异。150:7-9
  • 视觉指令微调:洞见是「语言模型已经会跟随指令,视觉编码器已经会表示图像」,难的不是从零教会任一项,而是把两者连起来,让指令跟随适用于视觉内容。构造数据集要越过简单的图-文对,走向结构化交互:同一张图可以支持描述/计数/比较两个区域/找安全隐患/推测此前发生了什么/预测接下来会发生什么。150:15-17
  • 训练目标就是普通的下一 token 预测,只是视觉 token 前置;损失只在 response token 上算——在视觉 token 上算损失等于教模型去生成视觉表示(不是目的),在指令上算损失会鼓励模型鹦鹉学舌复述提示。150:19
  • 多图与视频指令微调:Qwen2.5-VL、Gemma 3 原生支持多图(「比较这两张胸片」);视频指令微调把采样帧当有序图像序列,训时序关系。不需要根本上新的技术,但需要相应的训练数据,并且显存需求大涨(每多一张图就多几百个视觉 token)。150:21
  • 视觉幻觉是 VLM 的标志性失效模式:模型自信地描述图里没有的物体、数错、编造空间关系。比纯文本幻觉更难察觉——人看到图就在旁边,反而会信那段描述,这种虚假的安全感让它格外阴险。150:25
  • 于是 VLM 的对齐有两个维度:一般的 helpful/harmless/honest,加上视觉保真(关于图像的断言要对应图像内容)。文本对齐的技法只能部分迁移,且标注成本上升——标注员必须仔细看图而不只是读文本。自动检测视觉幻觉(查置信度、比对多次生成的一致性、用辅助模型核验)能抓到一些但漏掉细微的;根本困难在于:如果模型的视觉理解本身有毛病,你不能用它来核验它自己的视觉理解。 150:27-29
  • Note(这一段值得当例子用):最阴险的情形是模型面对歧义信号。经典的鸭兔错觉图,被训成「不容忍歧义地描述图像」的 VLM 会说它是鸭或是兔,而实际上两者都不是。好的视觉模型要能容忍歧义,靠的是在歧义 hard negative 上做 RL。训练数据必须包含「承认不确定」的正确回答——「这张图可能是实变也可能是肺不张,侧位片有助于区分」,而不是自信地断言其一。难在大多数训练集奖励自信、具体的回答,标注员也倾向于把歧义解决掉而不是保留它。要造出「我不确定」的能力,得靠刻意的数据集设计与奖励校准不确定性的评估指标。151:3-5
  • 降幻觉的三段:SFT 用高质量、视觉有据的数据打基线 → 偏好优化(DPO 或 nSFT)教它偏好有据的回答而非幻觉的 → 推理时技法(带视觉约束的 beam search、多次采样自洽检查、辅助验证模型)兜住漏网的。没有哪一段能单独消灭问题,但每一段都能减少它。 151:7
  • 多模态标注的双重负担:每个图文对要同时满足两个约束——文本要适合任务,且要准确反映视觉内容。漂亮的指令-回答对若错误描述了图像就一文不值;完全准确的图像描述若不服务于训练目标也一文不值。要求标注员双重能力(看得出细节 + 说得清细节),找同时具备两者的人比找具备其一的人难得多。实测后果:VLM 标注成本通常是同等长度纯文本标注的 2-3 倍,质量控制的复审时间也更长。152:7-9
  • 领域 VLM 更窄:医学影像要放射科训练背景、制造检验要熟悉缺陷分类、文档理解要懂表单/发票/合同的结构;领域专长 × 标注技能的交集进一步缩小可用人力,使领域多模态数据集稀缺且昂贵。「模型只能学到数据教它的东西」。152:11
  • 表 12-1 标注类型对照(适合什么/格式/典型成本):bounding box(检测/定位/计数,低-中)· 指令-回答对(视觉问答/推理/开放生成,中-高)· dense caption(细致场景理解/无障碍,高)· region description(空间推理/指代,中)· keypoint(姿态/细粒度对齐,低-中)· temporal segment(视频理解/动作识别,高)· 多轮对话(对话式 VLM,很高)。152:13-77
  • 自举数据集的有效策略:用强专有模型(GPT-4o/Claude/Gemini)给领域图像生成草稿标注,再让领域专家复核修正——本质上是第 11 章那套合成数据流水线搬到多模态(注意:书中此处与 §162 两处都误写成「Chapter 10」,实际是第 11 章)。经济账很有说服力:一个放射科医生从零标注每小时 10 张,复核修正模型生成的标注每小时能做 40 张。 152:79
  • 选标注策略的判据:标注格式决定模型能学到什么。bounding box 教定位不教推理;指令-回答对教推理但可能没有空间落地;dense caption 监督最丰富但每张图贵三到五倍。按任务需求匹配,不按「哪种看起来最全面」匹配——制造检验要的是缺陷框+严重度标签,描述整个场景的 dense caption 是把标注预算花在无关细节上。从「可能够用的最小标注」起步,只在简单做法明确失败时加丰富度。153:3-5
  • 模型生成标注的风险是系统性偏差共享:如果专有模型一贯认错某种病变,逐条修正抓得到个别错误,却可能看不出这个系统模式。对策=混用模型生成与人originated 标注,并按来源分别追踪错误率。因隐私/监管不能把图像送外部 API 的组织(医疗、国防常见),可以用本地部署的开源 VLM 担同样的自举角色——草稿质量低些,但「复核修正」仍胜过从零标注,且数据不出组织。153:7-9
  • 冻结问题(该训哪几块):vision encoder 装着模型的基础视觉词汇(边缘、纹理、物体、空间关系),冻住它保住这套词汇但限制学新视觉概念的能力;多数企业应用的视觉域落在编码器预训练分布内,冻住就够;新颖视觉域(特殊医学影像模态、罕见工业检验场景、领域特定文档版式)才可能要训编码器,而那需要多得多的数据。154:7
  • 投影层是高效微调的最优目标:算力少、遗忘风险小,且在底层视觉与语言能力都已具备时能达成可观适配——它要模型学的不是新的视觉或语言概念,而是既有概念之间的新映射154:9
  • PEFT 自然延伸到 VLM:常见组合是语言模型上挂 LoRA + 冻住 vision encoder + 完整训练投影层。超参要相对纯文本调整(投影层的学习率可能要比 LoRA 适配器高,warm-up 可能要拉长以让多模态对齐稳定下来),但基本机器直接迁移。154:11
  • 表 12-2 VLM 微调策略(训什么/何时/要多少数据/风险):只训投影层(多数任务的默认,1,000-10,000 例,低风险几乎不遗忘)· LM+投影(需要更深适配,10,000-100,000 例,中等,可能丢通用能力)· vision encoder+投影(新颖视觉域,100,000+ 例,高,可能丢视觉词汇)· 全模型(最大适配,极大量领域数据,最高,需仔细正则)· LoRA on LM + 完整投影(适配与效率平衡,5,000-50,000 例,低到中)。154:13-61
  • 底座选型三问:硬件够不够(Qwen2.5-VL 7B 与 Gemma 3 4B 用 4-bit 可在单张 24GB 卡上微调,Llama 3.2 Vision 11B 至少要 40GB)· 应用要什么(文档理解与 OCR 偏 Qwen2.5-VL 的动态分辨率;通用视觉推理偏 InternVL2.5 或 Llama 3.2 Vision;边缘部署偏 MiniCPM-V 4.5 或 Gemma 3 4B)· 用哪个框架(Unsloth 原生支持 Qwen2.5-VL/Llama 3.2 Vision/Gemma 3/Pixtral;LLaMA-Factory 覆盖面最广含 InternVL 与 MiniCPM-V;TRL 的 SFTTrainer 一等支持 Qwen2.5-VL 与 Llama 3.2 Vision)。154:65-67
  • 表 12-3 开源 VLM 对照(参数/视觉编码器/许可/长处):Qwen2.5-VL 3B/7B/72B · ViT 动态 · Apache 2.0 · 文档 OCR 任意分辨率;Llama 3.2 Vision 11B/90B · ViT+交叉注意力 · Llama 3.2 许可 · 推理与多语;Gemma 3 4B/12B/27B · SigLIP · Gemma 许可 · 多图与高效;InternVL2.5 2B-78B · InternViT · MIT · 基准面广;MiniCPM-V 4.5 8B · SigLIP2 · Apache 2.0 · 边缘部署;Pixtral 12B · 自定义 ViT · Apache 2.0 · 长上下文视觉。拿不准就用 Qwen2.5-VL 7B(能力与成本平衡、Apache 2.0 可商用、框架支持最广)。154:69-141
  • 三个框架的定位:Unsloth 主打显存效率(内核优化省 40-70% VRAM,让原本要多卡的模型能 4-bit QLoRA 单卡跑;对 GPU 紧张的团队常常决定项目可不可行)· TRL 主打生态一致(数据从 HF Datasets 来、模型存 Hub、实验用 W&B 跟)· LLaMA-Factory 主打配置驱动与覆盖面(YAML、100+ 模型、低代码 Web UI)。Axolotl 在 VLM 上相对功能稀薄。154:145-151
  • 清单 12-1(Unsloth 微调 VLM 的核心套路):4-bit 载入 Qwen2.5-VL-7B(显存从 30GB+ 降到 16GB 以下)→ get_peft_model 里 finetune_vision_layers=False(冻编码器)、finetune_language_layers=True、r=16 → 把每条样本格式化成含 image 与 text 的 messages → TRL SFTTrainer + UnslothVisionDataCollator。超参:lr 2e-4、batch 2、梯度累积 4、max_steps 500、bf16、warmup 50、gradient_checkpointing。154:153-213
  • 保存的坑:save_pretrained_merged 对某些视觉架构可能没能正确合并 LoRA 适配器;若保存后的模型输出与底座一模一样,改用 model.merge_and_unload 再手动 save_pretrainedQwen2-VL 变体尤其常见。 154:215
  • 放射科实例(整章的主走查素材):底座(Qwen2.5-VL 7B 或 Llama 3.2 Vision 11B)广泛地懂图像但对放射学一无所知——编码器在自然图像上用 CLIP/SigLIP 预训练过,认得边缘纹理与空间关系,但从没学过怎么把胸腔积液和正常的肋膈角区分开;语言模型说话流利但医学知识浅且不可靠。微调的目标不是从零教会它放射学(那要的数据与算力远超多数组织),而是把它已经表示出来的视觉模式连到放射科医生使用的临床语言上。 155:9
  • 数据:ROCO(Radiology Objects in Context)8 万+ 张放射影像配 PubMed Central 论文里的专家写的图注;unsloth/Radiology_mini 是策展子集(X 光/CT/超声);视觉问答用 VQA-RAD。训练数据格式化成对话:user 消息含图像与临床问题(「描述这张胸片的所见」),assistant 消息是专家描述。155:11
  • 训练配方:4-bit QLoRA、冻编码器、完整训投影层、LoRA rank 16 挂到语言模型注意力层;lr 2×10⁻⁴ 余弦衰减、batch 2、累积 4 步,单张 24GB 卡放得下;几千条例子训 500-1000 步就有可测的改善——模型开始恰当使用 cardiomegaly(心脏肥大)、consolidation(实变)、mediastinal widening(纵隔增宽)等术语,并按放射科医生期待的格式组织所见。155:13
  • 只训投影层足以把视觉模式关联到放射学术语,但描述会停在泛泛(「左下叶阴影」而无进一步刻画);给语言模型加 LoRA 才能深化临床语言。一个关键的近期研究发现:领域预训练与指令对齐叠加会产生干扰——BLEU、ROUGE 这类表面指标可能下降,而诊断准确率在上升,因为模型从啰嗦重复的描述转向了简洁、临床聚焦的表述。这意味着自动指标单独无法指导训练决策,放射科医生评估不是可选项而是必需品。 155:50
  • 推理清单 12-2:FastVisionModel.for_inference 开优化生成(吞吐约翻倍)→ apply_chat_template 插入视觉特殊 token → process_vision_info 取出 PIL 图像备给编码器 → generate 时**医疗应用温度设得很低(此处 0.1)**以偏向确定性、临床保守的输出。155:17-48
  • WARNING(重要的边界声明):在 VQA-RAD 上拿到 90% 准确率的 VLM 不是一个诊断工具。 基准准确率衡量的是标准化问题+无歧义答案上的表现;临床放射学涉及歧义、不确定性,以及影像与病史的整合。监管框架(美国 FDA 510(k)、欧盟 CE 标记)要求的临床验证远超基准表现。追求医疗 VLM 部署的组织必须为临床试验、监管申报和持续监测预算——而这些成本使微调投入相形见绌156:3
  • 生产级放射 VLM 要多大规模:斯坦福 CheXagent(注206)训在 CheXinstruct 上——610 万条指令-回答对,来自 28 个公开数据集的 110 万张独特胸片,在覆盖 8 项临床任务的 CheXbench 上评估。微软 RAD-DINO(注207)走另一条路:不用语言监督,vision encoder 只在放射影像上做自监督(DINOv2),不需要配对图文数据也能取得有竞争力的表现——对拿不到大规模配对医学数据的实践者,这条路绕开了标注瓶颈156:5
  • VLM 的偏好优化:数据格式与纯文本一致(图像 + 提示 + 被选回答[准确、有据] + 被拒回答[幻觉、不准或落地差])。构造方法里最有效的是让被拒回答由微调后的模型自己产生:每张图在较高温度下采 3-5 个补全,让标注员挑出含幻觉的当 rejected,最好的模型回答或人写的 ground truth 当 preferred。好处是精确瞄准模型自己会犯的幻觉模式,而不是可能对不上其失效分布的合成错误。代价:5,000 张图的数据集要生成 15,000-25,000 条候选回答,并花 100-200 标注员小时构造偏好对。 156:11-13
  • DPO 不需要架构改动就能用(VLM 以图像为条件产出文本,DPO 作用在文本生成概率上)。nSFT(negative supervised fine-tuning,注208)是个值得注意的简化:不必像 DPO/PPO 那样同时维持两到四份模型副本,而是把被拒回答里的有用信号抽出来并入标准 SFT 损失;在幻觉基准上提升 15 个点,显存需求显著低于完整偏好优化。对已做完 SFT、又不想让 GPU 预算翻倍的团队,nSFT 是实用的中间路线。156:15
  • Uni-Med(注209,NeurIPS 2024)从架构而非偏好数据的角度做多模态对齐:Connector-MoE 模块用专门化的专家投影器服务不同医疗任务(视觉问答、报告生成、图像分类),按样例路由到对应专家。这避开了多任务医疗场景里「训一个任务把另一个任务训坏」的拔河问题。洞见是:连接视觉与语言的那个投影层,有时受益于任务特定的专门化而非一刀切的训练。 156:17
  • 评估为什么会骗人:标准学术基准(VQA 的短答格式、GQA 的组合式问题、视觉推理任务)给出有用信号,但当成真实表现的代理会误导——模型可能在 VQA 的受限格式上出色,却在开放式企业场景里给不出有用回答。解法是构造镜像部署条件的评估集。156:21-23
  • 人评在 VLM 上比在纯文本上更不可或缺:自动指标能查生成的图注有没有提到正确的物体,但查不了这段图注有没有抓住「对这个用途而言,这张图里要紧的是什么」。实操协议=自动基准做筛选,幸存者再上人评做部署决策。156:25
  • 小方框:纯文本模型上 BLEU/ROUGE/困惑度往往与人的判断相关得不错;VLM 上没有这样可靠的代理——自动指标能查「狗」这个词有没有出现在狗的图注里,却评不了图注有没有抓住狗的品种、体型、动作、神情。在视觉理解指标成熟之前,人评不是可选而是必需。 157:3
  • 表 12-4 VLM 评估基准:MMMU(注210,30 个学科的大学级题目,通用能力筛选)· MMBench(注211,20 项细粒度能力剖面)· MME(感知与认知,是非题,快速过筛)· VQA-v2(基线视觉理解)· CheXbench(8 项临床胸片任务,放射 VLM 的金标准)· DocVQA(文档理解/OCR 工作流)。没有单一基准能覆盖特定应用要的东西:MMMU+MMBench 筛候选,DocVQA 管文档密集流程,CheXbench 管医疗,自动筛选之后永远接一轮领域特定人评156:27-87
  • 语音:语音承载的远不止词——说话人身份、情绪状态、强调、不确定性。语音转文字模型来自预训练时跨语言、口音、声学条件的广泛能力,却规律性地在领域术语上翻车。作者的例子:早期法律实践里的语言模型把 voir dire(陪审员遴选程序)转成 war deer(战鹿),概念很好笑,但混进诉状里没被改掉就一点不好笑了。「95% 准确、却把承载最多意义的那 5% 词搞错」的转写系统可能比没用还糟」;领域内容的 hard negative 训练不可或缺。 158:7
  • 语音微调的数据账:几十小时精心转写的领域音频就能显著改善领域词汇识别,几百小时能在领域内容上接近人类准确率。转写必须完美(训练数据里的错就是模型里的错),声学条件要匹配部署——在录音棚级医疗口述上微调的模型面对嘈杂诊室的录音仍可能吃力。此外还能训口音、说话风格、输出格式要求(标点风格、大小写约定、说话人分离)。158:9
  • 副语言:情绪感知转写(把转写标上情绪标记,区分生气的来电者与满意的、焦虑的病人与平静的)可用于客服路由与升级、医疗上追踪病人情感的纵向数据。声音克隆是伦理雷区:同一项技术既能给失声者做个性化语音合成,也能诈骗、冒充、操纵;技术中性,负责任的部署要主动加装同意验证、用途限制、滥用监测——监管框架正在出现但落后于技术158:17-19
  • 多语言语音的独有难题是语码转换:书面文字用正字法清楚划出语言边界,口语是连续流动的,说话人经常在句中甚至短语中间换语言(孟买的说话人可能用印地语开头、技术术语切英语、再用印地语收尾;布鲁塞尔的说话人混着法语和弗拉芒语)。为语码转换微调需要反映真实多语使用的训练数据,而这类数据稀缺且昂贵——标注要切分语言边界并各按其正字法正确转写158:23-25
  • 低资源语言靠迁移:音系与韵律相近的语言之间跨语言相似性有帮助(在匈牙利语上训过的模型适配 Csángó 这种音系上差异很大的匈牙利方言,比英语底座去适配容易得多);有限数据上的策略性微调可以拿到可用的转写质量,远少于从零所需的数据量。作者补了一句立场:这也关乎通过尊重每个人选择的语言来维护其尊严与身份的道德承诺158:27
  • 更远的前沿:视频、LiDAR 点云、深度成像、时间序列……各需专门编码器,但 VLM 建立的通用架构模式在它们各自的架构里回响。159:3
  • 视频引入时间维度。朴素做法逐帧独立处理,恰恰丢掉了让视频区别于幻灯片的时间关系。当前策略:关键帧采样(省算力,漏帧间事件)· 时间注意力(跨帧注意)· 视频专用编码器(TimeSformer、ViViT 直接处理时空 patch)。监控录像里要紧的短暂事件需要比教学视频高得多的时间分辨率。 159:7-9
  • 视频微调不如图文成熟但差距在快速收窄:Qwen2.5-VL 与 Gemma 3 已原生把采样帧当有序图像序列处理,不需要单独的视频编码器;Grounded-VideoLLM 引入带时间戳知识的离散时间 token,能回答「何时发生」「之前之后发生了什么」;Molmo 2 进一步做时空落地,能追踪物体并指向视频里的具体时刻。这些模型用多阶段训练(从简单视频描述开始,逐步引入难度递增的时间落地任务)。标注负担大涨:一张图一句图注,一段视频要密集标注动作、持续时长与因果关系。159:11-13
  • 视频在诸模态中位置特殊,因为它捕捉了别的数据类型都没有的东西:物理世界的因果结构。 静态图显示杯子在桌上;视频显示杯子被放下、滑动、倾倒、摔碎。这种时间因果性使视频特别适合训练世界模型——不只描述所见,还预测接下来会发生什么、模拟合理的未来。Sora、Genie 2、UniSim 表明:在大量无标注视频上训练的视频生成模型隐式学到了物理(物体会落、液体会流、碰撞有后果,而且合乎物理直觉)。含义是:通过视频预训练内化了物理动力学的模型,可以被微调去做需要物理推理的任务(机器人规划、工业过程仿真、外科流程预测),这是只在图像与文本上训练的模型做不到的。视频不只是又一个可以挂到语言模型骨干上的模态,而是通往「理解世界如何运作而不只是看起来如何」的路径。 159:15-19(⚠️ Sora/Genie 2/UniSim、Grounded-VideoLLM、Molmo 2 在书中没有尾注)
  • 3D:点云(LiDAR)、深度图(立体相机)、体数据(医学成像)提供 2D 处理拿不到的空间结构。架构模式与 VLM 相似(3D 编码器 → 投影 → 语言模型),PointNet 及其后继是 ViT 的 3D 对应物。数据瓶颈比图文更严重:采集要专门传感器,标注要能在三维里推理并用语言讲清楚的标注员,而且 3D 数据类型本身分裂(点云/网格/体素/深度图)进一步切碎可用资源。合成数据能部分缓解——仿真环境能生成无限的 3D 场景与完美标注,而且仿真与真实的差距在几何结构上通常比在视觉外观上更小159:23-27
  • 传感器数据:工业设备温度、机器振动、医疗监护电信号、可穿戴运动数据、IoT 遥测——微妙的振动变化可能预示设备故障,生理信号的移动可能提示病人恶化,但这些对只训过文本的语言模型基本不可及。同一套模板延伸过来(专用编码器 → 投影层 → 语言模型):1D 时间序列用卷积网络、长程依赖序列用循环架构、复杂时间结构用 transformer 变体。应用集中在医疗与工业(预测性维护能用自然语言解释为什么某个传感器模式提示即将故障、临床监护把数小时生理数据总结成可行动的洞见)。运行设备、监护病人、跑流程的那个组织,握有模型提供商拿不到的传感器数据——这正是差异化的机会。 159:31-35
  • 跨模态一致性:模型可能在孤立情况下准确描述图像,却在文本上下文误导时自相矛盾。要的数据集包含三类:文本描述与图像正确匹配的、文本与图像冲突的、以及必须综合两个模态才答得出(任一模态单独都答不出)的。训练目标要罚「与任一模态中可得证据相矛盾」的回答。说起来容易做起来难:把「矛盾」定义成训练流程能操作的形式,需要仔细想清楚一致性对具体应用意味着什么。 160:7
  • 评估跨模态一致性要对抗性测试:模型会不会被文本上下文诱导去做出与图像内容相反的断言?模型认不认得出文本与视觉信息冲突,还是只是简单地偏袒某一个模态?160:9
  • cross-modal feature drift(跨模态特征漂移):微调时语言模型权重更新,视觉与文本特征空间的对齐退化,模型「忘了」怎么把看到的和说出的连起来。这是灾难性遗忘的多模态版本,但多一种失效模式——模型可能在视觉任务和语言任务上分别都还很强,却丢掉了整合两者的能力。LoRA 这类参数高效方法通过在结构上隔离更新来缓解,避免共享交叉注意力层里的破坏性权重覆盖。领域微调时要在通用图文对的留出集上监控跨模态一致性,而不只是看领域准确率。160:11
  • 新模态 = 新攻击面:图像可以编码有害内容而配套文本描述得人畜无害;音频可以携带转写抓不到的情绪操纵;单独看都良性的输入组合起来可能产生有害输出。具体例子:文本请求会被纯文本攻击训出来的安全过滤器拒掉,但把同一请求嵌进图像里可能绕过——如果模型处理图像中的文字与处理输入文本的路径不同。红队因此需要跨模态的专长与创造力,耗时更长、要求的专长更杂,但对高风险部署不可省。160:15-19
  • 企业多模态的共性:文档理解(发票/合同/表单里的文字、表格、logo、签名)、制造检验(颜色/纹理/形状的细微偏差)、医学影像、客服(用户发来的截图与产品照)。看着各不相同,要的东西是同一套:通用模型缺的领域特定多模态理解。掌握了多模态后训练的人,技能在这片版图上是可移植的——机制(视觉编码器、投影层、指令微调、对齐)不变,数据集构造、评估设计、安全保证的原则只需适度调整就能迁移。160:23-27,161:3
  • 章末总结的三条要点:① 标注成本是核心挑战(每个多模态样例都要同时满足感知与语言两个维度的约束,通常使成本翻倍或三倍;领域多模态标注进一步压缩可用人力,握有领域专家与运营数据的组织持有难以复制的优势);② 合成数据只能部分缓解(多模态合成生成远不如文本生成成熟);③ 工具生态已成熟到 VLM 微调不再是大实验室专属(Unsloth/TRL/LLaMA-Factory 让 70 亿参数 VLM 能在单张消费级 GPU 上微调)。162:3-7,162:13
  • 视觉合成数据最成熟的生态是 NVIDIA Omniverse 的 Replicator:从 USD 格式定义的 3D 场景渲染照片级图像,配合基于物理的光线追踪与系统化的域随机化(光照、表面材质、物体姿态、相机角度、环境参数按程序变化);ground truth 标注(bounding box、分割掩码、深度图、表面法线)随每帧自动产出,消除人工标注瓶颈。3D 资产与场景定义一旦存在,每张额外训练图的边际成本趋近于零,只受 GPU 算力而非标注员工时限制。完全用 Replicator 生成的数据训练的缺陷检测模型,从单个 CAD 文件就做到 97% 以上的精确率;机器人团队用配套的 Isaac Sim 产出数万张带标注训练图像而没有采集一张真实照片。NVIDIA Cosmos 世界基础模型再往前一步,给合成渲染做照片级风格迁移以弥合仿真与现实的外观差距。162:9-11(⚠️ 这一整段没有尾注,97% 与「数万张」都是无出处的数字)
  • Summary:多模态是企业后训练里扩张最快的能力前沿;它要的数据量此前对多数企业不可承受,而合成图像生成的发展革命性地改变了这个领域的经济学,把它从一潭死水变成了前沿163:3

Ch13 Future Directions: What Comes Next (164, 单文件 193 行)

  • 章首:前沿研究在挑战我们当成定论的假设——用推理算力换能力的 test-time compute、不按比例增加成本就能扩规模的 MoE、以百万而非千为单位的上下文长度。新技法混合不同范式的想法:从执行反馈而非人类偏好做 RL、按难度组织训练的课程学习、模糊训练与推理界线的方法。164:5
  • 表 13-1 新兴技法的成熟度与企业适用性(技法/成熟度/最佳用例/关键前提):test-time compute(已可生产;复杂推理与高风险决策;要为可变推理成本留预算)· MoE(成熟中;规模上的效率;需要稀疏路由经验)· 长上下文训练(已可生产;文档处理与代码库问答;要长上下文训练数据)· 从执行做 RL(已可生产;代码、数学、可验证域;要验证基础设施)· 自动课程(研究阶段;高效训练;要难度估计能力)· 持续学习(研究阶段;消除重训周期;要遗忘缓解)。164:9-65
  • test-time compute 把传统经济学倒过来:每次回答花的算力从常数变成变量——简单问题快而便宜,复杂问题给延长推理,可能贵几个数量级但相应地做得更好。机制:带验证的 beam search(生成多个候选再评估选择)、迭代精修(批评并改进初始回答)、蒙特卡洛树搜索(用学到的价值函数引导探索)。难题上,小模型加充足 test-time 算力可能胜过大模型的单遍回答。 164:69-73
  • 对后训练的含义:训练目标不同了——模型不只要学生成好回答,还要学评估自己的输出、找出弱点、迭代改进;评估中间步骤的奖励模型(第 10 章的 PRM)比只评最终答案的更重要;训练课程要转向「test-time 推理能带来优势的更难问题」,而不是快答就够的简单题。164:75
  • 小方框:test-time compute 造出新的取舍轴——响应时间 vs 响应质量。客服应用可以用最少的 test-time 算力换快,复杂分析用大量算力换准。「有效使用额外算力」这件事是可训练的,但训练方式与单遍优化不同。164:79
  • MoE:挑战「所有参数都必须参与每一次前向」这个假设。多个专门化的「专家」子网络 + 路由机制决定哪些专家处理哪个 token;4000 亿总参数的模型可能只为任一输入激活 500 亿,以小得多的推理成本达成超大模型的能力。164:83
  • 后训练 MoE 的独有难题:微调会打乱已学到的路由模式;训练数据偏向某些领域时,部分专家拿到不成比例的训练信号而另一些停滞——这叫 expert collapse(专家坍缩),会降低模型能力。load-balancing 损失能鼓励均衡使用,但超参要小心调。常见做法是初期微调冻住路由器,让专家先适配,之后再重训路由以反映新的专家能力。164:85
  • MoE 领域适配的有趣可能:不同专家在预训练时可能已经对不同领域形成专门化,微调可以强化这种专门化。法律微调数据集可能加强某些专家的法律推理而不动其他专家的通用能力。作者明确写了:这种涌现的专门化还没有被完全理解,也无法直接控制,但知道这种可能性会影响微调策略。164:87
  • 长上下文:窗口从 2022 年令人惊叹的几千 token 涨到能装下整个代码库或一本书的百万级。但原始容量不自动等于有效利用——百万 token 窗口能「看见」整个代码库,却仍可能找不到它要的那个函数定义;能读完整套法律取证文档,却可能漏掉夹在中间的关键邮件。164:91
  • 这个「容量与有效利用之间的差距」正是后训练的机会:训模型更可靠地关注上下文各处的信息、回答需要整合远距离事实的问题、抵抗把上下文末尾信息看得过重的近因偏差。为此的训练数据要有长上下文样例,且正确答案依赖各个位置上的信息,而不只是开头和结尾。造这种数据集贵但值。164:93
  • 超出上下文窗口的方向是跨会话持久的外部记忆:RAG 是一种(查外部知识库补充上下文),把信息压缩存储以备后取的学到的记忆系统是另一种。目标是给模型某种类人的长期记忆。后训练的含义还在浮现,但能训出会记住并在过去交互上继续构建的模型,会从根本上改变 AI 助手能做什么164:95
  • 不对称性是下一步的核心:人类反馈昂贵、缓慢、规模有限;执行反馈(代码通没通过测试?证明验没验过?)便宜、快、无限。后训练的未来聚焦于从这类不对称中榨取价值。 164:99
  • 从执行学:模型生成候选解 → 执行或验证判定对错 → 信号回流更新模型。人在环训练能管几千次迭代的地方,这里能做几百万次;在数学推理与代码生成上的能力增益一直很显著。164:103-105
  • 有趣的研究问题:在可验证任务上发展出的能力会不会迁移到无法验证的领域?早期证据显示有意义的迁移——大量训练数学的模型在与数学无关的多样推理任务上也表现更好。若这种迁移足够稳健,就存在一条路径:在可验证域上的自动反馈,培养出惠及不可验证域的能力,从而降低对稀缺人类反馈的整体依赖。(⚠️ 作者用的是「early evidence suggests」,是推测不是定论。)164:107
  • 课程学习:数学课程先算术再代数再微积分,不是因为后面的话题任意地「更难」,而是因为前面的话题提供了后面所需的基础。手工设计课程要同时理解任务结构和模型的学习动力学;作者说目前多半的出路是用难度可确定的考试(如 USMLE),或拿一批考生的成绩当代理164:111-113
  • 自动课程的核心思想:把样例呈现在模型当前能力的边缘上——太简单的给不了学习信号(模型已经会),太难的给的是噪声信号(全都失败时模型分不清好办法和坏办法),刚超出当前能力但够得着的才提供最丰富的学习机会。自动系统按模型表现估计样例难度,动态构造随模型改善而演化的课程,像一个实时调整挑战难度的好教练。实现的难处:难度估计要在候选样例上评估模型(额外算力)、批次构造要平衡课程与硬件效率、训练中的分布漂移可能致不稳。早期结果表明投入可能划算——课程训练的模型有时用更少的总训练算力达到更高的最终表现164:115-117
  • 持续学习之梦:当前实践把模型改进当成有明确边界的离散事件(训→评→部署→过一阵再来一轮),这既造成运营开销,也造成能力缺口(今天部署的模型反映的是训练时可得的数据,不重训就吸收不了生产经验的教训)。持续学习要消除训练与部署之间的硬边界。障碍是灾难性遗忘。 缓解技法三族(小方框):replay(混旧样例)· regularization(罚重要参数的变化,如 EWC)· modular(为新任务加新容量而不改旧权重)。各有代价:replay 要存旧数据、regularization 要算参数重要性、modular 会让模型变大。都不能完全解决,但组合起来能在保住多数旧能力的同时实现有意义的适配。 作者判断:大规模真正的持续学习仍是研究目标而非可部署能力,但经济诱因太强(消除重训周期能大幅降低运营成本),技法很可能成熟起来164:121-137
  • 涨潮抬不起来的那些船(战略章的核心):今天要微调才有的能力,明天可能只要提示词就够了。2023 年辛苦微调的摘要模型,可能在 2025 年被开箱即用的能力超越;2024 年看着必需的领域适配,可能到 2026 年零样本提示就能做到。战略回应不是不投,而是把投资集中到「基线推进之后仍然差异化」的能力上——避开通用能力(摘要、翻译、基础问答),聚焦于依赖提供商拿不到的数据与专长的领域特定能力。组织的专有文档、内部流程、积累的领域专长,创造出即使通用能力进步也仍然有价值的微调机会。164:145
  • 最耐久的优势是专有数据 + 深度组织整合:一个在组织历史决策上微调、嵌进其工作流系统、并持续从运营数据学习的模型,竞争对手用开箱即用的 API 复制不了。企业评估 AI 投资的判据就一句:这个能力在领域推进之后还会差异化吗? 会,就投;不会,就用标准 API(它们会随提供商进步自动变好)。164:147
  • 自建 vs 采购是一道会移动的题:提供商的微调 API 从当初粗浅的参数调整发展到支持复杂定制;提示缓存降低了「本来要把知识烤进权重」的上下文成本;预建的领域模型覆盖了常见垂直。每一次进步都把自研的门槛抬高。但这不消灭自研的理由,反而使它更锐利——当提供商方案够用就用它;当提供商方案不够用,自研的理由恰恰因为门槛已被抬高而更有说服力:如果一家企业的要求超出了成熟的提供商方案能给的,那些要求很可能反映着竞争对手难以复制的真实差异化。 这是持续的再评估而非一次性选择。164:151-155
  • 人才瓶颈:后训练最稀缺的资源不是算力也不是数据,而是人才——既懂训练动力学理论又会调试发散训练的 ML 工程师、能提供改善模型行为(而不只是填表)的反馈的标注员、能在技法选择与资源分配上有见识地判断的技术领导。基础实验室激进抢人、创业公司给传统企业匹配不了的股权包、学术管道产出比以往快但仍供不应求。处在「关键中间层」的企业,与基础实验室正面抢顶尖人才通常不现实;替代策略=用结构化培训培养内部人才、与研究机构合作、组建「小核心专家 + 更广工程支持」的混合团队。164:159-161
  • 标注队伍的建设值得特别注意:高质量人类反馈要求标注员既懂任务领域,又懂「什么让一个回答比另一个更好」的微妙之处;建这个能力要时间(学领域、通过练习建立校准、拿反馈改进判断)。投资建设标注队伍(而不是完全依赖众包或外包)是一项会随时间复利的能力资产——微调数据质量提升,模型质量随之提升。这笔人力资本投资不如算力开支显眼,但最终可能更有分量。 164:163
  • Parting Thoughts(全书回收):全书开篇的问题是「什么把『从 AI 系统里榨出非凡价值的组织』与『挣扎着做不出生产级结果的组织』区分开?」——答案更多在于技法的掌握,而非资源的获取164:167
  • 技法会变,什么不会变:反复出现的主题是——数据质量比数据数量更重要,一千条精心策展的样例胜过一百万条噪声样例;评估必须反映部署要求而非仅仅基准表现(在学术测试上出色的模型可能在运营现实里失败);每个设计决策都是相互竞争的好东西之间的取舍(能力 vs 效率、适配 vs 保全、定制 vs 通用),没有普遍最优的选择,只有适合特定情境的选择。具体算法会被更好的替代,架构会被新设计取代,工具和框架必定会变;但仔细的数据策展、严格的评估、周到的取舍分析这些底层原则会留下来。内化了这些原则的实践者,比只背下当前流程的实践者更容易适应新技法。 164:171-173
  • 收尾建议:从 SFT 起步(动件少、反馈信号清楚)· 先掌握单模态再碰多模态 · 先建评估基础设施,再上需要复杂评估的技法;「RL 听起来比 SFT 唬人」的诱惑可以理解,但跳过基础导向挫败与失败,从理解到精通的路是练出来的,没有捷径164:187
  • Vibe Check(研究监控):coding agent 可以每天扫 arXiv、按主题过滤、出周报,维护按相关度排序的阅读清单,抽取关键论断与结果,追引用网络找新兴的有影响力工作。这不替代自己读论文,但大幅减少「找哪些论文该读」的时间。 164:183-185
  • 全书最后一句的定位:后训练不只是技术学科,而是基础模型的非凡能力与真实世界部署的具体要求之间的桥;书给的不只是配方而是理解——「how 底下的 why」,以便适应本书没有预见的情形和还不存在的技法。对处在「关键中间层」的企业,后训练大概是通往有意义 AI 差异化的最可及的路径。 164:191-193

尾注文件可用(重要发现)

text/165-fm-notes.txt 不是乱码,是完整可读的 211 条参考文献(编号 1-211,含作者、标题、出处、arXiv 链接)。正文里的上标数字直接对应它。 这意味着:书里提到的几乎每一篇论文/工具,都能在书内拿到准确的题名与链接,不必上网猜。引用时按 ① 类(这本书)写即可,例: 出处:「NOTES」第 369 段(text/165-fm-notes.txt:369,搜「Self-Instruct」)。 text/166-fm-index.txt 是索引(页码),不读不引。