跳到主要内容

通读笔记 — large-language-models(边读边写)

出处格式:text/xx.txt:N = 段号。读到的关键机制、数字、可引短语随读随记。

前言(text/03-fm-preface.txt)

  • 来历:arXiv 综述《A Survey of Large Language Models》2023-03 首发,迭代到 v15,正文 140 页、1064+ 参考文献(¶13,搜「15th version」)。中文教材 2024-11 完稿,面向有深度学习基础的高年级本科生/研一;Springer 邀请译成英文即本书(¶13)。
  • 作者团队:中国人民大学高瓴人工智能学院(AI Box 组),赵鑫、周昆、李军毅、唐天一、文继荣;落款 Beijing, January 2025(¶15、¶35-37)。无利益冲突声明(¶23)。
  • 全书两大主轴(¶7):①高度可扩展的学习范式探索规模上限(next-token prediction,千亿~万亿参数);②以数据为中心的训练(data-centric),高质量大规模数据是基石。GPT-3 后 OpenAI 对技术细节守口如瓶(¶7 末)。
  • 学术界算力稀缺,前沿 LLM 主要在工业界(¶9)。
  • ChatGPT 2022-11 发布;GPT-4 2023-03;GPT-4V/GPT-4o;o1/o3 test-time scaling(¶5)。

Ch1 Introduction(text/06-ch01-1-introduction.txt)

  • 四代语言模型(¶49-57):
    • SLM 统计语言模型(1990s):n-gram、马尔可夫假设、阶数升→转移概率指数涨=「维数灾难」;平滑:back-off、Good-Turing;仍搞不定高阶上下文(¶51)。
    • NLM 神经语言模型:Bengio 2003 分布式词表示=word embeddings,低维稠密向量,解数据稀疏;对照 one-hot 稀疏编码;Word2Vec 2013 浅层网络(¶53)。
    • PLM 预训练语言模型:ELMo(BiLSTM,上下文相关词表示);Transformer 2017 只用注意力(¶55);BERT 只用 encoder+设计预训练任务;GPT-1 用 decoder+预测下一个词;「pre-training+fine-tuning」范式(¶55)。
    • LLM:scaling law;GPT-3 175B、PaLM 540B(¶57);ICL 上下文学习是 GPT-3 有而 GPT-2 无;emergent abilities 涌现能力(¶57);「large language models」一词专指显著大于 BERT/GPT-1 的 PLM(¶57)。
  • 关键转向:从「语言建模」到「任务求解」(¶61)。四代各自能解的任务不同(图1.2)。
  • 六大能力(¶71-81):世界知识面广;通用任务求解(下一词预测=多任务学习,GPT-2 论文 ¶73);复杂推理(有研究说是模式记忆,¶75);指令遵循;人类对齐(RLHF,¶79);工具使用(时间范围、数值计算弱,¶81)。
  • 六大关键技术(¶89-99):
    • Scaling:OpenAI scaling laws 2020(Kaplan);PaLM 540B;Chinchilla 2022 把注意力转向数据规模;小模型上不显现的能力:ICL、CoT(¶89)。
    • Data engineering:GPT-2 2019 技术路线;「simplicity is the ultimate sophistication」;三件套=收集/清洗/配比与课程(¶91)。
    • Large-scale pre-training:3D 并行(数据/流水线/张量)+ZeRO;DeepSpeed、Megatron-LM;先用小模型做 sandbox 实验;GPT-4 可预测训练架构(¶93)。
    • Capability eliciting:指令微调是「解锁」不是「注入」新知识(¶95);ICL、CoT 属于 prompt 策略;规划能力(¶95)。
    • Human alignment:3H 判据(helpfulness/honesty/harmlessness),本质主观、难以形式化;RLHF=训奖励模型+RL;DPO 简化;OpenAI superalignment 项目(¶97)。
    • Tool use:Toolformer、WebGPT;两种使能方式=指令微调+提示工程(¶99)。
  • 三大未解(¶101):内在机制不明;学术算力稀缺+训练过程不透明;对齐难题随能力增长变难。
  • 影响四领域(¶111-117):NLP 范式转移;IR→RAG、New Bing;CV→多模态、GPT-4o、Gemini mixed-modal token;AI4Science(Terence Tao 用 LLM)。
  • 全书结构(¶127-135):背景(ch2-3)/预训练(ch4-6)/后训练(ch7-8)/使用与评估(ch9-12)+ch13 总结。配套网站 llmbook-zh.github.io/en(¶123)。

Ch2 Background(text/07-ch02-2-background.txt)

  • LLM 定义无精确门槛:典型指百亿~万亿参数;也有把「数十亿参数+远超传统的数据量」算进来;本书口径=大规模参数或大规模数据(¶49/53,搜「no precise reference standard」)。
  • 构建两阶段(¶55-81):LLM=带大参数的函数,优化参数这个原理与传统 ML 相同,但目标是通用(¶55)。
    • 预训练(¶61-69):word2vec→ELMo→BERT→GPT-1 演化;GPT 系确立「decoder 架构+下一词预测」主流范式;Ilya Sutskever:大规模预训练=压缩世界信息,用时「解压」(¶63,搜「compresses world information」);开源模型已用万亿 token 训练(¶67);百亿参数模型≈至少百卡 A100 数月,千亿参数≈千卡~万卡(¶67,搜「hundred GPUs」);「人才是最重要的因素」(¶69,搜「talent is the most important」)。
    • 后训练(¶73-81):预训练完的模型像「刚毕业的学生」,还要岗前培训(¶73,搜「recent graduate」);指令微调=SFT=模仿学习,不注入新知识、只是激发(¶75);数据量:几十万百万条即够,对话任务数千数万条高质量即可(¶75);一台 8 卡 A100 服务器数天就能给百亿参数模型做完指令微调(¶75,搜「eight-GPU」);RLHF:标注员对输出排序→训奖励模型(¶77);RLHF 资源介于 SFT 与预训练之间(¶79)。
  • KM 缩放法则(¶91,搜「KM Scaling」):L(N)=(Nc/N)^αN,αN≈0.076;L(D) αD≈0.095;L(C) αC≈0.050;单位 nat(脚注1);实验范围:数据 22MbillionsB?原文「22M to 23B tokens」、参数 768M1.5B(¶95);三因素各自独立假设(¶95);架构差异对缩放法则影响不大(¶97);损失分解=不可约损失(真实数据分布的熵)+可约损失(¶99-103)。
  • Chinchilla(¶107-119):L(N,D)=E+A/N^α+B/D^β,E=1.69,A=406.4,B=410.7,α=0.34,β=0.28(¶111);C≈6ND;最优配比 N_opt∝C^a, D_opt∝C^b;KM:a≈0.73,b≈0.27→偏参数;Chinchilla:a≈0.46,b≈0.54→均衡(¶115);GPT-3 175B 只喂 300B token,远低于其学习能力;Chinchilla 70B 喂 1.4T(≈20 倍);LLaMA-3 8B 喂 15T——数据/参数比此后大幅上修(¶119,搜「15T tokens」);多数开源模型未到「数据饱和」(¶119)。
  • 缩放法则的用法(¶127-139):predictable scaling(GPT-4 报告):小代理模型选数据配比(DoReMi);监控训练、早期发现异常;接近不可约损失后表示质量仍随规模提升(¶131);数据枯竭→重复/合成(¶133);任务级:inverse scaling 现象(¶139);GPT-4 报告:编码能力可预测,多数任务不可;ICL 只在特定规模涌现、法则预测不了(¶139)。
  • 涌现能力(¶143-163):定义「小模型没有、大模型出现」(¶143);类似相变、无理论解释(¶143);本书立场:当「LLM 代表性能力」用,不纠缠小模型有没有(¶143)。
    • ICL(¶149):GPT-3 论文正式提出;prompt 里给指令+示例(demonstrations),无梯度更新;175B 有、GPT-1/2 无;任务相关:13B 会三位数加减,波斯语 QA 连 175B 也不行(¶149)。
    • 指令遵循(¶151):FLAN-PaLM 8B/62B/540B:≥62B 在 BBH(23 个复杂推理任务)显强零样本推理;小模型+高质量数据也能会,但只适合摘要类简单任务(¶151)。
    • 逐步推理(¶153):CoT;PaLM 62B/540B 受益、8B 无感;提升幅度 GSM8K>MAWPS>SVAMP;CoT 能力是强模型标志(¶153)。
    • 无统一临界规模;数据好→最小门槛持续下降(¶155)。
    • 涌现 vs 缩放法则(¶159):平滑可预测 vs 突跳难预测,两者可能得出矛盾结论。
    • 争议(¶161,搜「mirage」):可能是评测假象(不连续指标+稀疏规模点);指标连续化后突跳可能消失;但用户感知本来就是「对/不对」不连续——全过测试的代码优于错得少的代码;关联 grokking 现象(¶163);小孩语言发展的阶段式跳变类比(¶163)。
  • GPT 系演化五阶段(¶173,搜「early exploration stage」):早期探索/规模扩张/能力增强/性能飞跃/测试时扩展。
    • GPT-1(¶181):2018,GPT=generative pre-training;decoder-only;预训练+监督微调;~110M≈BERT-Base;当时没引起注意。
    • GPT-2(¶183):1.5B;WebText;目标是免微调直接解题;P(output|input, task);关键论断:「无监督目标的全局最小也是监督目标的全局最小,因为监督目标只是它在一个子集上的取值」(¶183,搜「global minimum」);Sutskever:「文本是真实世界的投影……预测越准,保真度越高」(¶183)。
    • GPT-3(¶189):2020,175B,百倍于 GPT-2;ICL 正式提出;训练(给上文续写)与使用(从描述+示例推答案)统一;PLM→LLM 的关键里程碑。
    • 能力增强(¶195-197):Codex 2021-07(GitHub 代码微调)→code-davinci-002→GPT-3.5,代码训练显著提升综合推理(¶195);人类对齐脉络:2017 博客(人类偏好 RL)→2017-07 PPO→2020 摘要(Stiennon)→2022-01 InstructGPT 正式 RLHF(¶197)。
    • 性能飞跃(¶205-211):ChatGPT 2022-11(InstructGPT 技术改编成对话;数据=人工对话+InstructGPT 数据改格式);GPT-4 2023-03(文本+图像;考试;6 个月迭代对齐;red teaming;predictable training);GPT-4V 2023-09;GPT-4 Turbo 2023-11(128K 上下文、2023-04 数据、function call、可复现输出、Assistants API);GPT-4o「omni」端到端多模态(音频不再转文字,能听语气;非英语文本显著提升)(¶211)。
    • o 系列(¶217):o1-preview 2024-09;输出=内部长 CoT 摘要+正式解答;o1 完整版+o3 2024-12;o3 在 ARC-AGI 拿 87.5%(¶217,搜「87.5%」);o1=放大 RL 训练,鼓励反思、回溯;从「又快又准」到「想久一点」的范式转变。
  • 局限:幻觉、特定情境风险(¶219)。

Ch3 Language Model Resources(text/10-13)

资源章(工具书性质,拆解时压缩成「选型地图」,不做主走查重头)。

  • 3.1 开源模型检查点(¶7 表3.1,截至 2024-01):BLOOM 176B/384 A100/105 天;LLaMA 65B/2048 A100/21 天/1.4T token;Falcon 180B/4096 A100/3.5T;GPT-3 175B/300B;PaLM 540B/780B/6144 TPU v4;MT-NLG 530B/4480 A100。
    • LLaMA 系(¶655-659):一代 7/13/33/65B;二代 +4096 上下文+GQA+RLHF chat;三代 8B/70B、词表扩到 128K、15T token、SFT+拒绝采样+PPO+DPO、训练效率约 3 倍、95% 时间有效利用(¶659,搜「15T tokens」)。
    • MOSS(¶663):16B 中英双语 2023-02;三阶段;677B token;1.2M 合成多轮对话。
    • Mistral/Mixtral(¶697-699):7B 胜 LLaMA-2 13B;GQA+滑窗注意力,16K 推理速度翻倍;Mixtral 8×7B MoE:总参 46.7B 每 token 只激活 12.9B,比 LLaMA-2 70B 快 6 倍。
    • DeepSeek(¶703-707):V3 671B 总参/37B 激活;无辅助损失负载均衡+多 token 预测;R1-Zero/R1 2025-01,基于 V3 放大 RL,「slow-thinking」,R1-Zero 比 o1(¶707)。
    • Qwen2.5 全系 18T token 预训练(¶693);Gemma-2 27B 13T(¶713);MiniCPM 2.4B:sandbox 实验→warm-up→稳定→退火(¶717)。
    • 3.1.2 LLaMA 变体(¶723-731):Alpaca(Self-Instruct 52K)、Vicuna(ShareGPT)、中文指令(Chinese-LLaMA)、领域(BenTsao 医/LAWGPT 法/TaoLi 教)、多模态(LLaVA/MiniGPT-4/InstructBLIP 底座 Vicuna)、AlpacaLoRA。
  • 3.2 预训练数据(表3.2 ¶5-253):
    • 网页:Common Crawl 2008 起 PB 级、噪声大需清洗(CCNet);C4 156B token/800GB,en.noclean 6T;RefinedWeb 全量 5T token、开源 600B(Falcon 主料);WanJuan-CC 清洗后只保留原始 1.38%(1300 亿文档→400GB,¶277,搜「1.38%」);WebText=Reddit ≥3 赞 45M 链接 40GB(GPT-2/3 用,不开源);OpenWebText 是开源复刻。
    • 中文:ChineseWebText 1.42TB 带质量分;WuDao 100TB 原始→去敏感 5TB、开源 200GB;SkyPile-150B 620GB/150B token、fastText 过滤。
    • 书:BookCorpus 11K 本未出版小说/10 亿词/5GB(GPT-1/2、LLaMA 都用);Gutenberg 70K 本公版书;arXiv 1.7M 篇 1.1TB;S2ORC 136M 篇。
    • 维基:300+ 语言、专业/多语/时效三特点(¶309)。
    • 代码:提升结构化推理与长程逻辑(¶315);The Stack 6TB/358 语言;StarCoder 783GB/86 语言、人工抽检确认是人写的。
    • 混合:The Pile 825GB/22 子集按质量加权;ROOTS 1.6TB/59 语言(BLOOM);Dolma 3T token(来自 200TB 原始,4 类清洗:语言/质量/内容/去重,OLMo 全开源,¶331)。
  • 3.3 后训练数据(¶7-339):
    • 指令数据三路:NLP 任务集改写(P3 270+ 数据集 2000+ prompt;FLAN-v2 四子集 Muffin 52%/T0-SF 15%/CoT 3%/NIV2 30%,每任务设上限防独大,¶215);日常对话(ShareGPT=用户上传与 ChatGPT 对话;OpenAssistant 91,829 问+69,614 人写答、35 语言带质量评级——答是人写的不是模型;Dolly 15K 员工标注);合成(Self-Instruct:175 人工种子任务→GPT-3 每次抽 8 个当示例生成新指令→过滤→迭代,¶231;Alpaca-52K 同法、40% 带输入,¶233)。
    • 对齐数据(¶237-339):HH-RLHF 169K(harmless+helpful,一问两答人选优);SHP 385K(Reddit 帖,两评论取高赞——全是人写的);PKU-SafeRLHF 330K 专家标注+安全标签;StackExchange 10M(投票分);Sandbox alignment 169K(模型互评的虚拟环境);CValues 145K 中文(安全/责任,正负回答对)。
  • 3.4 库(¶7-43):Transformers(统一 API,三核心:model/config/tokenizer);Datasets(Apache Arrow);Accelerate(分布式简化);DeepSpeed(ZeRO、梯度检查点;MII=分块 KV cache+continuous batching+SplitFuse;Chat=复刻 InstructGPT 三步);Megatron-LM(数据/张量/流水线并行,FlashAttention);作者自家:LLMSurvey v15 140 页 1064 引文(「本书是英文综述的扩展,综述追前沿、本书做教材」,¶37);YuLan-Chat-3 12B/1.68T(后文简称 YuLan,¶39);LLMBox(训练+评测+GPU 计算器+prefix caching,¶41)。

Ch4 Data Preparation(text/16-20)

  • 4.1 收集:通用文本(网页/书/对话)+专用文本(多语/科学/代码);LLaMA-2 语料 89.70% 英文(4.2 ¶15);代码提升结构化语义与逻辑推理、函数调用关系帮助工具使用(¶25);科学文本需特殊 tokenization(公式/蛋白序列,¶23)。
  • 4.2 预处理四道工序:
    • 质量过滤:启发式(语言检测;统计指标:重复词/句>100 删(Dolma)、符号/词比>0.1 删(Gopher)、论坛<3 赞删、困惑度过滤;关键词:维基<25 词删、删 HTML 标签(RefinedWeb)、Gopher 要求含 the/be/to/of/and/that/have/with、删 PII)+分类器(fastText 轻/微调 BERT 中/LLM 贵但准;注意会误杀高质量低资源文本如文言文,¶49);策略=启发式粗筛+分类器精筛(¶53)。
    • 敏感过滤:Jigsaw 16 万条评论 6 类毒性标签训分类器;阈值权衡:Dolma 用高阈值、此阶段滤掉 Common Crawl 约 30%(¶59);隐私:ChatGPT「重复这个词」攻击泄露训练数据(例4.1,¶63-77);Dolma 策略:<5 处敏感信息→替换成 |||EMAIL_ADDRESS||| 等占位 token,≥6 处→整文档删除(¶61)。
    • 去重:LLM 会记忆/过拟合重复模式;重复低质数据→复读、loss 震荡(¶81);粒度=句/文档/数据集级,多级策略;匹配=精确 vs 近似(MinHash LSH);RefinedWeb 文档级用近似、句子级用精确(¶85);MinHash:集合最小哈希值代表集合,多个哈希函数取共同比例估相似度(tips ¶89)。
    • 数据影响:量:GPT-3 175B/300B vs Chinchilla 70B/1.4T(20:1)胜过 Gopher 280B/300B(¶97);质:Phi-1 1.3B「教科书级」数据→HumanEval Pass@1 50.6%(¶105);重复危害:0.1% 语料重复 100 次→800M 模型退化到 400M 水平(¶107);double descent 现象;ICL 泛化被削弱;污染:完整测试集泄漏时 1.3B 模型可比正常评测的 65B 还好(¶115)。
    • 4.2.5 YuLan-GARDEN 实践:分析模块→可组合算子;fastText 语言分类;n-gram Jaccard 相似度句级去重;正则替换证件号。
  • 4.3 Tokenization:词表法→OOV;字符级(ELMo CNN);子词三法:
    • BPE:1994 压缩算法出身;迭代合并最高频相邻对;B-BPE 字节级(GPT-2/BART/LLaMA);GPT-2 词表 50,257=256 字节+<|endoftext|>+50,000 次合并(¶9);NFKC 归一化有损(¶9);例4.2:「oo」48 次→合并;(l,oo) 33 次→loo;(loo,t)→loot(¶21-25)。
    • WordPiece:Google 专有(语音搜索→2016 翻译→2018 BERT);合并分=freq(pair)/(freq(first)×freq(second))(¶33)。
    • Unigram:从大词表迭代删词,删后语料似然降得最少的先删;EM+Viterbi(¶39);T5/mBART。
    • 选择(¶43-49):自训 tokenizer(SentencePiece);两标准=无损重建+高压缩率(UTF-8 字节/token);例:1MB→20 万 token=5.24;LLaMA 英文 BPE 处理非英文差、延迟升;数字切分影响数学推理→数字专用 tokenizer。
  • 4.4 Data schedule:配比+课程。
    • LLaMA 配比:web>80%、code 6.5%、books 4.5%、scientific 2.5%(¶13);专用模型也要留 web 保通用(¶13)。
    • 可学习配比:DoReMi 式——小参考模型+小代理模型比 loss 差,差的域加权上调(¶21);假设「小模型行为≈大模型」未必成立(¶21)。
    • 课程:CodeLLaMA 2T 通用→500B 代码;Python 版再+100B;Llemma 再+50~200B 数学、掺 5% 通用当正则化(¶33);长上下文:2.5T@4K→20B@16K(¶35)。
    • YuLan 全流程(¶41-45):语料=CC+Books3/Gutenberg+知乎/维基,后期掺 Proof-Pile/GitHub;清洗=文档级启发式→句级→MinHash 去重;词表 51,200=LLaMA 词表+中文 BPE;代理 1.3B 小模型、每次实验 50B token;最优中英比 1:8;发现能力增长不均(生成快、数学慢)→按验证集手调;总量 1680B=英 1380B+中 280B+多语 20B;配比表:web 1174B/books 90B/news 134B/sci 48B/code 100B/other 134B(表4.1);三阶段=warmup→stable→annealing(退火阶段掺高质量指令数据,对评测提升关键,¶77)。

Ch5 Model Architecture(text/23-28)

  • 表5.1(¶13-478):GPT-3 175B=Pre Layer/Learned PE/GELU/96 层/96 头/12288 隐层;PaLM 540B=Pre Layer/RoPE/SwiGLU/118/48/18432;LLaMA-2 70B=Pre RMS/RoPE/SwiGLU/80/64/8192;GLM-130B=Prefix/Post Deep/RoPE/GeGLU;T5 11B=Enc-Dec。
  • 5.1 Transformer 基础:输入=token 向量+位置向量相加 x_t=v_t+p_t(式5.1);绝对位置编码训不到的长度表示不了(¶11);MHA:Q/K/V 线性映射,softmax(QK^T/√D)V(式5.5;转码丢了根号,写「按 key 维度缩放」);多头各算各的再拼接乘 W_O(¶35);对比 RNN(梯度爆炸/消失)与 CNN(只看核内)(¶15);FFN=两层线性+激活(式5.8);encoder=双向注意力+残差+LayerNorm(¶59);decoder=MaskedMHA+CrossMHA+FFN(¶67);末层 softmax 映射到词表(¶71)。
  • 5.2 四模块配置:
    • 归一化:LayerNorm(均值方差);RMSNorm(均方根,少算均值,Gopher/Chinchilla 用);DeepNorm(残差乘 α,支持更深,GLM-130B)(¶9-31)。
    • 位置:Post-Norm(收敛快但深层不稳)、Pre-Norm(稳,主流 LLM)、Sandwich(两头夹,可能训练崩溃)(¶35-55)。
    • 激活:ReLU→失活神经元问题;Swish/GELU;GLU 系 SwiGLU/GeGLU 加门控更好(¶59-77)。
    • 位置编码:绝对(正弦公式/可学习如 BERT);相对(Transformer-XL r_{i-j} 替换 key 位置项;T5 bias=按距离的可学习标量,有一定长度外推)(¶83-107);RoPE:每绝对位置一个旋转矩阵,R_i R_j^T=R_{i-j},H/2 个子空间各转 t·θ_i 角,基 b=10000,波长 λ_i=2π/θ_i,性能强+长程衰减,PaLM/LLaMA 用(¶109-125);ALiBi:注意力分减 m·(i-j) 惩罚,预设不需训练参数,外推好(¶127-131)。
    • 注意力变体:全注意力 O(T²);滑窗稀疏 O(wT)、感受野随层数线性长(Mistral);MQA 各头共享 K/V(PaLM/StarCoder);GQA 分组共享(LLaMA-2);FlashAttention(分块算+少读写)、PagedAttention(KV cache 分页)→ch9 详(¶137-147)。
    • MoE(¶155-163):每层 K 个专家(各是 FFN);路由网络 G(x)=softmax(topk(x·W_G));加权和输出;Mixtral 8×7B=每层 8 专家各 7B,每 token 选 2→激活 13B。
    • 推荐(¶167):Pre-RMSNorm+SwiGLU/GeGLU+RoPE/ALiBi=LLaMA 配置。
  • 5.3 三种主流架构(¶3-16):encoder-decoder(T5,双向编码+交叉注意力,现仅 FLAN-T5 少数);causal decoder(GPT 系;不分输入输出段、单向 mask、去掉交叉注意力;BLOOM/LLaMA/Mistral);prefix decoder(前缀双向+输出单向;GLM-130B、U-PaLM 可从 causal 续训改造成)。「decoder-only」通常指 causal。
  • 5.4 长上下文(两条路):
    • 缩放位置编码:长度外推定义;T5 bias/ALiBi/xPos 有一定外推但理解力不同(¶9);RoPE 原生不会外推——转角超出训练见过的范围(¶11);统一形式 f(t,i)=g(t)·h(i)(¶17)。
      • 直接微调:慢收敛、要大量数据(¶23);
      • 改位置索引:PI 线性插值 t×(Tmax/Tmax′),LLaMA-33B 2K→8K 只需千步级(¶33);ReRoPE/LeakyReRoPE 位置截断:阈值 w 内保留原索引,超出截断/线性插值,免训练可用但要额外算注意力(¶35-39);
      • 改旋转基:关键子空间(λ_i>Tmax,训练时没见过完整周期)导致异常(¶43);NTK-RoPE 调大基 b×α,α=(T′/T)^{H/(H−2)};Dynamic-NTK 按输入长度动态;微调用大基 b=10^8(¶53);旋转基截断(阈值 a/c,小基置零,牺牲位置区分度)(¶55)。
    • 调整上下文窗口:并行窗口(分段各自编码共享位置,分不清段间顺序)(¶67);Λ 形(StreamingLLM:开头 token+附近 token,注意力不均现象=开头注意力权重大;省显存但丢了被忽略的)(¶71);token 选择:token 级(LongLLaMA:远距离 KV 存外部向量库,Faiss kNN 检索,只在部分层)(¶77);chunk 级(块压成向量选相关块,免外部库,不同层/头可选不同块)(¶79)。
    • 长文本数据(¶85-87):几百步、数十亿 token 就能把 7B/13B LLaMA 扩到 100K+;但要有足够长的数据才稳;LongWanjuan 三分类=holistic 完整长文/aggregated 聚合/disordered 乱序——去掉 disordered、保留并可上采样 aggregated,提升明显。
  • 5.5 替代架构(状态空间模型):SSM=RNN+CNN 杂交;状态递推 S_t=A⊗S_{t−1}+B⊗x_t,y_t=C⊗S_t;展开=卷积核 K=(CB,CAB,…),y=x∗K,训练可用 FFT O(THlogT+THN²+TH²),解码只需上一步状态 O(N²H+H²)(¶51-65);S4=SSM+FFN 交替堆叠。
    • Mamba:A/B/C 变成输入 x_t 的非线性函数=选择机制,能挑信息;但用不了 FFT(¶71)。
    • RWKV:token shift(相邻 token 表示插值);time-mixing(门控 RNN)+channel-mixing(¶73)。
    • RetNet:多尺度保持;S_t=A S_{t−1}+k_t^T v_t,o_t=q_t S_t;可并行矩阵乘(¶75)。
    • Hyena:长卷积+FFT,M 个滤波器,门控加权(¶77)。
    • 复杂度表5.2(¶11-45):Transformer 解码 O(TH+H²)、训练 O(T²H+TH²);Mamba 解码 O(N²H+H²);RWKV/RetNet 解码 O(H²)。

Ch6 Model Pre-training(text/30)

全书工程含量最高的一章,主走查的金矿(参数计算→FLOPs→时间→显存,全部有可复算的数)。

  • 6.1 预训练任务:
    • LM:ℒ=Σ log P(u_t|u_<t);Sutskever 侦探小说例——读到最后一页「凶手是__」,预测越准、理解越深(例6.1,¶65-67);下一词预测=多任务学习:「...演得很好。It is very 」学情感分析,「James 三颗糖给 Nancy 两颗,现在有一颗」学算术(¶69)。
    • Prefix LM:随机切前缀/后缀,只算后缀损失;同数据量下略差于标准 LM(¶75)。
    • FIM 填中:prefix⊕suffix→预测 middle;代码补全用(¶77-81)。
    • DAE:破坏→还原(BERT/T5);要设替换比例等(¶87-91)。
    • UL2/MoD(¶95-99):S/R/X 三种去噪器,输入以 [S]/[R]/[X] 特殊 token 开头;R=掩 15%、片段 3-5 token;X=片段>12 或比例≈50%;UL2、PaLM-2 用。
  • 表6.1(¶105-426):GPT-3 batch 32K→3.2M;PaLM 1M→4M;峰值 LR:GPT-3 6e-5、LLaMA-2 1.5e-4、Qwen/InternLM 3e-4、DeepSeek 3.2e-4(batch 18M);优化器 Adam/AdamW(多数)、Adafactor(PaLM/T5);精度 FP16/BF16(新模型全 BF16);权重衰减 0.1;梯度裁剪 1.0。
  • 6.2 优化设置:batch 先小后大(前期快降 loss、后期稳收敛)(¶429);warmup 占 0.1-0.5% 步数、线性升到峰值 5e-5~1e-4、衰减到峰值约 10%(linear/cosine/inv-sqrt)(¶433);Adam=动量+二阶矩自适应,β1=0.9/β2=0.95(注意不是默认 0.999)/ε=1e-8(¶439);稳定四件套=梯度裁剪 1.0/checkpoint 跳坏数据/权重衰减 0.1/dropout 基本不用(数据大+有归一化,过拟合不是问题)(¶445-451)。
  • 6.3 可扩展训练:
    • 数据并行:复制模型、切数据、梯度平均(¶463);流水线并行:按层切卡,朴素串行(1前向→2前向→2反向→1反向)有气泡,配梯度累积填满(¶465);张量并行:切参数矩阵 HW=HW1⊕HW2,Megatron 按行/列切 W_Q/W_K/W_V/W_O/W_U/W_D(¶467)。
    • ZeRO(¶551-557):纯 DP 每卡存全量=16P 字节(参数2P+梯度2P+优化器状态12P);ZeRO-1 切优化器状态=4P+12P/N_D;ZeRO-2 再切梯度=2P+14P/N_D;ZeRO-3 再切参数=16P/N_D;TP/PP 叠加再除 N_P×N_T;PyTorch FSDP 同效。
    • 激活重算(gradient checkpointing):只存各层输入,反向时重算;省显存换算力(¶475)。
    • 混合精度(¶479):FP16=1+5+10 位,±65,504;BF16=1+8+7 位,量级 10^38,范围大,LMM 训练主流;保留一份 32 位主参数。
  • 6.4 账本(可复算!):
    • 参数量(¶499-505):=2VH+H+L·(4H²+3HH′+2H);LLaMA-7B:V=32,000, L=32, H=4096, H′=11,008 → 6,738,415,616,与真实值一致。
    • FLOPs:矩阵乘 2nmp;注意力总量=12CTL(H+N)(式6.6);线性变换=6C×线性参数量,重算则 8C(式6.7-6.8);注意力≈线性成本的 T/6H,T<H 时不足 1/6;线性参数占总参数>95% → 总成本≈6CP(重算 8CP)(¶527-531);例:LLaMA-7B 训 1B token ≈ 4.04×10^19 FLOPs(¶533)。
    • 时间(¶541):GPU 实际达峰值 30-70%;LLaMA-65B:P=6.5e10, C=1.4e12, 重算→8CP=7.28e23;2048×A100×2e14(峰值 3.12e14)→1.78e6 秒≈20.6 天,论文报 21 天——估算闭环!
    • 显存(¶551-613):激活=注意力(2+6+2)BTH+(不用 FlashAttention 再+2BT²N)+FFN(2BTH+6BTH′)+归一化 4BTH+输出层…;总量(16BTH+6BTH′+2BT²N)·L+4BTH+4BTV(式6.11),FlashAttention 去掉 2BT²N 项;其他:PyTorch 内核 0.8-1GB、ZeRO 1-4GB、softmax 中间量 8BTV(2 倍输入)、碎片 0.5-1GB;例:LLaMA-7B 双卡 A800-80G(B=8,FlashAttn+重算+ZeRO-3)每卡≈50.20(参数+优化器)+6.20(激活)+3.91(中间量)+6(其他)≈66GB(¶611);经验法则:全参训练至少 16P 字节→13B≥208GB→3 卡 A800-80G(B=2 太小)→建议 4 卡(B=12);30B→8 卡;65B→16 卡(¶613)。
  • 6.5 代码实践(¶617-625):Transformers+DeepSpeed;torchrun;ZeRO stage 1/2/3 JSON 配置;stage3 缓存参数越小越省显存但通信越多;≤30B 且 <16 卡用 DP+ZeRO 即可,70B/2048 卡需完整 3D 并行;NVLink/NVSwitch 卡间高速互联、InfiniBand 机间。

Ch7 Instruction Tuning(text/31-36)

  • 7.1 指令数据三路(¶7-15/19-21/37-41):
    • NLP 任务改造:给输入输出对加任务描述;去掉描述泛化显著变差(¶13,搜「significantly diminished」);反向构造(给答案生成问题);FLAN v2≈20M 条、NLP 任务首选(¶15)。
    • 日常对话:InstructGPT 用真实用户 query+标注员补题+另一批标注员写答案(¶19);ShareGPT=用户问+ChatGPT 答(例7.1 CPU 累加器多轮)。
    • 合成:Self-Instruct=175 人工种子→随机抽示例让 LLM 生成→过滤(重复/过长过短/难回答);Alpaca 用 text-davinci-003 合成 52K(¶47-77);Evol-Instruct=深度演化(加约束/加深/具体化/加推理步/复杂化输入)+广度演化(换主题),后处理删「改动极小/sorry/标点过多」(¶107-133);指令回译(维基文本当输出、学合成指令)(¶41)。
  • 关键因素(¶139-163):
    • 格式:任务描述提升理解与泛化;few-shot+zero-shot 混训都涨;掺 CoT 数据有效;但指令里塞「避免事项/理由/建议」可能反而有害(¶145,搜「adverse effects」)。
    • 规模:FLAN-T5 从 0.18M→17.26M 持续涨、7.2M 后明显放缓(¶149);Alpaca 52K≈text-davinci-003 对话水平;LIMA 1000 条微调 65B 即可满意(¶151);Orca 500 万条 GPT-4 逐步解释强化复杂推理(¶153)。
    • 精炼:Alpagasus 用 GPT-4 从 52K 挑 9000 条≈原 52K 效果(¶159);YuLan 用困惑度挑难度适中、按 293 个知乎话题改写增多样性(¶157)。
  • 7.1.5 效果(¶171-179):77M~540B 都受益、越大越明显;小模型+指令微调可胜大模型裸模型;跨架构/目标稳定;BLOOMZ-P3 用英文 P3 训、多语言任务比 BLOOM 提升 50%+(跨语言迁移,¶175);领域:Med-PaLM、BenTsao(¶179)。
  • 7.2 训练策略(¶9-31):目标=seq2seq loss(只算输出部分);InstructGPT 175B batch 8、恒定 LR 5.03e-6;Alpaca batch 128、2e-5 cosine(¶11);多轮对话=一次前向+mask 只算各轮回答(¶13);混数据:FLAN v2 配比 FLAN 46%/T0 27.9%/NIV2 24.2%/CoT 1.8%,各设上限 30K/20K/5K/100K(¶23);多阶段:先 NLP 任务数据后对话+合成,第二阶段掺 NLP 防灾难性遗忘(¶27);指令数据掺进预训练:GLM-130B 5%、MiniCPM 退火阶段、OPT-IML 在 SFT 时掺 5% 预训练数据稳训练(¶31)。
  • 7.3 PEFT:
    • LoRA(¶17-29):W=W0+A·B^T,冻结 W0,训 A(H×R)、B(H×R),R≪H;训完合并 W0+AB^T,推理零开销;显存:全参 16P → LoRA 2P+16P_LoRA;只加在注意力四矩阵时 P_LoRA=8LHR;LLaMA-7B R=8→P_LoRA=8,388,608≈8.4M,显存 13.6GB vs 108GB(¶29,搜「8, 388, 608」)。
    • AdaLoRA:按重要性动态分配各矩阵秩(¶33);QLoRA:底座量化到 4bit+LoRA 16bit→0.5P,65B 单卡 A6000 48GB 可训(¶35)。
    • Adapter(串行瓶颈 h+σ(hW_d)W_u)、Prefix tuning(K/V 拼可训练前缀 10-100 虚拟 token)、Prompt tuning(只在输入嵌入层;P-tuning 自由位置+LSTM)(¶47-67)——LLM 上用得少。
  • 7.4 实证(§7.4,本书自做实验):
    • 全参微调 Alpaca 52K 3 epochs ctx512(ZeRO-3+BF16+重算):7B=2 卡/3.0h;13B=4 卡/3.1h;33B=8 卡/6.1h;65B=16 卡/11.2h(表7.1)。
    • 数据集对比(表7.2,LLaMA-2):FLAN v2 在 NLP 任务最好(MMLU 50.25/BBH 40.63)但对话最差(AlpacaFarm 12.38);ShareGPT 对话最好(55.53);Alpaca 居中(46.58);Alpaca+复杂度/多样性→52.92 逼近 ShareGPT;13B 多样性版 48.51→58.20(¶207-209);同数据下 13B 全面胜 7B(BBH FLAN 40.63→45.47)(¶211)。结论:数据格式越像下游任务效果越好。
    • LoRA(R=16):7B 单卡 2.3h;13B 单卡 3.8h;33B 单卡 batch 只能 1、10.2h;65B 双卡 26h(表7.3)——大模型 LoRA 显存放参数占满、batch=1 拖效率(¶271)。

Ch8 Human Alignment(text/38-44)

全书最长一章(~87k 字符),RLHF 讲得最全。

  • 8.1(¶7-31):对齐动机:预训练/SFT 只管预测下一 token,不管人类价值观;例8.1 YuLan 对齐前后答「农村地价便宜是否更适合污染产业」——对齐前顺着错误前提答是,对齐后指出前提有问题(¶17-23);3H 判据:helpfulness(含主动澄清模糊任务)/honesty(三者中最客观、最不依赖主观标注,¶25)/harmlessness(高度依赖用户与场景,¶27);行为/意图/道德对齐等其他提法本质相似(¶29);判据主观、难以形式化为优化目标→引出 RLHF;实践中 red teaming 广泛使用(¶31)。
  • 8.2 RLHF(¶7-255):
    • 三组件:待对齐模型(策略)、奖励模型、RL 算法(PPO);InstructGPT 奖励模型=6B GPT-3;现在建议奖励模型与目标模型同规模或更大,LLaMA-2 用同一 checkpoint 初始化两者(¶11)。
    • 三步:SFT(先会听话)→奖励模型(人对多个输出做偏好标注)→RL(奖励分+KL 惩罚防偏离初始模型)(¶19-23)。
    • 标注员筛选(¶31):Sparrow 要求英国母语本科;InstructGPT 先让研究员标小样本、算候选人与之一致性;「super annotators」长期协作。
    • 反馈形式(¶37-39):打分制(细则化;GPT-4 用规则当 prompt 的分类器打分);排序制(直接排序不稳定→Elo 等级分,源自国际象棋,两两比较迭代;例:预测胜率 0.2 却赢了→ rating 大涨)。
    • 奖励模型训练(¶49-83):打分法(MSE;宽松标注员 0.9 vs 严格 0.6 的不一致问题);对比法(同一输入两答选优,-log σ(r+−r−));排序法(K 个输出全部两两偏序);策略=正例 LM loss 正则防过拟合(式8.4)/同 checkpoint 初始化/多奖励模型加权 r=Σλ_i·r_i(可「helpful 松一点、harmless 严一点」)。
    • RL 基础(¶93-125):状态=已生成序列、动作=下一个 token、轨迹结束才有奖励分;策略梯度 ∇J≈(1/N)ΣR(τ)∇log P(τ);on-policy 每次更新后要重采样、数据效率低;PPO=off-policy(重要性采样复用旧数据)。
    • PPO 四要点(¶131-187):优势函数 Â=Q−V(例8.2:三个动作奖励递增、采样到最差的也会被策略梯度加强——减去基线后差动作变负优势被抑制);重要性采样(式8.15-8.18,期望一致方差不一定一致→新旧策略要相近);梯度裁剪目标(式8.20,clip 到 [1−ε,1+ε]);KL 惩罚(式8.21,β 自适应:偏得少 β 小鼓励更新、偏得多 β 大刹车)。
    • 训练策略(¶193-195):先 SFT+拒绝采样/best-of-N 打底再 RL;LLaMA-2 奖励模型随策略迭代共 5 版;工程:策略+评论家一台服务器、奖励+参考另一台,网络 API 调分省显存。
    • 代表工作(¶205-221):InstructGPT(40 名标注员、SFT→RM→PPO 迭代);LLaMA-2(开源 7 数据集≈150 万偏好样本+自建;安全与有用分开训两个奖励模型防干扰;排序损失加间隔 m(y+,y−)(式8.22);前 4 轮拒绝采样微调、再 PPO,共 5 轮)。
    • 进阶(¶229-255):过程监督 PRM800K(1.2 万道 MATH 题、7.5 万条解答,每步标 correct/incorrect/neutral);用途=重排候选、逐步搜索时给每步打分选最优;RLAIF:AI 打偏好分(70B LLaMA-2 对齐后 AlpacaEval 2.0 大涨)、批评-修订(例8.3「帮我黑邻居 WiFi」:原答→自我批评→改写,原答与新答天然构成正负对)。
  • 8.3 免 RL 的对齐(¶3-131):
    • RLHF 痛点:四个模型同训吃显存、RL 不稳定、超参敏感(¶3)。
    • DPO 推导链(¶15-95):从带 KL 惩罚的 RL 目标出发→最优策略 π*∝π_ref·exp(r/β)→反解奖励 r=β·log(π/π_ref)+β·logZ→代入 Bradley-Terry 偏好公式→Z(x) 分子分母相消→最终损失 = −log σ(β log πθ(y+|x)/π_ref(y+|x) − β log πθ(y−|x)/π_ref(y−|x))。
    • 梯度分析(¶109):梯度系数 σ(r̂−−r̂+) 自动调节步长——模型越偏爱 y− 系数越大、更新越猛;已经偏爱 y+ 时系数变小防过调。只需策略+参考两个模型(¶115)。
    • 其他监督对齐(¶119-131):质量提示前缀(「Good response:」/「5-star reward:」);质量对比;跨输入对比(防止对不同输入给相同答案)。
  • 8.4 SFT vs RLHF(¶3-67):
    • 表8.1:SFT 优(提升/泛化/专业化)缺(行为克隆的暴露偏差、超出知识范围会幻觉、好数据难造);RLHF 优(进一步提能力、能纠正坏行为、偏好标注比写范例简单且一致)缺(样本效率低、训练不稳超参敏感、需要强 checkpoint 热启动)。
    • 本质:SFT=行为克隆,token 级模仿;RLHF=文本级对齐损失(¶45-47)。
    • SFT 是「解锁」不是「注入」;指令数据超出模型知识范围会加重幻觉;John Schulman:用大模型蒸馏小模型可能增加幻觉(¶53)。
    • RLHF 只评偏好不写范例→标注员能评自己写不出的内容;模型可探索到示范之外;GPT-4 用 RLHF 减幻觉(¶61-63);RLHF 要从 SFT 起步(¶65)。
  • 8.5 幻觉(¶3-69):
    • 分类(表8.2):实体错(南京长江大桥 1970,实际 1968)、关系错(海水氮含量高于氯;盖茨晚于扎克伯格出生)、不完整(四大发明漏火药)、过时(微软 CEO 答 Bill Gates)、过度断言(维 C 治所有感冒)、不可验证(编造存在的书名)。
    • 原因(¶29-47):数据质量(模仿陷阱:错误被学会复现)、分布(过时、领域缺、长尾更易幻觉);训练(自回归注意力随长度衰减;teacher forcing→暴露偏差);后训练(蒸馏超出能力;RLHF 可能学「迎合偏好而非真实」);解码(复杂 prompt;温度越高低频词越多→幻觉越多)。
    • 检测(¶53-57):prompting(GPT-4 判官,切段逐句验)、不确定性(token 概率;API 黑箱用自洽性=同问多答比一致;或让模型据答 reconstruct 问题比对)、外部工具(逐句搜索引擎核验+计算器/代码解释器)。
    • 缓解(¶63-69):对齐训练(GPT-4 当教官迭代改写直到无幻觉,正负对训奖励模型);RAG(retrieve-then-generate,检索结果与模型知识冲突时要过滤);高级解码(动态 top-p:句首 p 高保多样、句中渐降保事实、设下限);改进 prompt(领域信息、指定角色、让模型自我反思)。

Ch9 Decoding and Deployment(text/46-51)

  • 9.1 解码策略(¶7-87):
    • 贪心:每步 argmax;翻译/摘要这类输出紧扣输入的任务好用;开放生成会复读(¶15);随机采样(¶19);beam search:保留 n 条整体概率最高的候选,n=36,过大反而变差(¶31);长度惩罚:负对数概率除以 L^α(α≈0.6-0.7),否则偏向短句(每乘一次 <1)(¶35);重复惩罚:n-gram 惩罚(n=35)、presence penalty(logits 减 α)、frequency penalty(logits 减 α×次数,α 0.1~1)(¶37)。
    • 采样改进:温度 t(式9.3):t<1 更尖、t=1 标准、t→0 等于贪心、t→∞ 均匀(¶47);top-k 固定 k 不看分布形状(确定场景如「世界最高峰是__」k 大就出错)(¶51);top-p/核采样:按概率降序累加到 ≥p 为止;例:coffee 0.681+water 0.119=0.80→只在这两个词里采(¶55);对比解码:大模型 log 概率减小模型 log 概率;Columbus 例:XL 给 Spain 15%/1451 10%,small 给 Spain 10%/1451 0.1%→相减后 1451 相对放大(¶57)。
    • 实际配置(¶63-71):T5/GPT-3 默认 beam 4+长度惩罚 0.6;Alpaca top-k 50+top-p 0.9+温度 0.7;LLaMA 问答用贪心、代码 Pass@1 温度 0.1/Pass@100 温度 0.8;OpenAI API 温度 0=贪心、presence/frequency penalty 参数。例9.1:体温问题,贪心 37°C 简洁;频率惩罚版更短;top-p 0.95 版最详细(36.5-37.5)。
  • 9.2 效率优化(¶7-295):
    • KV cache(¶11-19):每步只有新 token 需要算,旧 token 的 K/V 缓存复用;两阶段=prefill(整段输入一次算完+建缓存)+decoding(逐 token)。
    • 算术强度(¶25-27):I=计算量/访存量;A100=312 TFLOP/s(FP16)、带宽 2039 GB/s→Imax=142.51 FLOP/字节;I<Imax=访存受限(memory-bound),I>Imax=算力受限。
    • 瓶颈结论(¶219-221):prefill(B=8,T=1024)线性变换强度≈2730、注意力≈114.67→compute-bound;decoding 全部 ≤8→memory-bound=「内存墙」——推理低效全在解码段。
    • 系统级:FlashAttention(分块+算子融合,不存 QK^T 中间量;LLaMA-2 7B/seq2048/batch8 注意力时间降到 1/10)(¶231);PagedAttention(KV cache 预分块,免反复分配;查询与多块并行)(¶235-237);continuous batching(实例级调度,谁完谁退、新请求即进;SplitFuse 让 prefill 与解码混跑)(¶243)。
    • 算法级:投机解码(小模型一次草拟数个 token、大模型一步并行验证;例:「给我六小时砍树」9 词:小模型 4 次草拟 12 个 token、大模型验证 4 次即完成,≈2 倍加速且不掉质量)(¶253-255);级联解码 FrugalGPT(模型从快到慢排队+二分类器把关)(¶259);非自回归/半自回归(一次出 3-10 个;Medusa 加两个头预测第 2/3 个 token;直接用质量差,常与投机解码合用)(¶263-265);early exit(逐层预测头+熵阈值,置信就提前出)(¶269);mixture-of-depths(路由逐层决定跳不跳)(¶271)。
    • 库(¶281-287):llama.cpp(C/C++ 全平台,1.5~8bit);vLLM(PagedAttention+continuous batching);DeepSpeed-MII(SplitFuse);FlexFlow(tree attention 一次验证多条投机)。
  • 9.3 量化(¶5-347):
    • 基础:浮点→整数映射;Xq=R(X/S)+Z,S=缩放因子(截断范围)、Z=零点;反量化还原;均匀/非均匀;对称(Z=0,8bit 有符号 [-128,127])/非对称(Z≠0);粒度=tensor 级→group 级(128 列)→channel 级,越细越准参数越多(¶35)。
    • 算例(¶41-51,可走查):X=[[1.2,2.4,3.6],[11.2,12.4,13.6]],非对称:解方程组 S·(127+Z)=13.6、S·(−128+Z)=1.2→S=0.0486、Z=152;Xq=[[−127,−103,−78],[78,103,127]];反量化≈原值(误差第四位)。对称:必须盖住 [-13.6,13.6],S=0.1067,[-13.6,1.2) 完全浪费、误差更大。
    • LLM 特殊性(¶57-109):PTQ 为主(省算力)+激活有离群值;权重:GPTQ(按列分组逐列量化、余列补偿,lazy batch+Cholesky,3/4bit);AWQ(0.1%~1% 显著权重对应大激活维度,激活感知缩放);混合精度分解 LLM.int8()(参数>6.7B 出现离群激活且集中在固定通道→离群通道 FP16、其余 INT8);SmoothQuant(s_j=max(x_j)^α/max(w_j)^(1−α),α=0.5,把激活的量化难度搬给权重);QLoRA(4bit 底座+16bit LoRA)。
    • 经验(¶127-131):INT8 权重几乎无损;同显存下优先「更大模型+4bit」而非「更小模型+8bit」(60B@4bit > 30B@8bit);激活比权重难量化;2bit+LoRA 补偿:65B@2bit≈13B@FP16。
    • 自做实验(表9.3,¶153-283):LLaMA-7B 显存 FP16 12.58GB/INT8 6.65/INT4 3.94;13B:24.40/12.53/7.34;分数基本持平(ShareGPT AlpacaFarm 75.59/73.79/71.99);建议:显存紧张优先 4bit(¶137)。
  • 9.4 蒸馏与剪枝(¶7-81):
    • 蒸馏:反馈式(软标签=教师 softmax 分布,KL 损失)vs 特征式(中间层激活,信息更富但有结构不匹配问题)(¶15-27);LLM 白盒/黑盒;CoT 蒸馏:大模型生成推理过程+答案一起教小模型,ℒ=ℒ_label+λℒ_cot(例9.2 高尔夫题)(¶33-45)。
    • 剪枝:结构化(删神经元/通道/层;L2 范数重要性;torch prune.ln_structured;真减矩阵乘)vs 非结构化(0/1 掩码乘权重;L1 范数 30% 例;压缩比高但不加速、需专用软硬件)(¶55-59);SparseGPT 非结构化剪 60% 困惑度稳定;LLM-prune 剪 20% 保 93.6% 精度;Sheared LLaMA:7B→2.7B、续训 50B token 后保 87.8%(¶63,搜「87.8%」);方法=目标结构化剪枝(掩码变量+拉格朗日约束:头数/维度/层数)+动态 batch loading(哪类数据学得差就加大配比)(¶65-81)。

Ch10 Prompt Engineering(text/53-58)

  • 10.1 基础提示(¶7-175):
    • 四要素(¶11-55):任务描述(例10.1:QA 用 ### 分隔+「找不到就答无法找到」;代码补全「You are a programmer」;推荐任务规定输出格式)、输入数据(表格线性化;图数据转代码表示)、上下文信息(检索文档;few-shot 示例——网球球例)、提示策略(「Let's think step by step」;「You are an expert」;拆多轮)。
    • 四条设计原则(¶75-151):目标明确(多说该做什么少说别做什么;「Question: Short Answer:」压长度;选择题约束输出空间;排序任务让它输出 ABCD 指示符)、拆子任务(编号步骤;「三个专家各自写一步再互相看」=单 prompt 版树思考;让它自查)、few-shot(格式范例对复杂输出格式很有用;示例顺序影响大、长输入的问题位置也影响;可用模型自生成的示例)、模型友好格式(###/三引号/XML 标签强调;英文指令更好——先翻译;数学任务用 python 代码风格 prompt)。
    • 自动优化(¶161-175):离散(梯度法 AutoPrompt [MASK] 逐位替换、慢;RL 法;编辑法——只有 API 时用;LLM 法=生成候选 prompt→目标模型评→蒙特卡洛多轮,要带历史防局部最优);连续(prefix/prompt tuning;多源任务 prompt 按注意力加权组合)。
  • 10.2 ICL(¶7-131):
    • 形式化(¶11):任务描述 I+k 个示例 D_k(格式化函数 f)+测试输入→生成;与指令微调的差=ICL 不动参数(¶15)。
    • 示例设计(¶25-111):选择(kNN 相似度用 BERT 嵌入;多样性 MMR/DPP;LLM 打分器+分类器);格式(人工:输入输出→加任务描述→加 CoT,例10.5;自动:种子模板让 LLM 生成新任务的模板,例10.6);顺序(位置偏差敏感;按相似度排序、最像的放最近;无测试集时用预测分布的熵评估,熵低者好)。
    • 机制(¶121-131):训练侧——MetaICL 元训练(多任务、每任务抽几个当示例练「按示例预测」,可免任务描述);多域数据、长程依赖文本拼接都有益;梯度相似度筛出的高贡献数据富含低频长尾词。推理侧——任务识别(调用预训练已有知识;任务向量)vs 任务学习(隐式微调=前向中的隐式梯度下降;还能模拟决策树等算法);350M 小模型只会识别;换无关标签(foo/bar)实验:大模型掉分少=真能从示例学新映射。
  • 10.3 CoT(¶7-49):
    • 基本形:⟨输入,思维链,输出⟩三元组;零样品版咒语「Let's think step by step」「Take a deep breath and work on this problem step by step」(¶7)。
    • 增强(¶19-29):示例设计(复杂化=步数多+题干长;多样化=k-means 聚类每簇选代表;示例 CoT 有错也没关系);生成(自洽性=采多条路径投票;DIVERSE 验证器=全路径二分类器「答案对=正例」+逐步验证器「与正确路径重合的步=正例」);结构(ToT=树,24 点游戏:每节点打置信分、早剪枝——CoT 只能在终点验证错了重来;GoT=图,节点任意连,长数组排序=分 4 组各自排再归并,子节点可交互)。
    • 讨论(¶49):起源=训练数据中重叠变量簇(贝叶斯网络实验:两变量不共现,加中间变量预测偏差大降);复合函数视角=信息聚焦(关注中间步)+ICL 两阶段,信息聚焦降低 ICL 复杂度;扰动实验=符号与模式主要传达任务意图、公式对错几乎不影响(要的是与问题相关+逻辑连贯);CoT=表达任务意图更强的 ICL;即使不用 CoT prompt,采样 top-k 首词里含推理路径的候选更可能答对。
  • 10.4 RAG(¶7-51):
    • 三阶段(¶11-15):检索(稀疏倒排索引 vs 稠密向量 ANN);prompt 构造(长文档直拼会「lost in the middle」→重排/压缩);生成(模型自评是否需要再检索)。
    • 增强(¶25-51):检索源(命题 proposition=语义完整最小片段做检索单元,用 GPT-4 合成数据训小模型抽取;query 扩展/改写/拆子查询,可蒸馏到小模型);prompt(重排:IR 重排模型或 LLM 排序,把不相关放中后位;按模型反馈训重排器;上下文压缩:抽取/摘要/token 级按预测概率筛——注意先保实体防删姓);流程(迭代检索=生成结果拼进新 query,按困惑度/熵决定停;CoT 中间步当 query;自适应=模型自己决定何时检索,特殊符号/困惑度阈值触发);训练(指令微调:相关文档放不同位置、掺无关内容练抗干扰;预训练:标题/前半段当 query 预测后文)。

Ch11 Advanced Reasoning(text/60-64)

  • 11.1 规划(¶7-55):框架=任务规划器(LLM)+执行器+环境(¶7);计划格式:代码(精确、可接解释器)vs 自然语言(多跳问答/推荐这类难形式化的任务)(¶25);一次性生成(容错低)vs 迭代生成(ReAct「先想再做」:Thought+Action+Feedback 循环;出错可回溯=ToT)(¶29-31);反馈(¶43-55):外部(代码解释器报错/人/游戏环境)+内部(LLM 自评「当前动作对吗」;把成败反馈扩写成自然语言总结——Reflexion:上一轮反思写进 prompt,下一轮把查「Allo Allo!」改成查「Sam Kelly」)。
  • 11.2 智能体(¶7-125):定义=感知/决策/执行;演化=规则式→RL 模型式→LLM 式(¶7-9);三组件(¶17-71):记忆(短期=上下文窗口;长期=外部存储+检索+反思更新,容量满删过时;RecAgent 例11.1:Bob 看电影《星际穿越》,记忆重要性打分 6)、规划(引用 11.1)、执行(内部 LM 或外部工具);工作流=感知→取记忆→规划→执行→反馈进短期记忆→过滤后写回记忆。多智能体(¶79-89):定义问题→造 agent(角色分工)→定交互协议(合作/竞争/谈判);通信=协议+拓扑+内容;要求=及时/可靠/安全。应用(¶97-111):WebGPT(文本浏览环境,带引用回答);MetaGPT(产品经理/架构师/工程师/测试角色+软件工程流程;基础层+协作层;效率高但生成的代码不一定能跑);西部世界沙盘(角色 profile+小镇+行为全用自然语言记录;生成式智能体=模拟研究的技术底座;开源库 AgentScope/RecAgent)。挑战(¶117-125):每个动作都要调 LLM 算力大;工具兼容;多 agent 通信规模;长时记忆与身份一致性;真实世界部署(硬件/安全)。
  • 11.3 长 CoT 推理(¶7-93):
    • 概览(¶27-37):DeepSeek-R1 例(196 的因子数;「中国人口最多的城市」明明能直接答却也长篇推理);触发词「wait」「double check」「make sure」「avoid」引发验证/反思动作;o1 的模式=系统分析/方法复用/分治/自我改进/上下文识别/约束强调;两大优势=①打破自回归「一次定终身」(标准 CoT 错了没法回头),②文本里原则上能模拟树/图搜索(但要靠训练涌现,不是天生)。
    • 数据构造(¶47-57):蒸馏(STILL-2 用 DeepSeek-R1-Lite+QwQ-32B;长度分布是质量关键=难度信号,数学题最重要;少量精选数据即可激活慢思考;R1 蒸馏数据能提升 Qwen/Llama);搜索合成(MCTS:节点=推理步,rollout 打 Q 值,根到叶轨迹=带试错的长 CoT);多智能体协作(互相批评辩论)。
    • 训练(¶67-83):长 CoT SFT(两个目标=格式遵守+能力激发;Qwen2.5-32B 只用 3900 条蒸馏数据≈o1-preview/QwQ 数学水平;跨域泛化——只用数学数据训,物理化学也涨,因为这是「推理模式」不是领域能力;可自然扩到多模态);SFT 有天花板(模仿学习的限制;数据够多后拒绝采样/DPO 增益递减);副作用=简单题也默认长思考。放大 RL(DeepSeek-R1/Kimi-K1.5 公开了方法):策略模型(SFT 暖启激活模式;R1-Zero 跳过 SFT 用格式奖励约束输出);奖励模型(可验证奖励=答案对 1 错 0,反直觉但 RL 的本质就是用简单激励引导自主探索;额外奖励=完整性/不过长/不重复;ReFT;局限=只能用于有确定答案的任务,但模式可泛化);RL 算法(PPO 要维护价值模型太贵→GRPO/RLOO 启发式去掉价值模型;盯平均响应长度=能力增长的信号,对应 OpenAI 的 test-time scaling law)。
    • 扩展讨论(¶89-93):test-time scaling 本质=拿推理成本换性能(自洽性/规划/agent 都算;长 CoT 的特色=在单次响应的自然语言空间里搜索);两把尺子=token 效率与性能上限;放大 RL 更省 token(R1-Zero 8000+ 步仍在涨);前景=领域专家级小模型;安全对齐要专门做。

Ch12 Evaluation(text/66-71)

  • 12.1 指标(¶5-183):PPL=建模概率倒数几何平均(对数和式12.3);分类=precision/recall/F1(混淆矩阵);BLEU=n-gram 共现精确率×长度惩罚 BP,n=4,截断计数(式12.9);ROUGE-n=召回向;ROUGE-L=最长公共子序列+F1;QA=accuracy/EM/F1;任务执行=成功率+Pass@k(无偏估计式12.12:1−C(n−c,k)/C(n,k));Elo(E_A=1/(1+10^((rB−rA)/400)),更新 rA+=K(SA−E_A))。
  • 12.1.2 三种范式(¶187-297):基准评测(封闭题;MMLU/C-Eval=人类考试、BIG-Bench=人工标注、HELM=基准数据;底座模型用 few-shot+CoT);人工评测(Chatbot Arena=匿名两两对比+Elo;HELM 直接打分);模型评测(AlpacaEval=GPT-4 判官;MT-Bench=多轮;开源判官微调)。优缺点:基准=可复现但 prompt 敏感+数据污染;人工=贴近真实但主观贵不可复现;模型=可扩展可解释但有位置偏差/冗长偏差/自我偏好偏差。
  • 12.2 基础能力(表12.4):
    • 语言生成:LAMBADA 10022 段预测末词(人读全文能猜、只看末句不能);WMT 翻译(BLEU/COMET/BLEURT);XSum 226,711 篇 BBC 单句摘要;HumanEval 164 题零样本 Pass@k;AlphaCode CodeForces 前 28%(¶31)。问题=自动指标与人工不一致(生成了参考文本没有的好答案会被低估)、专业生成弱+灾难性遗忘(¶39-45)。
    • 知识利用:闭卷 QA(NQ 323,045=Google 真实查询;Web Questions 6642 Freebase;TriviaQA 95K+65 万证据三元组);开卷(OpenBookQA 5957 题/1326 科学事实;SQuAD 2.0 含不可答问题);知识补全(FB15k-237 310,116 三元组/14,541 实体/237 关系——删反向关系防泄漏;WikiFact=高频关系好、低频关系差)。问题=幻觉(概率本质+知识边界不精确)、知识过时(检索增强/模型编辑)。
    • 复杂推理:知识(CommonsenseQA 12,247 题 ConceptNet,人类 88.9%;HellaSwag 7 万场景对抗选项;Social IQa 3.8 万+);符号(尾字母拼接{apple,banana,cherry}→eay;抛硬币);数学(GSM8K 8500 题 2-8 步;MATH 12,500 竞赛题难度 1-5 LaTeX)。问题=推理不一致(对的答案错的路径;对措辞微变敏感;ToT/Self-Refine/过程反馈/转代码)、数值不准(分词不一致:7481→「7_481」vs 74815→「748_15」→逐位分词;计算器)(¶229-235)。
  • 12.3 高级能力(¶7-115):对齐(TruthfulQA 817 题 38 领域对抗性;HaluEval 5000 ChatGPT 回答+3 万例标注幻觉;CrowS-Pairs 1508 对 9 类偏见比 PPL;WinoGender 720 句职业代词消解;RealToxicityPrompts 10 万 prompt 毒性 0-1;Chatbot Arena Elo)。环境交互(ALFWorld 120 类文本家务环境;WebShop 118 万 Amazon 商品+1.2 万真实指令)。工具(HotpotQA 11.3 万多跳;APIBench 16,450 指令-API 对(TorchHub/TensorHub/HF),指标=准确率+幻觉率;ToolBench 16,464 指令 49 类 RapidAPI;LLM 能自造工具)。
  • 12.4 综合基准(¶7-117):MMLU(五选项?四选项 MCQ,5-shot;GPT-4 86.4%);BIG-Bench(204 任务;Lite 24;BBH=低于人类水平子集;Brier 分数评信心);HELM(16 核心场景×7 指标=准确/校准/鲁棒/公平/有害/效率/偏差,自顶向下);C-Eval(中文,初中到大学;C-Eval Hard);其他 CMMLU/AGIEval/MMCU/M3KE;TyDiQA 多语、MGSM 多语数学;框架=LM Eval Harness/OpenAI Evals/Open LLM Leaderboard;选型指南(¶351-357):通用=MMLU/BBH(+中文 C-Eval/CMMLU)、推理=GSM8K/MATH/DROP、代码=HumanEval/MBPP、知识=NQ/TriviaQA、常识=Social IQa/PIQA/ARC、对齐=TruthfulQA/WinoGender/CrowS-Pairs/RealToxicityPrompts;注意数据污染;闭源模型总体强于开源,但难基准上仍不及人类上限。LLMBox 支持 53 个基准(¶361);三种判法=生成式/候选选项困惑度(底座模型)/候选选项概率(对话模型)。
  • 表12.5(¶117-345):GPT-4/Claude-3/Gemini-1.5 vs LLaMA-2/Mistral/DeepSeek 各自报哪些基准。

Ch13 Conclusion(text/73)

  • 四维总结+开放问题(¶45-97):
    • 基本原理:为什么下一词预测这么有效=公开的理论难题(¶49);缩放法则需要更严格理论;小模型结论能否推到大模型;test-time scaling 本质=在输出空间里搜索(¶51);能否「外推」到预训练数据之外的能力=重要开放问题(¶53);评测数据污染严重危害公平评估(作者自己的论文「Don't Make Your LLM an Evaluation Benchmark Cheater」,引用[127],¶53)。
    • 架构:Transformer 推理慢/训练贵;SSM 系替代尚需大量验证(¶57);系统/硬件级优化(FlashAttention)与算法互补(¶59);长上下文「有了窗口但用不好窗口内信息」(¶59);decoder-only 一家独大、架构多样性不足可能阻碍长期发展(¶61)。
    • 训练:数据中心的自动化训练系统(收集/清洗/配比/课程+反馈)是方向(¶65);sandbox 小模型实验但结论未必能放大(¶67);predictable training 早期发现异常(¶69);持续预训练/后训练已成标准实践,要防灾难性遗忘(¶69);知识编辑(不重训改特定知识)(¶71)。
    • 使用:prompt 的基本问题未解——为什么有效 prompt 能诱导正确答案(¶77);RAG 有效但依赖长文本理解能力(¶79)。
    • 安全对齐:RLHF 依赖专业标注员成本高→用 LLM 辅助标注;DPO 简化;迭代部署+红队(¶85-87)。
    • 应用生态:信息检索(New Bing);agentic 框架统一技术栈;医疗/金融/物流;离 AGI 更近但安全伦理优先(¶91-97)。

通读完毕(2026-08-27)

覆盖:前言+ch1~ch13 全部正文章;跳过导航章(版权页/目录/各章 References/Glossary/Bibliography)。 原书正文约 800k 字符。两书差异化对比素材:复旦版=四阶段流水线+公式推导链;人大版=综述判据(研究脉络+边界)+资源地图+自做实验(YuLan 全程、表7.1-7.3、表9.3、可复算的参数/FLOPs/显存账)。