承载与读取:从关联记忆到 MLP 和 attention
模型要用上更多知识,需要同时回答两个问题:结构能否容纳并读出更多信息,数据与训练又实际形成了什么能力。本节先讨论第一个问题,为随后阅读视觉训练实验和硬件约束建立机制基础。这是课程的组织顺序;实际训练时,数据、目标、表示与参数更新共同发生,并不是先造好“知识盒子”再逐条装入事实。
本节的论证受 Alex Wang《You could have invented transformers from memory》 启发。两条目数字例为教学构造,图样实验和容量曲线为教学独立复算。曲线解释的是指定随机向量模型下的读回干扰,不是模型事实数、语言理解能力或可部署上下文长度。
先给“记住”一个可检查的含义
一组关联由线索 $k_i$ 和内容 $v_i$ 构成。这里用列向量:$k_i\in\mathbb R^{d_k}$,$v_i\in\mathbb R^{d_v}$。输入查询 $x$ 后,希望得到相关内容。接受过多少条输入并不足以说明记忆可用;还需要检查指定内容是否能读回来。
在查询某条已存储key时,把读出写成目标贡献与其他条目的贡献:
$$f(k_j)=a_{jj}v_j+\sum_{i\ne j}a_{ij}v_i.$$
单次读出的干扰比为
$$R=\frac{\left\|\sum_{i\ne j}a_{ij}v_i\right\|}{\|a_{jj}v_j\|}.$$
分母是实际目标贡献,不普遍等于 $\|v_j\|$;R也不普遍等于 $\|f(k_j)-v_j\|/\|v_j\|$。用R=1作比较线,表示干扰与目标项同量级,不表示过线后所有任务一齐失败。分类、向量恢复和生成任务有不同的成功标准,因此不能直接交换它们的容量数字。
AM02的T形图样使用64维value的8×8像素显示。固定seed=20261021、查询 $k_0$、维度 $d_k=d_v=64$,依次使用同一256条存储数组的前1、16、64、256条。实算R为0、0.454740、1.038556、2.142358。生成时先一次采样并归一化全部key,再采样并归一化全部value,最后将第一个value替换成单位T形向量;这个顺序也是复现条件。
所有图共用灰度范围[−0.125,0.125],不做逐图归一化或人工模糊。超范围像素只在显示时裁剪,指标仍用原始向量。这不是自然图像理解实验。
外积怎样把关联写进一个矩阵
先看两组完全指定的关联:
| 条目 | key | value |
|---|---|---|
| A | $(1,0)^\top$ | $(1,0)^\top$ |
| B | $(0.6,0.8)^\top$ | $(0,1)^\top$ |
两个key都是单位向量,却不是正交向量。两个value只是相互独立的内容方向,不是两个词。
外积累加得到
$$W=\sum_i v_i k_i^\top=\begin{bmatrix}1&0\\0.6&0.8\end{bmatrix}.$$
读取时
$$Wx=\sum_i v_i(k_i^\top x).$$
这与“先按key匹配,再把分数乘到对应value上相加”是同一次计算。查询A给出 $(1,0.6)^\top$,查询B给出 $(0.6,1)^\top$。0.6是内积系数,不是概率;查询变了,哪一项是信号、哪一项是干扰也会改变。
详见写入与读取分解。旧I02、I03保留原三条目和行向量示例,使用时须分清记号与数值。
干扰怎样随条目数与维度变化
假定key相互独立、均匀分布于单位球面;非目标value相互独立,与key独立,并为零均值、各向同性的单位向量。精确查询 $x=k_j$ 下,目标分数为1,随机非目标相似度 $s=k_i^\top k_j$ 有
$$\mathbb E[s^2]=\frac1{d_k}.$$
交叉项在期望下消失,因而外积读取的均方根干扰比为
$$R_{\rm RMS}=\sqrt{\frac{M-1}{d_k}}.$$
这里先对干扰向量范数的平方取期望,再开平方;它不是单次R,也不是平均范数或跨查询中位数。不能把所有绝对值简单相加成 $M/\sqrt{d_k}$,也不能因正负期望相消就宣布实际干扰为零。
固定 $d_k=64$ 时,RMS到达1的位置为M=65;常说“约64条”是在说与维度同阶。固定M=128时,维度从64增至256,RMS从约1.409降至约0.704。增加维度能减少随机线索之间的干扰,但不是实际64维语言模型的“事实配额”。AM05将这两个因素分开比较。
改善写入:相同线性层也可以做得更好
外积累加不是选择W的唯一方法。对全部指定关联同时求最小二乘:
$$\min_W\sum_i\|Wk_i-v_i\|^2.$$
两条目例有一个精确解
$$W^*=\begin{bmatrix}1&-0.75\\0&1.25\end{bmatrix}.$$
代入可得 $W^*k_A=(1,0)^\top$、$W^*k_B=(0,1)^\top$。矩阵尺寸、key与value均未改变。非正交key带来外积串扰,不代表所有线性映射都无法区分它们。
若M不超过输入维度且key线性独立,无正则线性回归可以满足任意指定的这M组输出。病态key、数值精度和有噪查询是另一些问题。
当 $M>d_k$ 且以key为行的 $K\in\mathbb R^{M\times d_k}$ 满列秩时,
$$W^*=V^\top K(K^\top K)^{-1},\qquad P=K(K^\top K)^{-1}K^\top.$$
P是投影矩阵。查询j的目标系数是 $P_{jj}$,不再固定为1,并有
$$\sum_{i\ne j}P_{ij}^2=P_{jj}-P_{jj}^2.$$
在各向同性近似 $P_{jj}\approx d_k/M$ 下,R约为 $\sqrt{M/d_k-1}$,到达1的位置约为 $2d_k$。因此64维的“128”是有误差时的比较阈值;精确恢复区间仍是M≤64且key独立。课堂图使用线性纵轴,将零值保留在基线上,并标出精确恢复区间。若另用对数纵轴,就需单独说明零值,不能偷偷换成小正数。详见AM07、AM08。
改善读取:先处理每条响应,再汇总value
从原始匹配分数重新开始,可以定义
$$f(x)=\sum_i v_i\,g(k_i^\top x)=V^\top g(Kx).$$
两条目例中,原分数为[1,0.6]。ReLU把负数截零,但这两个正数不变;平方ReLU $g(s)=\max(s,0)^2$ 才把响应改成[1,0.36]。非线性发生在value汇总之前;先汇总再平方是另一种计算。负匹配先被截零,不能直接平方成强正响应。
将K叫作 $W_1$,将 $V^\top$ 叫作 $W_2$,就得到两层MLP形式 $W_2g(W_1x)$。本显式构造中中间宽度H等于条目数M;K大小为 $H\times d_k$,$V^\top$ 大小为 $d_v\times H$。增加M也增加显式存储量 $H(d_k+d_v)$,并非固定参数量下免费获得容量。
Geva等从文本模式响应与输出分布研究FFN的关联记忆解释,但这不等于每个神经元一条知识、全部知识都在MLP中,或所有层功能都能被这个视角穷尽。实际FFN可有偏置、残差、归一化和门控。若改用行向量记号,一般SwiGLU使用不同投影,如 $(\mathrm{SiLU}(xW_g)\odot xW_u)W_d$;共享投影的幂次类比不能直接当作独立门控的一般结论。
精确查询和上述随机条件下,任意响应g可由
$$R_{\rm RMS}^2=(M-1)\frac{\mathbb E[g(s)^2]}{g(1)^2}$$
比较。对 $g(s)=\max(s,0)^p$,球面分布给出
$$\mathbb E[\max(s,0)^{2p}]=\frac{(2p-1)!!}{2d_k(d_k+2)\cdots(d_k+2p-2)}.$$
| 响应 | 64维球面RMS到达1的M |
|---|---|
| Linear | 65 |
| ReLU | 129 |
| 平方ReLU | 2817 |
| 立方ReLU | 38298.6,约38299 |
这些是本课有限维理论值。原文的采样曲线先在每个seed内取查询结果中位数,再跨5个seed平均;其正文近似64、128、2700、35000也采用不同近似。两种口径分别命名,不应强行修成重合。详见AM09至AM11。
指数、截断和softmax
继续用两条分数1与0.6,设β=4。相对于目标,非目标指数响应为
$$\frac{e^{4\times0.6}}{e^4}=e^{-1.6}\approx0.202.$$
指数值本身都可能增加,但B/A下降。选择性讨论的是这个相对比例。
指数可展开为各次幂之和。不过截断式
$$T_n(\beta s)=\sum_{p=0}^{n}\frac{(\beta s)^p}{p!}$$
含常数项,且必须用它自己的 $T_n(\beta)$ 作为目标响应。增加一项不能机械地保证所有条件下检索更好。课堂曲线切换到随机64维、β=8,比较2/3/4项截断(分别到一次、二次、三次)与完整指数;2项截断在R=1处仅M=41.5,甚至低于线性的65。部分奇次截断对负相似度可给负响应,不能把它们都叫概率。
回到二维、β=4,指数值约为54.598和11.023,总和65.621。归一化后为[0.8320,0.1680],输出仍是两个value的混合。归一化不改变相对比例;R中的共同分母也会约掉。稳定实现先减去最大logit,再指数和归一化,避免指数步骤溢出。
标准attention常写成 $\mathrm{softmax}(QK^\top/\sqrt{d_k})V$。本节单位向量列记号为 $V^\top\mathrm{softmax}(\beta Kx)$。若实际q、k的典型范数约为 $\sqrt{d_k}$,改成单位向量后的尺度可对应β约 $\sqrt{d_k}$;这不是对任意训练模型都精确成立的恒等关系。Transformer原论文与AM12、AM13可结合阅读。
当前条目来自哪里,百万量级又意味着什么
MLP的 $W_1/W_2$ 是训练参数。self-attention中的投影 $W_K/W_V$ 也是训练参数,但 $K=XW_K$、$V=XW_V$ 是当前输入计算出的结果。X多一行,可以让K/V多一行,而不改变投影矩阵大小。
因此“非参数式”描述的是条目能随输入长度增长,不是attention没有参数,也不是一个token等于一条独立事实。普通推理中读过A12秒/B8秒材料,可以影响本次回答而不改变训练参数;下一次请求能否看到它,取决于应用是否再次提供或保留相关上下文。KV缓存属于保留计算结果的工程机制。AM14讲来源,后续服务段再计算成本。
对随机单位key的相似度作高斯近似 $s\sim\mathcal N(0,1/d_k)$,精确查询下指数读取有
$$R_{\rm RMS}\approx\sqrt{M-1}\exp(\beta^2/d_k-\beta).$$
忽略一项目标,R=1给出 $M\approx\exp(2\beta-2\beta^2/d_k)$。64维、β=8时约 $e^{14}=1.20\times10^6$;有限维球面矩计算约 $1.27\times10^6$。两者不是作者采样中位数统计。
若目标匹配为ρ而不是1,高斯估计改为 $\exp(2\beta\rho-2\beta^2/d_k)$。它显示查询噪声会迅速降低这个量级。独立随机value的向量合成也十分关键:不能把许多非目标权重的绝对值直接相加,再与这里的R比较。
这些结果说明选择性读取能在理想条件下显著延后干扰占优;没有证明64维模型存下百万个人类事实,没有给出真实上下文长度保证,也没有消除保存K/V与计算匹配的成本。AM15始终带条件读数量级。
长度改变后,锐度能做什么
固定β时,M增长仍使弱贡献累积。本课用一条LogN教学对照:
$$\beta(M)=8\max\left(1,\frac{\ln M}{\ln1024}\right).$$
1024是本检索实验的参考长度,不是Qwen报告的真实训练长度2048。前台比较固定β=8与此规则,仍假定64维随机单位key、独立各向同性value和精确查询。旁边以同一组分数比较不同β时的全部softmax权重,不把变化画成只有目标增加。
Qwen技术报告中的LogN、Su的推导与YaRN的尺度不同。YaRN中的 $0.1\ln(s)+1$ 作用于q/k幅度,因而对logit的因子平方;s为上下文扩展比例。把尺度按当前候选M变化,是理想检索实验中的比较设置,不能等同完整模型部署。
更尖锐不总是更有用。分配趋近只取一项,会减少多个相关内容的共同参与;训练时还可能饱和,多个方向的梯度变小。有限精度、位置外推、训练分布、噪声查询、显存和计算都仍存在。有限个互异key、精确查询、锐度可任意提高的数学极限,与真实系统是不同的问题;图示有限长度范围的改善不证明无限容量。详见AM16。
从机制走向训练证据
对线性层 $y=Wx$,梯度更新为
$$\Delta W=-\eta\frac{\partial L}{\partial y}x^\top.$$
它有外积形式,说明参数如何改变输入与输出方向之间的关联;但 $-\eta\partial L/\partial y$ 是误差信号,不是原始事实value。实际网络还需学习合适的内部表示,且这些表示在优化中变化。因此能表示、训练能学到、任务能用好,需要分别检查。
现代Hopfield与attention讨论关联检索的联系;固定参数量事实记忆则是另一类研究问题。不能用显式K/V随M增加的检索曲线替代固定参数模型的事实容量结论。
AM17和AM18将机制分析收束为一个实证问题:在清楚的任务和评测条件下,扩大模型或训练材料后,表现怎样变化?下一页N11保留具体图像的patch操作,随后读取ViT和MAE的真实实验。结构提供可能性,实际训练、评测与资源条件决定其中哪些可能性变成可用能力。
可复算材料与来源
本节公开图表由独立实现生成,并保留输入、公式与统计方式。原文代码和图资产的公开可访问性不等于已授予开放再分发许可;课程保留原配套仓库链接,不将其代码伪称为本课实现。
课堂、当前停点说明、逐页阅读与连续讲者稿共用作者内容。模拟问答是备课设计,不能作为真实学生已经理解的证据。
把这个问题带进实验
打开对应 Notebook 后,找到下列同名小节。各本的准备说明、已有输出和证据边界保留在本册中。