分类:AI 大模型
学习路径:由浅入深,按顺序阅读效果最好(共 147 篇)
-
61. attention sink 现象:softmax 逼出来的"垃圾桶"token
把 softmax 的权重可视化,大量质量永远堆在序列最前面的几个 token 上——即使它们语义上毫无用处。这不是模型的 bug,而是 softmax"权重必须和为 1"的结构性产物。这篇从归一化约束推出 sink 的必然性,讲 StreamingLLM 怎么利用它,以及 ViT 里的对应现象。
-
62. 从零手写注意力:60 行 NumPy 跑通自注意力
抛开框架,用 NumPy 把自注意力、因果掩码、多头重组逐个写出来并和 PyTorch 对拍。每段代码都标注 shape 变化和对应的概念——写完一遍,注意力就从"听说过"变成"见过每一步的形状"。
-
63. PyTorch 实现 multi-head attention 逐行讲解
用 nn.Module 手写一个 multi-head attention,每行标注 shape 变化,讲清 fused QKV 投影、head 维折叠、scaled_dot_product_attention 的三种后端选择,以及和 nn.MultiheadAttention 的对应关系。
-
64. 残差流视角:信息在层间怎么流
把 pre-LN 的 Transformer 看成"一条总线 + 若干读写头":所有层共享同一个 d 维残差流,注意力头和 FFN 只是往总线上写增量。这个视角解释了 logit lens、叠加态表示和深层的范数膨胀,也为后面几篇归一化分析铺路。
-
65. FFN 的键值记忆假说
Geva et al. 提出 Transformer 的 FFN 两层可以读成"键值记忆":第一层做模式匹配,第二层每一列是一个知识向量。这篇推导这个读法的代数形式,讲清"知识神经元"实验怎么证伪/支持它,以及它和残差流叠加的关系。
-
66. 宽度与深度的权衡
同样一笔参数预算,该摊给宽度还是深度?理论侧有 Telgarsky 的深度指数优势定理,优化侧有宽度带来的"惰性训练"便利,工程侧 Chinchilla 系模型给出了深度随宽度线性增长的经验配方。这篇把三条线的结论摆在一起。
-
67. pre-LN 与 post-LN 的稳定性差异
同一个 Transformer block,LN 摆在子层前面(pre)还是后面(post),训练稳定性天差地别:post-LN 深了就梯度消失,pre-LN 有梯度高速公路但深层输出失控。这篇用 LN 的雅可比把两边的机制都推出来,说清楚为什么现代模型选 pre-LN、以及它欠的债用什么还。
-
68. 并行块结构:GPT-J 到 PaLM 的加速技巧
把 attention 和 FFN 从"串行两站"改成"并行两路、输出相加",每个 block 的层内关键路径直接减半,PaLM 靠这一招白拿约 15% 的吞吐。这篇推导这个改动的数学形式、它为什么几乎不掉点,以及和张量并行、流水并行的叠加关系。
-
69. RWKV 与 Mamba:无注意力路线的递归推理
注意力用 O(n) 的 KV cache 换逐 token 解码,RWKV 和 Mamba 走另一条路:把序列压缩进固定大小的递归状态,推理恒 O(1)。这篇推导两条路线的更新方程——RWKV 是带指数衰减的线性注意力,Mamba 是输入自适应的离散 SSM——以及它们训练并行的来源。
-
70. Hyena 与长卷积路线
Hyena 不用注意力也不用递归,用"长卷积 + 数据控制门控"达到 Transformer 级别的下游质量:滤波器不显式存储,用 MLP 按位置坐标即时生成,参数量 O(log n)。这篇讲隐式卷积核的构造、FFT 卷积的成本账,以及它对比注意力和 SSM 各自丢掉了什么。
-
71. 注意力即核回归
softmax 注意力输出恰好是 Nadaraya-Watson 核回归估计量:上下文是样本,query 是查询点,注意力权重是核函数值。这个对应关系把 in-context learning 解释为"非参数推断",也给出了注意力和经典统计之间清晰的桥。这篇推一遍对应关系,并指出它解释不了的部分。
-
72. in-context learning 的一种解释:注意力即隐式梯度下降
von Oswald et al. 证明:一个构造好的单层线性自注意力层,前向传播恰好等于对最小二乘问题做一步梯度下降——权重写进 attention 矩阵,上下文是训练集,输出是更新后的预测。这篇完整推一遍这个构造,讲它成立的前提和偏离真实 Transformer 的地方。
-
-
74. 正弦位置编码的原始设计与性质
Transformer 原论文的位置编码 PE(pos,2i)=sin(pos/10000^{2i/d}) 不是拍脑袋:多尺度波长覆盖从局部到全局的相对距离,且 PE(pos+k) 可以写成 PE(pos) 的线性变换——相对位置信息对注意力天然可及。这篇推这两个性质的代数来源,以及它为什么后来被认为不够。
-
75. 可学习位置嵌入的局限
BERT/GPT-2 时代的可学习绝对位置嵌入本质是一张查表:每个位置一个自由向量。它在训练区间内够用,但表外位置既没有结构约束也没有梯度信号,距离泛化和长度外推一起失效——这篇拆这张表的数学本质,以及它逼出来的相对位置方案。
-
76. 相对位置编码谱系:Shaw 到 T5 bias
在 RoPE 成为标配之前,相对位置编码走过一条"把偏移量直接塞进注意力"的路线:Shaw 给 key 加偏移向量,Transformer-XL 拆成四项,T5 干脆在 logits 上加一张标量偏置表。这篇按时间推一遍它们的数学形式、各自的动机,以及为什么这条路线最终让位给乘性方案。
-
77. ALiBi:线性偏置的极简方案
ALiBi 不给每个位置生成向量,只在注意力 logits 上减一个与距离成正比的偏置:score(i,j) = q·k/√d − s·|i−j|。零位置参数、逐头分配斜率、外推免费。这篇推它的形式、为什么线性函数比查表更适配外推,以及它和 RoPE 的加性/乘性分野。
-
78. RoPE 的复数形式与实现技巧
RoPE 的实现把 query/key 的维度两两配对看成复数,乘上 e^{imθᵢ} 就完成了一次旋转。复数视角不仅省推导,还直接给出工程上最重要的三个技巧:rotate_half 等价于配对置换、cos/sin 表缓存、复数乘融进 attention kernel。
-
79. RoPE 的基频与波长分布
RoPE 每个维度对的角频率 θᵢ = base^(−2i/d) 按对数均匀铺开,本质是复用正弦 PE 的多尺度波长思想。底数 10000 不是惯例而是约束的结果:最长波长要盖过训练上下文。这篇算波长账本,给出选底数的定量判据,再看 Llama-3 把 base 提到 500000 是在优化什么。
-
80. NTK 缩放与 YaRN:RoPE 的长度外推方法谱系
直接外推 RoPE 会崩(下一篇拆机制),插值全部维度又浪费局部精度。NTK 缩放通过改底数实现"高频不动、低频压缩"的平滑过渡;YaRN 把这条思路做成显式的分段斜坡加注意力温度修正,成了主流长上下文方案。这篇推两者的公式与动机。