跳到主要内容

rearchitecting-llms 拆解大纲(10 章)

原书 9 章正文(MEAP,到 ch9;ch10/11 fair pruning 未包含在文本里)。 切分:原书 ch1/ch2 各一章;ch3 一章(全书枢纽);ch4-ch9 各一章,其中原书 ch8 按 「不动架构的(KV cache 量化)/动架构的(删注意力层)」拆成两章——两半机制无关,合在一起 一段塞不下。共 10 章。

自查:无两节「出去时知道」相同。01/02 都讲管线,但 01 讲「为什么要走、路线图」, 02 认真走一遍并拿到数字——一个是动机层一个是执行层,不合并。

01 为什么不给它换个提示词,而是动手术(原书 ch1)

  • 1 这一章讲什么:以为「优化 LLM=选个更大的 API 模型」→ 知道本书主张的第三条路:物理改结构
  • 2 顶层全景:以为改造是零散技巧 → 知道它是三段管线:剪枝→蒸馏恢复→LoRA 特化
  • 3 三个为什么:以为成本/差异化/可解释性是三个独立问题 → 知道共同根源是「通用模型对着刷榜优化」
  • 4 数据贯穿:以为领域数据只在最后用 → 知道它引导每一步(校准、删什么、恢复、特化)
  • 5 作者判断与证据:以为 FineScope 数字是孤例 → 知道「用数据决定删什么」是全书中心主题
  • 6 边界:以为本书覆盖全部优化 → 知道 fair pruning(原书 ch10/11)不在本版文本内
  • 7 可带走 / 8 原文地图

02 第一次手术:十八层减到十六层(原书 ch2)

  • 1 这一章讲什么:以为改造很难 → 知道删 2 层+蒸馏一次,一个下午的 Colab 就能跑完
  • 2 主走查·基线:以为基线是走形式 → 知道 winogrande 0.5375 贴着随机线,这个数字后面会「骗」你一次
  • 3 删层:以为删层很神秘 → 知道就是切 Python 列表+改 config(18→16 层,-4.16% 参数)
  • 4 量化损失:以为「还行」就够了 → 知道幻觉(250 万公顷的巴黎)是结构损伤的症状
  • 5 蒸馏恢复:以为学生学答案 → 知道学生学的是老师的完整概率分布(KL 散度当尺子)
  • 6 结果核对:以为恢复就是变好 → 知道恢复到 87-98%、而 winogrande 的 102% 是随机线的假象
  • 7 作者判断/边界/带走/地图

03 现代 Transformer 蓝图(原书 ch3,全书枢纽)

  • 1 这一章讲什么:以为后面章节可以跳过这章 → 知道每次手术下刀点都在这一章里点名
  • 2 模型结构三段:以为模型是一坨 → 知道「输入嵌入→重复块→输出头」,块=注意力+MLP
  • 3 注意力:以为词义天生 → 知道嵌入只知道词和位置,注意力负责「看别人」消歧(spring)
  • 4 QKV 与 KV cache:以为注意力免费 → 知道 K/V 要缓存、随 token 线性涨,8 token×12 头×2×6 层=1152 槽
  • 5 GQA:以为省内存靠删 → 知道靠「分组共享」:同预算 8 token→32 token(+300%)
  • 6 MLP:以为扩张是白白变大 → 知道没有激活函数,扩张+收缩等价一次矩阵乘
  • 7 GLU:以为过滤标准固定 → 知道现代模型加「门」:up 内容×gate 门,按上下文过滤(spring 例)
  • 8 深度与宽度:以为模型只有大小 → 知道有形状:wide(x4)与 deep-narrow(x3),手术对象不同
  • 9 激活与行为:以为权重=模型的一切 → 知道激活才是「模型此刻在想什么」,后面所有测量都测它

04 深度剪枝:整块拿走(原书 ch4)

  • 1 这一章讲什么:以为剪枝赌运气 → 知道删哪块可以测量,而且测量的标尺是余弦相似度
  • 2 为什么删块快:以为提速靠少算 → 知道推理是内存搬运瓶颈(GPU 只用到 50-70% 算力在等数据)
  • 3 静态选块:以为位置规则可靠 → 知道「保头 4 尾 2」是经验不是定律,幅度法会选中保护块
  • 4 数据驱动:以为重要性是模型属性 → 知道它相对于数据:hooks+1−余弦=重要性,WinoGrande 与 WikiText 选出不同块
  • 5 主走查·评估八模型:以为数据驱动必赢 → 知道保护启发式也关键:[25,23,13,15] 双保护保留 lambada 73.1% vs 删尾 4 块只剩 9%
  • 6 论文对照:以为指标是自造 → 知道 ShortGPT 的 Block Influence=同一个公式,验证到 70B
  • 7 作者判断/边界/带走/地图

05 宽度剪枝:给 MLP 瘦身(原书 ch5)

  • 1 这一章讲什么:以为剪枝只会变笨 → 知道剪对地方会「换性格」:推理掉、守规矩升
  • 2 成对约束:以为神经元独立 → 知道 gate/up 成对,删单边=门控失配,重要性必须合并算
  • 3 静态选神经元:以为要看激活才能选 → 知道峰峰值幅度就能选:8192 神经元 40% 剪,参数 -26%
  • 4 主走查·二象性:以为能力均匀下降 → 知道 GSM8K -68.9% 崩、IFEval +46.5% 升:「失去精致,获得纪律」
  • 5 数据驱动·混合分:以为权重说了算 → 知道混合分=结构分×激活:L2 范数为什么不用简单求和(+5,-5 求和=0)
  • 6 两个特化模型:以为校准只影响边角 → 知道 wiki 模型和 sms 模型同架构不同行为,各在自己域困惑度最低
  • 7 性能账:以为快多少看删谁 → 知道只看删多少(+19.6%),以及 GPU 对齐(intermediate_size 整除 64)
  • 8 作者判断/边界/带走/地图

06 蒸馏:把丢失的知识找回来(原书 ch6)

  • 1 这一章讲什么:以为恢复从训练开始 → 知道从「决定删哪块」开始:选对块的学生恢复更快
  • 2 选块实验:以为保尾最稳 → 知道 270m 上保尾策略垫底,数据驱动散选最好(78.6% 起步保留)
  • 3 层映射:以为层数不同没法对齐 → 知道三种映射:uniform/last/original
  • 4 复合损失:以为蒸馏只有一个损失 → 知道三信号:hard 标签+soft 标签+隐藏状态,α/β/γ 配平
  • 5 主走查·温度与 token shifting:以为温度只影响生成 → 知道它把 94.5% 软化成 23.9%,让学生看见「第二名」
  • 6 进阶技巧:以为技巧越多越好 → 知道 Skew KLD/FDD 只在数据够(≥15K)或剪得狠时才值
  • 7 实用配置表:以为要自己摸索 → 知道六种场景的现成起点(含「<10K 全关」)
  • 8 论文对照/边界/带走/地图

07 特化:把提示词烙进权重(原书 ch7)

  • 1 这一章讲什么:以为特化=写更好的 prompt → 知道 prompt 有硬上限(irrelevant 类 58%),微调补的正是这个
  • 2 LoRA:以为微调要动全部权重 → 知道 ΔW=AB:4,194,304→32,768(-99.2%)
  • 3 DoRA:以为 LoRA 是终点 → 知道它幅度方向一起动(相关 +0.83),DoRA 拆开(−0.31)——但本任务没用上
  • 4 NF4 量化:以为省显存靠均匀压缩 → 知道档位要贴着正态分布摆(NF4),且它只是存储格式
  • 5 主走查·临床抽取:以为 15 行 prompt 是上限 → 知道训练后一个词「Extract:」100% 合规,权重吃下了格式契约
  • 6 代价核算:以为特化免费 → 知道平均 -3.2%,arc_easy -10.3%,lambada 困惑度 +15.8%(风格收窄)
  • 7 适配器两种活法:以为训完就合并 → 知道 merge 与动态换装(按任务分批路由)各有场景
  • 8 作者判断/边界/带走/地图

08 给 KV cache 减肥(原书 8.1-8.2)

  • 1 这一章讲什么:以为优化内存=压权重 → 知道还有第二块账:随上下文涨的动态内存
  • 2 KV 量化原理:以为缓存只能原样存 → 知道「压缩-写入-读出-还原」每 token 循环一次
  • 3 HF 实验:以为两种量化是一回事 → 知道作用在不同内存区:权重压静态 6.1GB→2.2GB,cache 压动态约 3 倍
  • 4 vLLM:以为省内存就是省内存 → 知道它预分配、以「能容多少 KV token」计账:51,248→108,192(+111%)
  • 5 主走查·硬件决定结论:以为一个技巧到处灵 → 知道 T4 上 FP8 罚速(10.8→8.6)、L4 上免费(35.8 vs 35.6);NF4 换吞吐(3 倍)但复读循环
  • 6 作者判断/边界/带走/地图

09 删掉多余的注意力层(原书 8.3-8.7)

  • 1 这一章讲什么:以为注意力是 Transformer 的心脏碰不得 → 知道它常是块里最冗余的部件
  • 2 更细的探针:以为 hooks 只能挂整块 → 知道挂在 input/post_attention_layernorm 两点,单独量注意力(含残差)
  • 3 冗余地图:以为冗余均匀 → 知道头尾活跃、60-80% 深度处低洼;模型越大低洼越宽(3B 18% vs 8B 34%)
  • 4 主走查·手术与善后:以为删完就完 → 知道还要改 forward、写回 config、自带类文件,否则重载即变垃圾
  • 5 代价:以为基准好=没伤 → 知道选择题基准几乎不动,而 Lambada -9.2%、长文生成出事实不一致——静态测试的盲区
  • 6 论文与 SDR:以为删注意力是小众技巧 → 知道 SDR 比整块删好 10-20 倍,70B 删 40% 几乎零损失
  • 7 反转:以为结论普适 → 知道改成稠密检索器后结论完全倒过来:注意力变关键、MLP 可大剪
  • 8 作者判断/边界/带走/地图

10 专家路由:把稠密模型改成 MoE(原书 ch9)

  • 1 这一章讲什么:以为动态推理都是实验品 → 知道三种(早退/丢 token/MoE)里 MoE 已进生产
  • 2 MoE 三组件:以为专家=小模型 → 知道专家=被替换的 MLP,路由器=一个线性层
  • 3 稀疏升级:以为专家从零训 → 知道 sparse upcycling:复制原权重起步,再加路由器噪声防塌缩
  • 4 主走查·路由表:以为路由器按词性判断 → 知道它看累积上下文:「pain」在 chronic back pain 里才去临床专家
  • 5 软路由与硬路由:以为要分别训练 → 知道同一套权重换 forward 即可;合规率同 97.5%,行为差异在「何时停」
  • 6 移植专家:以为专家必须现训 → 知道 ch7 的 MLP 可以直接移植;但注意力不同步,补训尾部 6 层(10.35% 参数)才回 100%
  • 7 论文对照:以为 MoE 只有巨头玩 → 知道 Mixtral 46.7B 总参/12.9B 激活的算法与你 2.9B 的玩具同构;但 Mixtral 没找到领域特化
  • 8 作者判断/边界/带走/地图