跳到主要内容

reading-notes — little-book-of-deep-learning

预检复核结论(2026-08-29)

book-health 标「可疑」(629 字/页)。抽 3 章人眼确认:04-machine-learning、15-linear-layers、24-architectures 正文全部读得通,无整段丢失

  • 「可疑」成因:公式与插图占掉大量版面(公式密集的教科书),不是丢段。
  • 已知转码特性(书卡也有记):Tufte 式边注与正文交错 → 撕词(paparameters ters'Deep learn / learning),插图题注插在段落中间。引用原文短语时必须先搜原文确认没被撕开。

Foreword(text/03-fm-foreword.txt)

  • 成书坐标:2012 年 Krizhevsky 等人的突破是「20 年前设计的网络 + 100 倍大 + 数据也放大 100 倍」;GPU 本是为游戏画面造的消费级并行设备(:3–14)。
  • 2020 起出现「有通用准推理能力的大语言模型」(Chowdhery et al. 2022 = PaLM)(:24)。
  • 作者立场:「深度学习的主体并不难懂,但组件来自线代/微积分/概率/优化/信号处理/编程/HPC,所以学起来复杂」;本书只取理解少数重要模型所必需的背景(:26–29)。
  • 12 个月 50 万次下载(:33–35);落款 May 19, 2024(v1.x 修订版前言)。

04 Machine Learning(text/04-fm-machine-learning.txt) — 原书第 1 章

  • 开篇:深度学习属于统计机器学习,「deep」= 映射的长复合(:3–12)。
  • 1.1 范式:信号 x(车牌图)→ 预测量 y(字符串);难在写不出解析式 → 收集训练集 𝒟、造参数化模型 f(一段带可调参数 w 的代码);好 = ŷ≈y;损失 ℒ(w) 形式化「好」,训练 = 求 argmin ℒ(:18–47)。参数常叫权重(类比突触);超参数按先验/惯例/资源约束定,用不同技术优化(:50–55)。
  • 1.2 基函数回归:均方损失 (1.1);f = Σ wk·fk(x);对 wk 是二次的 → 解线性系统即得最优(:57–82)。
  • 1.3 容量 vs 数据量:欠拟合(容量不足)vs 过拟合(数据不足,记住了训练样本特有性质);应用机器学习的「手艺」= 设计正确归纳偏置(inductive bias)= 结构对上数据的内在结构;大模型极端容量却预测好,经典视角在此失灵,§3.6/3.7 回头讲(:84–117)。
  • 1.4 三类模型:回归(连续向量)、分类(有限集合打分)、密度建模(建模数据分布本身,无标签);前两 = 监督,密度 = 无监督;三类不互斥且不穷尽(分类可视为打分回归,序列密度可视为迭代分类)(:119–159)。

15 Linear layers(text/15-fm-linear-layers.txt) — 原书 §4.2(原书第 4 章后半)

  • 全连接层:W(D′×D)+b,对任意张量形状做仿射,Y[d1..dK]=WX[d1..dK]+b(:16–32)。仿射不只是几何变换:点积=相似度 → 矩阵向量积 = query(输入向量)与 key(矩阵行)的匹配分(:34–42)。
  • 初始化:随机初始化太天真会爆炸/消失激活与梯度[Glorot & Bengio 2010];框架按输入维度缩放随机参数保方差(:44–51)。
  • 卷积动机:全连接处理 256×256 RGB 同尺寸输出要 ~4×10^10 参数(:106–109);信号强结构(短程相关、平移/尺度/对称统计平稳)全连接的归纳偏置完全没用上(:111–143)。
  • 1D/2D 卷积定义:kernel K、输入通道 D、输出通道 D′、φ(·;w):R^{D×K}→R^{D′×1},滑窗;输出 T′=(T−K)/S+1(:150–219)。可训练参数 = D′ 个滤波器 + 偏置(:169–174)。
  • 平移等变性(equivariant)= 好的归纳偏置(:176–181)。
  • 三超参:padding(默认0)、stride(默认1)、dilation(默认1,插零增大感受野不加参数)(:183–201)。
  • 感受野 receptive field、激活图 activation map(:221–230)。
  • 卷积=重组信息/降空间换通道数;可实现边缘检测差分算子或模板匹配;层级化复合表示[Zeiler & Fergus 2014] (:232–240)。
  • 转置卷积:ψ:R^{D×1}→R^{D′×K},放大信号,合成过程;卷积序列=大信号→低维表示(分类/压缩),转置卷积反向(评估压缩表示够不够/生成)(:242–261)。

24 Architectures(text/24-fm-architectures.txt) — 原书第 5 章(读到 :220,后面补)

  • MLP:全连接+激活交替;「隐藏层数」= 线性层数不含最后一层(历史原因)(:8–18)。
  • 万能近似定理[Cybenko 1989]:σ 连续非多项式,l2∘σ∘l1 可在紧集上一致逼近任意连续函数;前提是第一层输出维度可以任意大——定理不解决怎么学(:20–49)。
  • convnet = LeNet 型(卷积+池化特征提取器 + 全连接分类头)[LeCun 1998];AlexNet 2012、VGG 2014 是同构放大(:64–84)。
  • ResNet[He et al. 2015]:LeNet 族深了梯度消失,残差连接(§4.7)允许数百层;细看 ResNet-50(:86–144)。
  • ResNet-50 走查(:241–247):7×7 conv → 64ch 半尺寸;4 段(降尺度残差块开头,H/W 减半通道翻倍;第一段只 ×4 通道不降尺度);末 2048×7×7 → 7×7 avgpool → 2048 向量 → fc → 1000 logits。瓶颈块:1×1 降通道 → 3×3 → 1×1 升通道(通道数平方代价的缓解,:221–226)。
  • Transformer[Vaswani 2017]:encoder-decoder 翻译;三种块(ffw = 一层隐藏层 MLP + 前置 layernorm;self-att;cross-att)都包残差;Radford et al. 2018 的变体把 layernorm 放残差块最前(:256–303)。GPT = 纯因果 self-att 块序列(「causal version of the original Transformer encoder」:398–411)。ViT:切 P×P patch → ×W^E → 加 CLS token E0(Devlin BERT 引入)→ self-att 块 → Z0 过两层 MLP 出 logits(:413–462)。

05 Efficient Computation(text/05-fm-efficient-computation.txt) — 原书第 2 章

  • GPU 为实时图像合成设计,恰好高度并行;后加 tensor cores,Google TPU(:16–24)。瓶颈不是算单元数而是内存读写;最慢一环是 CPU↔GPU 内存;多级 cache(:26–40)。
  • batch:整批放进 GPU 内存并行处理,模型参数只拷一次;「一批几乎和单样本一样快」(:42–52)。
  • 标准 GPU 峰值 10^13–10^14 FLOPs/s,内存 8–80GB;FP32 标准,16bit 甚至更低位数不损性能(:54–62)。
  • 张量 = 沿若干离散轴排列的标量串,R^{N1×…×ND};时间序列 T×D 或 D×T(D = channels,大模型可到几千);2D 信号 D×H×W(RGB D=3);50 张 32×24 RGB → 50×3×24×32(:66–98)。
  • 中间量叫 activations(类比神经元激活)(:80–82)。
  • shape 与存储布局分离 → reshape/transpose 不拷系数(:100–108);一切计算分解为张量算子,避免语言级循环(:110–113);张量是全链条(驱动/库/模型/芯片)共同约定,带来 locality 与 block 可分(:115–121)。

06 Losses(text/06-fm-losses.txt) — §3.1

  • MSE 是预测连续值的标准损失(:2–5);密度建模标准损失 = 似然(log-概率之和取负)(:7–10)。
  • 分类:每类一个分量 f(x;w)_y = logit(非归一化对数概率);softmax(更准确叫 softargmax)出后验估计;训练 = 最大化真实类概率 = 最小化交叉熵(公式 3.x,:12–46)。
  • 对比损失/度量学习:triplet (xa,xb,xc),max(0, 1 − f(xa,xc) + f(xa,xb));同类更近(:48–67)。
  • 损失工程:训练时最小化的往往不是最终指标而是 proxy——错误率没有可用梯度,交叉熵有(:69–77);weight decay = 加参数平方和项 = 高斯贝叶斯先验,损训练集表现但缩小训练/新数据差距(:79–91)。

07 Autoregressive models(text/07-fm-autoregressive-models.txt) — §3.2

  • 概率链式法则分解联合分布;token 序列 {1..K},∅ 表未知;f 给 K 个 logits ≈ P̂(Xt|前);逐个采样 → 联合分布样本 = 自回归生成模型;训练 = 各序列各时间步交叉熵之和(:8–47)。
  • 监控量不是交叉熵本身而是 perplexity = exp(交叉熵),「同等熵的均匀分布的取值数」更好解释(:49–54)。
  • 因果模型:一次前向算出全部 l1..lT,且 lt 只依赖 x1..x_{t-1};训练一遍搞定整序列;采样仍需逐个(图 3.1 红箭头);T 常是数百到数千(:71–101)。
  • tokenizer:符号↔词的多粒度;BPE[Sennrich 2015] 层级合并字符组,长短不同但频率相近的片段(:103–116)。

08 Gradient descent(text/08-fm-gradient-descent.txt) — §3.3

  • 一般情形 w* 无闭式解 → 梯度下降 w_{n+1}=w_n − η∇ℒ(:1–17)。η = learning rate:太小慢/困局部极小,太大在好极小附近弹跳(:19–44)。
  • SGD:损失可写成逐样本平均 → 全梯度 = 平均梯度之和;打乱后任意部分和是无偏估计(有噪声);同样算力做更多步,数据冗余使它远更高效;mini-batch 利用「一批和单样本一样快」;步数通常数百万(:46–89)。
  • 高维直觉失效:看似易困局部极小,实际因参数量/模型设计/数据随机性,效率远超预期(:91–97)。
  • Adam[Kingma & Ba 2014]:对每分量梯度维持均值/方差滑动估计并自动归一,避免尺度问题(:99–104)。

09 Backpropagation(text/09-fm-backpropagation.txt) — §3.4

  • f 与 L 都是标准张量运算的复合 → 微积分链式法则给出 ∇(:1–7)。
  • 前向 pass:x(d)=f(d)(x(d-1);wd),x(D) 终值;中间标量=activations,D=depth,f(d)=layers(:29–46)。
  • 反向 pass:∇ℒ|x(d-1) = ∇ℒ|x(d) × J_f(d)|x;∇ℒ|wd = ∇ℒ|x(d) × J_f(d)|w;从 ∇L 起递归 backward;+ 梯度下降 = backpropagation(:48–67)。
  • Autograd[Baydin 2015]:追踪张量运算,即兴构造梯度算子组合,命令式代码自动求导(:69–80)。
  • 代价:线性运算前向 1 次矩阵乘,反向 2 次 → 反向约为前向两倍;推理内存 ≈ 最贵单层;训练要留全部前向 activations → 内存随深度线性涨;reversible layers[Gomez 2017]、checkpointing[Chen 2016] 拿计算换内存(:81–101)。
  • 梯度消失/爆炸:反向穿层被乘性缩放 → 指数增/减;梯度范数裁剪防爆炸[Pascanu 2013];vanishing gradient 使训练不可能或各层速度不一[Glorot & Bengio 2010];视角转变:不改优化器,改模型本身使其可优化(:103–123)。

10 The value of depth(text/10-fm-the-value-of-depth.txt) — §3.5

  • 玩具例:R2→R2,8 层 2×2 矩阵 + Tanh + 最终线性分类器;矩阵 co-adapt 把空间扭到线性可分(:9–24)。
  • 警示:2D 有误导性,真实模型靠高维表示(多自由度利优化)(:22–38)。
  • 20 年实证:各领域 SOTA 都要数十层(ResNet/Transformer);理论[Telgarsky 2016]:固定算力/参数,加深 → 映射复杂度更高(:40–47)。

11 Training protocols(text/11-fm-training-protocols.txt) — §3.6

  • 至少 train/test 两集;有超参就再加 validation set(与两者都不交)(:5–20)。
  • epoch = 全训练集过一遍;训练损失一直降,验证损失可能到底后回升 = overfitting(图 3.5)(:22–47)。
  • 悖论:大模型容量极端却常持续变好;可能因训练集近满分后归纳偏置成为优化主驱动[Belkin 2018] (:49–56)。
  • learning rate schedule:先大防早期困坏极小,后小防在窄谷弹跳(:58–67)。
  • 超大模型训练 = 数千 GPU × 数月 × 数百万美元,伴随人工干预(:69–73)。
  • fine-tuning:从预训练模型出发而非随机初始化,适配 downstream task;视觉主流 = ImageNet 预训练[Deng 2009];生成式 LLM → 助手模型也靠它(:75–109)。

12 The benefits of scale(text/12-fm-the-benefits-of-scale.txt) — §3.7

  • scaling laws[Kaplan 2020]:测试损失随数据量/算力/参数量呈幂律改善(模型要同步放大)(:1–20)。
  • 视觉模型 10–100M 参数、训练 10^18–10^19 FLOPs;语言模型 100M–数千亿参数、10^20–10^23 FLOPs(:22–61)。
  • 数据集表:ImageNet 2012 1.2M 图/150Gb;LAION-5B 2022 5.8B 图/240Tb;The Pile 2020 ≈1.6B 本书/825Gb;OSCAR 12B 本/6Tb(1 书 = 250 页×2000 字符)(:45–56)。
  • 大模型用不了精细标注(贵、量小)→ 互联网自动组合数据,多模态(:63–70)。
  • 训练成本图:AlexNet 10^18 FLOP → PaLM/GPT-3 ~10^23–24;虚线 = A100 能耗(KWh–GWh);参照:美国 2021 全年用电 3920TWh(:71–100)。
  • 2024 年最强 = LLM(:101–105)。

13 Large-Scale Parallel Training(text/13-fm-large-scale-parallel-training.txt) — §3.8

  • DDP:每 GPU 完整复制模型,各算 batch 的一部分,反向时互相传梯度保持同步;有效 batch 随设备数线性涨,但模型须装得进单卡(:9–19)。
  • FSDP[Zhao 2023]:参数/梯度/优化器状态分片(shard)存各设备,用到时临时 gather 再放掉;最大模型随设备数线性涨,代价是更多通信(:21–34)。
  • pipeline parallelism:整层分到不同 GPU,用激活的通信换参数的通信(:36–39)。
  • tensor parallelism:单层都装不下时,利用矩阵乘分块性质拆开算再合并(:41–48)。

14 The notion of layer(text/14-fm-the-notion-of-layer.txt) — §4.1

  • layer = 被实证为通用高效的复杂复合张量运算,常含可训练参数,是设计/描述大模型的方便粒度;词源于多层神经网络,但现代模型可以是多路并行图(:1–10)。
  • 本书图示约定:算子=方框,深色=含可训练参数,蓝色=非默认超参,虚线框+倍数=串行复制,右侧标输出维度(:19–38)。

16 Activation functions(text/16-fm-activation-functions.txt) — §4.3

  • 纯线性复合仍是线性 → 必须有非线性;激活函数逐分量变换、形状不变(:1–13)。
  • ReLU[Glorot 2011]:负数置 0;在 0 不可微、半实轴常数,但梯度只需「平均上有信息量」;初始化+归一化使训练开始时一半激活为正(:15–37)。
  • Tanh:ReLU 之前的标准,两侧指数饱和,加重梯度消失(:39–43)。
  • Leaky ReLU:负侧乘小正系数 a[Maas 2013];GELU = xP(Z≤x),Z~N(0,1),近似光滑 ReLU[Hendrycks & Gimpel 2016] (:45–65)。
  • 选哪个靠实证(:67–68)。

17 Pooling(text/17-fm-pooling.txt) — §4.4

  • max pooling:每通道在不重叠 kernel 块上取 max,空间尺寸除以 kernel;默认 stride=kernel;也有 padding/stride/dilation(:1–25)。
  • 直觉 = 逻辑或:「至少一个部件出现」;丢精确位置 → 对局部形变不变(:27–52)。
  • average pooling 是线性运算,max 不是(:54–59)。

18 Dropout(text/18-fm-dropout.txt) — §4.5

  • 无参数,一个超参 p;测试时关闭(输出=输入);训练时每个激活以 p 独立置 0 并乘 1/(1−p) 保期望(:1–16)。
  • 动机:偏好「单个激活各自有意义」、打击团伙表示——k 个激活一组完好的概率 (1−p)^k;也可看作噪声注入(:18–24)。
  • 2D 图像短程相关使置 0 可从邻居推回 → 改丢整个 channel(:26–51)。
  • 也可当随机化策略估置信度[Gal & Ghahramani 2015] (:53–57)。

19 Normalizing layers(text/19-fm-normalizing-layers.txt) — §4.6

  • batchnorm[Ioffe & Szegedy 2015]:唯一处理整 batch 的标准层;对每分量 d 算 batch 内均值/方差,归一到 0/1,再用可训练 γd/βd 缩放平移;测试时用全训练集滑动平均的 m̂/v̂ → 等价固定仿射(:9–64)。
  • 动机:防早期层缩放变化波及后续层;实际机制可能更复杂,但极大便利深模型训练(:66–73)。
  • 2D 情形:按通道跨 B×H×W 归一,γ/β 仍是 D 维(:75–89)。
  • layernorm[Ba 2016]:对单样本跨所有分量归一、逐分量缩放平移;训练/测试行为一致(:91–102)。

20 Skip connections(text/20-fm-skip-connections.txt) — §4.7

  • 不是层,是结构设计:某些层输出原样运送到更远的层,拼接或相加;残差连接 = 相加、通常只跨几层[Long 2014; Ronneberger 2015; He 2015] (:1–12)。
  • 关键性质:即使某段处理杀死梯度,梯度仍走旁路;ResNet/Transformer 全由残差块组成,可达数百层(:14–25)。
  • 另一作用:多尺度(先缩后放的模型把同分辨率的早晚层连起来,语义分割);残差连接还可能把任务简化成「找差分改进」而非「整体更新」(:64–70)。

21 Attention layers(text/21-fm-attention-layers.txt) — §4.8

  • 动机:需要把远处位置的信息组合起来(图像合成远景细节、NLP 跨位置语法语义决策);全连接不能处理大/变长信号,卷积传信息太慢(:1–14)。
  • 注意力算子:Q(NQ×DQK)、K(NKV×DQK)、V(NKV×DV);A_{q,k} = softargmax_k(Qq·Kk/√DQK);Yq = Σk Aq,k Vk;若一 query 只匹配一 key → 取对应 value,匹配多个 → 平均(:40–79)。
  • 缩放因子 1/√DQK 保持值域稳定(:65–66)。
  • 两种扩展:掩码 M(下三角全 1 → 因果);注意力矩阵过 dropout(:112–122)。
  • 代价与序列长度平方成正比;数万 token 成问题;改进:局部窗+长程稀疏[Beltagy 2020]、线性化利用结合律[Katharopoulos 2020] (:124–134)。
  • Multi-Head Attention:H 个头,各自 W^Q/W^K/W^V(H×D×DQK 等),拼起来再过 W^O(HDV×D)(:165–197)。
  • self-attention(三输入同)与 cross-attention(KV 同、Q 不同)(:199–206)。
  • 排列性质:无掩码时对 keys/values 排列不变,对 queries 排列等变(:208–211)。

22 Token embedding(text/22-fm-token-embedding.txt) — §4.9

  • 嵌入层 = 整数→向量的查找表;超参 N(词表大小)、D(输出维);一个可训练 N×D 矩阵 M;Y[…]=M[X[…]] (:1–20)。

23 Positional encoding(text/23-fm-positional-encoding.txt) — §4.10

  • 全连接对位置敏感;卷积与多头注意力对绝对位置无感(强不变性,利平稳信号);但图像合成、NLP 需要绝对/相对位置(:1–19)。
  • 做法:每个位置加上/拼接一个依赖位置的特征向量;可学也可解析定义(:21–27)。
  • 原 Transformer:不同频率 sin/cos,T=10^4(:29–45)。

25 Prediction(text/25-fm-prediction.txt) — 原书第 6 章

  • 6.1 去噪:autoencoder 从退化信号 X̃ 估计 X;训练对 = 干净样本+人工退化(灰度/缩尺寸/有损压缩);MSE → E[X|X̃],X 不被 X̃ 确定时会糊成不真实的平均(:6–38)。
  • 6.2 分类:ResNet/ViT 出 logits + 交叉熵;data augmentation(裁剪/缩放/镜像/变色,不改语义)(:39–55)。
  • 6.3 目标检测:边界框 (x1,y1,x2,y2)+类标;SSD[Liu 2015]:一串分辨率递减的表示 Zs,每格出 4+C+1 通道(C+1 含「无对象」),每格按感受野配若干框;标注贵 → 从分类预训练(VGG-16)微调,分类学出的表示竟可用于几何回归;损失 = 框位置 MSE + logits 交叉熵(:56–145)。
  • 6.4 语义分割:逐像素分类;需多尺度(任何尺寸的物体都要能被单点表示捕获);先卷积降尺度扩感受野、再转置卷积/双线性插值升回;跳跃连接把降尺度前的同分辨率层接到升尺度后[Long 2014; Ronneberger 2015],或并行多尺度拼接[Zhao 2016 PSPNet];逐像素交叉熵,也从分类预训练出发(:146–193)。
  • 6.5 语音识别
    Radford 2022
    把识别当 seq2seq 翻译;声谱图(T×D 频带能量)→ 几个 1D 卷积 → Transformer encoder;decoder 直接生成 token;多目标(英/非英转写、翻译到英语、检测非语音);形式上是「以声音为条件的文本采样」即合成(:194–229)。
  • 6.6 CLIP[Radford 2021]:图像 encoder = ViT,文本 encoder = GPT 加 end-of-sentence token 取其末层表示(512–1024 维);4 亿图文对从零训练;批内 N×N 余弦相似度矩阵当 logits,两个方向交叉熵;训完可 zero-shot:用文本描述定义候选类,比相似度;文本描述细节多 → 表示更丰富,ImageNet Adversarial 上表现好(:230–287)。
  • 6.7 强化学习:MDP(状态马尔可夫)、policy π、return = 折扣累计奖励、Q(s,a)、Bellman 方程;DQN[Mnih 2015]:St = 最近 4 帧,Q = 两层卷积+一层全连接(LeNet 结构),每动作一输出;训练 = 回放 (s,a,r,s′) 小批 + 式 6.2,w̄ 常量副本(梯度不回传);ε-greedy 保探索;1000 万帧 ≈ 8 天游戏;49 款 Atari 多数达人类水平(:288–378)。

26 Synthesis(text/26-fm-synthesis.txt) — 原书第 7 章

  • 7.1 文本合成:注意力自回归;GPT-3 = 96 个 self-att 块 × 96 头,token 维 12,288,MLP 隐藏维 49,152,1750 亿参数[Brown 2020] (:8–23)。
  • LLM 被迫吸收知识(「日本的首都是」「水烧到 100 度」);few-shot 预测(图 7.1 用 1.2 亿参数小 GPT 演示情感/学科分类);精心 prompt 展现问答/解题/chain-of-thought 等「诡异地接近高层推理」的能力[Chowdhery 2022; Bubeck 2023];foundation models 一词[Bommasani 2021] (:25–72)。
  • 但「有用的助手对话」的统计 ≠ 训练集(小说/百科/论坛/博客)的统计 → 微调;主导策略 RLHF[Ouyang 2022]:人写回答(直接微调)或给回答打分(训 reward network,再用标准 RL 微调)(:74–97)。
  • 7.2 图像合成:扩散模型(「叫法其实不准确」):定义解析的退化过程把数据密度变成正态,训练深度网络逆转它[Ho 2020];逐步加白噪+方差归一;x_{t-1}|x_t ~ N(x_t + f(x_t,t;w), σt);变分下界保证单步够准则 T 步去噪出 p(x0) 样本;实践:先在噪声里「幻觉」出结构再强化;文本条件 = 在去噪均值上加 CLIP 匹配分方向的偏置[Nichol 2021] (:98–174)。

27 The Compute Schism(text/27-fm-the-compute-schism.txt) — 原书第 8 章

  • 前提:从零训练只有大公司/公共机构玩得起;本地跑为成本/保密;技巧让推理与适配可在强资源约束下进行(:1–13)。
  • 8.1 提示工程:精心构造文本开头偏置自回归过程[Sahoo 2024];把传统上编码在参数里的信息挪到输入;「由专业高手生成」这类意外策略有效[Xu 2023];context size 受注意力平方代价限制(:14–40)。
  • CoT:让模型先写中间步骤;步骤更简单→训练时建模更好→预测更确定[Wei 2022; Kojima 2022];图 8.1 豆子/煎饼算术例(Llama-3-8B)(:68–76)。
  • RAG[Lewis 2020]:嵌入模型检索与 query 嵌入相关的文档 → 拼进 prompt → 生成;把模型当「智能接口」,回答含参数里没有的信息(:78–93)。
  • 8.2 量化:单流推理受内存大小/速度限制远大于算力;训练要 32/16bit 让微小变化累积;推理时激活是多项之和,平均效应使量化误差被稀释,大模型 4–6bit 仍好;PTQ + llama.cpp[2023] 消费级硬件单流推理;Q4_1:32 个 FP16(64B)→ d,m 两个 FP16 + 32×4bit = 20B;困惑度仅微损(图 8.2 Llama-7B/13B);QAT:前向量化、反向当作没量化[Ma 2024] (:94–159)。
  • 8.3 Adapters:冻结原参数,加少量参数组件[Houlsby 2019];LoRA[Hu 2021]:W 换 W+BA,R≪min(C,D),A 高斯随机、B 置零(起点=原模型);可训练参数仅为原模型几个百分点;Transformer 标准做法 = 只改注意力块矩阵;扩散模型调文本条件注意力块同理;省 Adam 双滑动平均的内存;AB 可单独存;W+BA 合回 → 推理结构参数与原模型完全一样;QLoRA = 量化基座 + 不量化 LoRA[Dettmers 2023] (:160–218)。
  • 8.4 模型合并:同一基座的多个微调版在参数空间兼容;Task Arithmetic[Ilharco 2022]:θ + Στt 多任务,减 τt 损对应任务;减干扰方法[Yadav 2023; Yu 2023];Akiba 2024 参数合并+层重组+随机优化,Mistral-7B 三微调版实验(:219–252)。

28 The Missing Bits(text/28-fm-the-missing-bits.txt)

  • RNN:注意力之前的序列标准;hidden state 逐步更新;LSTM 1997/GRU 2014;训练=时间展开,催生了 rectifier 与 gating(动态调制的 skip connection);致命伤 = 串行 O(T);QRNN/S4/Mamba 用仿射递归使可并行(f 不依赖 t 则常数时间,否则 log T)(:6–40)。
  • Autoencoder:高维→低维 latent→还原;VAE[Kingma & Welling 2013] 用损失给 latent 强加预设分布 → 采样生成(:42–56)。
  • GAN[Goodfellow 2014]:生成器 vs 判别器,交叉熵对抗;平衡点生成器产出与真数据不可区分;判别器的梯度告知生成器该修哪些线索(:58–75)。
  • GNN[Scarselli 2009]:图结构数据(蛋白/3D 网格/社交);每顶点线性组合邻居激活,像卷积但无几何(:77–95)。
  • 自监督:GPT 只学预测下一个词却能做别的任务;定义无需标注但逼出有用表示的任务;视觉:对语义不变变换不变+统计不相关[Zbontar 2021];NLP/视觉通用:遮蔽重建[BERT Devlin 2018] (:96–129)。

关于公式的转码状况(写作时照实声明)

公式不是图片,pdftotext 把它们抽成了破碎的排版碎片(如 softmax 公式散成多行、∇ 符号与下标分离)。可读但引用时不取公式行做锚;拆解里的公式一律用我们自己的文字重述,并在涉及处声明。