问大模型”法国的首都是哪”,它答”巴黎”。这个过程中它没有查任何数据库、没有检索任何文件——它的全部家当只是几百个浮点数矩阵。那么问题来了:“巴黎”存在哪个格子里? 答案是:哪个格子都不存,但又几乎每个格子都沾一点。这篇文章把两个最根本的问题一次讲清:为什么”预测下一个词”这么笨的目标能学到知识;以及学到的知识到底以什么形态活在权重里。
一句话答案
先把结论放在最前面,后文全是对这两句话的展开:
- 为什么能学习:因为”学习”被改写成了一道可以求导的压缩题——预测下一个词的损失可以对每个参数求导,梯度下降就能沿着导数下山;而要把预测做好,死记硬背装不下,模型被迫抽出规则。预测 = 压缩,压缩逼出泛化。
- 学到的东西怎么存:不存在任何”地址”里。中观层面,Transformer 的 MLP 层像一排键值查询台(模式进,词表倾向出);微观层面,一个概念对应高维空间里的一个方向,而且靠”几乎正交”的性质,方向数量远多于维度数量(叠加);定量层面,容量约为 2 bit / 参数。
这篇是《任务能力怎样写进 LLM 权重》的地基篇:那篇讲”训练信号怎么流进权重”,这篇往下再挖一层——为什么这条流水线能产出知识,产出的知识长什么样。
一、为什么能学习:把”学习”改写成一道可以求导的数学题
“学习”听起来是个神秘的认知行为。大模型的第一步魔法,是把它降维成三个毫不神秘的组件:一个可计算的目标、一个可执行的手段、一个能逼出规则的压力。
1.1 目标:预测下一个词
模型的训练目标只有一个:给定前文,给下一个词的概率分布,用交叉熵衡量猜得准不准(为什么偏偏用交叉熵和 log,之前在这篇里从数值下溢和连乘的角度推过一遍)。写成公式就一行:
注意这个目标的两个特征:它对参数 处处可导;它不需要人来标注——语料自己就是标签(下一个词就写在那里)。第二点决定了它能吃下整个互联网的数据量,第一点决定了它能被优化。
1.2 手段:可微 + 梯度下降
因为 可导,反向传播就能算出每个参数对损失的”责任”(),然后每个参数朝减小损失的方向挪一小步。这一步的数学本质是泰勒一阶近似——在当前点附近,损失函数可以被当成一个斜面,沿最陡下降方向走(展开细节见泰勒展开和大模型)。
到这里,“学习”已经变成了一个纯机械过程:在几十亿维的参数空间里,沿着可计算的坡度反复下山。没有任何一步需要”理解”。
1.3 为什么这能逼出”知识”:预测即压缩
疑点在这里:预测下一个词,凭什么能学出”法国的首都是巴黎”这种知识?
一个被论文钉实过的答案是:好的预测器在数学上等价于好的压缩器。DeepMind 的 Language Modeling Is Compression(ICLR 2024)把这层等价关系直接做成了实验:拿主要用文本训练的 Chinchilla 70B 当无损压缩器,它能把 ImageNet 图像块压到原大小的 43.4%(专用图像压缩器 PNG 只能压到 58.5%),把 LibriSpeech 音频压到 16.4%(专用音频压缩器 FLAC 是 30.3%)。一个文本模型在图像和音频上打赢了专用压缩器——因为压缩的本质就是抓住数据里的规律,而预测训练一直在逼模型抓规律。
直觉版本:如果你能极准地预测一篇文章的每个下一词,你就”懂”了这篇文章的全部套路——语法、事实、逻辑。要在”法国的首都是__“这里给”巴黎”高概率,模型就必须以某种形式持有这条事实。预测目标像一张考卷,考的范围是语料里的一切规律。
1.4 为什么不是死记硬背:压缩的空间不够
还剩最后一个疑点:模型为什么不直接背下整个语料?
因为装不下,也不划算。当参数量相对数据量不足以逐条硬背时,“抽出一条规则覆盖一万个例子”比”背一万个例子”便宜得多——梯度下降会被自然推向规则。这不是空想,有一个能在小模型上复现的干净证据:grokking。Power et al. 2022 在模 97 除法这种小算术数据集上训练小 Transformer:训练准确率在不到 步就接近满分(背下来了),但验证准确率直到约 步才突然从随机水平跳到接近满分——先背诵,后开窍。开窍的那一刻,模型内部从”查表”切换成了”算法”(这个现象的逐层拆解见之前的 Grokking 文;它和大模型能力”涌现”的关系见涌现辩论那篇)。
把四小节串起来,“为什么能学习”的完整回答是一条链:
graph LR
A[可导的预测目标<br/>交叉熵] --> B[梯度下降可执行<br/>可微即可学]
B --> C[预测做好 = 压缩做好<br/>被迫抓规律]
C --> D[容量不够硬背<br/>被迫抽规则 = 泛化]
这条链上没有一环是神秘的,但四环扣在一起,就从”预测下一个词”里挤出了知识。用《AI 顶级原理望远镜》的话说:这是 ③目标函数即命运 + ⑦可微即可学 + ④泛化才是终点 三条主原理的合谋。
二、学到的东西存在哪:三层显微镜
第二问开始前,先做一次排除法,因为有两个高频误区。
2.0 排除法:不在 KV Cache,也不在上下文
| 记忆 | 存在哪 | 时间尺度 | 怎么写入 |
|---|---|---|---|
| 参数记忆(本文主角) | 权重矩阵 | 永久(训练后冻结) | 梯度下降,改一次要一轮训练 |
| 工作记忆 | KV Cache / 上下文窗口 | 单次会话,请求结束即弃 | 把内容放进 prompt 即可 |
| 外挂记忆 | 向量库 / 文件(RAG) | 由外部系统决定 | 写数据库,不碰模型 |
推理时的 KV Cache 不存知识——它只是把当前这次对话里已算过的注意力中间量缓存下来,是显存管理问题不是知识问题(这套机制之前用操作系统视角完整读过:KV cache 是内存管理吗)。同样,上下文里的示例也不写入权重——in-context learning 全程权重冻结,更像在上下文里临时做推断(见 ICL 像临时做贝叶斯)。
排除完毕:训练学到的知识,只能在权重里。下面换三档倍率看它到底以什么形态存在。
2.1 低倍镜:都在权重里,但没有”格子”
把一个 7B 模型的权重文件打开,你看到的是几百个形如 的浮点数矩阵。没有任何一行写着”巴黎”,没有词条、没有索引、没有 schema。知识不是被”写入某个地址”,而是被摊在了大量参数的微小数值偏移上。
这就是为什么”删除模型学到的某条信息”至今是开放难题,而数据库里 DELETE 一行是平凡操作——没有地址,就没有精确删除。
2.2 中倍镜:MLP 层是一排键值查询台
再放大一档,结构开始浮现。Geva et al.(EMNLP 2021)发现:Transformer 里占了约三分之二参数的 FFN/MLP 层,数学形式上就是一个键值存储——
- MLP 第一个矩阵的每一行是一个 key:检测输入里的某种模式(浅层的 key 匹配表面模式,深层的 key 匹配语义模式);
- 第二个矩阵对应的列是 value:一旦 key 被激活,value 就给输出词表分布加一个特定倾向;
- 一层的输出是成百上千个被激活记忆的加权混合,再经残差流逐层精炼。
注意一个容易撞车的命名:这里的”键值记忆”和推理时的”KV Cache”毫无关系——前者是权重里的长期存储结构,后者是注意力的临时缓存,只是恰好都叫 key/value。
这个中观图景不只是比喻,它可编辑。ROME(Meng et al., NeurIPS 2022)先用因果追踪定位:回忆”某主语的某事实”时,起决定作用的计算集中在中间层的 MLP、主语最后一个 token 的位置上。然后对定位到的那层 MLP 的第二个矩阵(value 侧)做一次秩一(rank-one)修改——论文的招牌演示是把「埃菲尔铁塔在巴黎」改成「在罗马」(这篇工作的早期标题就叫 Moving the Eiffel Tower to ROME):改完后模型不仅直答”罗马”,连换个问法也答”罗马”,而其他无关事实基本不受扰动。能被一次外科手术式的改写精确翻转,说明事实存储确实有”键值条目”般的结构。
但要立刻泼一盆冷水(灰度):Hase et al.(NeurIPS 2023)做了系统检验,发现因果追踪定位到的层,和编辑哪层最有效,两者几乎不相关——在别的层做编辑同样能改掉事实。所以诚实的表述是:中层 MLP 的键值图景是目前证据最强的一阶近似,但”事实=某层某条目”的强定位论已被证伪,知识的存储比单条目模型更分散。
2.3 高倍镜:概念 = 方向,而且一格能塞好几个
最微观的一层,回答”一个概念对应什么物理实体”。答案不是”一个神经元”——大量神经元是多义的(同一个神经元既对学术引用激活、又对英文对话激活)。Anthropic 的 Toy Models of Superposition(2022)给出了目前最有解释力的框架:
- 特征是激活空间里的方向(不是某个坐标轴/神经元);
- 当特征在数据里稀疏出现时(绝大多数概念在绝大多数文本里不出现——“埃菲尔铁塔”在 99.99% 的句子里缺席),模型会把远多于维度数量的特征塞进同一个空间,代价是方向之间有微小干扰——这就是叠加(superposition)。
叠加为什么可行?靠的是高维空间一个反直觉的数学性质:正交方向只有 个,但”几乎正交”的方向多到用不完。这一点我没有引用论文,是自己跑了个 30 行脚本亲手测的(Node.js,随机单位向量、算两两夹角余弦):
| 维度 | 随机方向数 | 两两配对数 | 平均 | 最大 | 的配对 |
|---|---|---|---|---|---|
| 2 | 2000 | ~200 万 | 0.6365 | 1.0000 | 133 万对 |
| 100 | 2000 | ~200 万 | 0.0801 | 0.5023 | 1 对 |
| 768 | 2000 | ~200 万 | 0.0288 | 0.1790 | 0 对 |
正是 GPT-2 的隐藏维度:往里随机扔 2000 个方向,任意两个的夹角都大于 79.7°(),全部近乎垂直。二维平面里塞 2000 个方向则挤成一团浆糊(平均余弦 0.64)。维度越高,可用的”准正交槽位”越多——这就是叠加的地基,也是”模型宁可用 4096 维也不用 2 维”的根本原因之一(高维空间的反直觉性质之前在 Kakeya 那篇里铺过)。
方向不只是理论。Anthropic 2024 年的 Scaling Monosemanticity 用稀疏自编码器(SAE)把 Claude 3 Sonnet 中间层的激活拆成了3400 万个特征的字典,任一时刻只有约 100 个激活;其中一个特征对应”金门大桥”,把它人为钳到高激活值,模型就开始在各种话题里自称金门大桥(2024 年 5 月公开演示过的 “Golden Gate Claude”)。能被单独找到、单独放大、并因果性地改变行为——“概念 = 方向”从假说升格成了可操作的工程事实。
三层显微镜叠起来:
知识存在权重里(低倍)→ 以 MLP 键值条目的形态可定位、可编辑,但比单条目更分散(中倍)→ 条目的底层实体是高维空间中近乎正交的方向,靠叠加超额存储(高倍)。
三、有多大容量:2 bit / 参数
存储形态讲完,最后一个自然的问题是容量。这里有一个罕见的、干净的定量答案。
Zeyuan Allen-Zhu 与李远志的 Physics of Language Models: Part 3.3(ICLR 2025)用合成数据做了全对照实验(知识以 (主语, 关系, 宾语) 元组精确计量),得到一组结论:
- 充分训练的语言模型,知识容量稳定在约 2 bit / 参数——且在充分训练时基本与架构无关(GPT-2 / LLaMA / Mistral 都测过);
- 这个容量在 int8 量化后不掉(说明知识本来就没用满 16 bit 精度);
- “充分训练”的条件约是每条知识被见过 ~1000 次;曝光次数不足(如只见 100 次)时容量明显下降,且不同架构差距被放大(该设定下 LLaMA/Mistral 比 GPT-2 低约 1.3 倍——论文归因于 GatedMLP 更难训);
- 按此估算,一个 7B 模型能存约 bit 知识——论文估计这已超过英文维基百科加教科书的知识总量。
顺手做两笔小账(算术自己验过):7B 参数 × 2 bit = 1.75 GB 的纯知识;一个 fp16 参数占 16 bit 却只贡献约 2 bit 知识,“知识密度”只有 12.5%——剩下的容量花在了语法、推理、格式这些非事实能力上,或者干脆是冗余。这也解释了为什么 int8 量化几乎无损:本来就没存满。
这个数字对工程直觉的修正很实在:模型”懂多少”首先是参数量和数据曝光次数的函数,而不是玄学。数据里一条知识出现次数不够(长尾实体),再大的模型也存不牢——这直接连回数据配比和 Scaling Laws 的世界观。
四、带得走的对照表:权重不是数据库
| 维度 | 数据库 | LLM 权重 |
|---|---|---|
| 存储单元 | 行/键值对,有地址 | 高维空间的方向,无地址 |
| 写入 | INSERT,一次生效 | 梯度累积,同条知识需 ~1000 次曝光 |
| 读取 | 按键寻址 | 前向传播中的模式共振(key 匹配 → value 混合) |
| 删除 | DELETE,精确 | 开放难题(无地址可删,编辑有副作用) |
| 容量 | 磁盘大小 | ~2 bit / 参数 |
| 查询失败 | 返回空 | 照样输出(幻觉的根源之一) |
| 一致性 | 事务保证 | 无保证,同一知识不同问法可能不同答案 |
最后一行值得单独说:数据库查不到会返回 NULL,而模型的”查询”只是让词表分布往某些方向倾斜——倾斜永远会发生,无论对应的知识存没存进去。我认为这是理解幻觉最短的路径:幻觉不是 bug,是”用方向共振代替寻址”这种存储方式的固有代价(这也呼应概率内核,确定性外壳的工程结论:概率内核之外必须有确定性的验证壳)。
一句元规律带走:
数据库靠”寻址”,大模型靠”共振”。 学习 = 用梯度下降把数据压缩成规则;存储 = 把规则摊到近乎正交的方向上。理解了这两句,微调为什么会灾难性遗忘、量化为什么几乎无损、幻觉为什么根除不了、RAG 为什么要外挂——全都有了同一个解释起点。
诚实的提醒
按本站惯例,交代清楚证据成色:
- 亲手测出的:只有第 2.3 节的高维近似正交实验(Node.js 脚本,n=2000 随机单位向量,d∈{2,100,768},数字如表)。以及 1.75 GB / 12.5% 这类纯算术。
- 核实过来源但未亲手复现的:2 bit/参数、~1000 次曝光(Allen-Zhu & Li);Chinchilla 压缩率 43.4%/16.4%(Delétang et al.);grokking 的 vs 步(Power et al.);ROME 编辑效果与 Hase 的反驳;SAE 3400 万特征与 Golden Gate 演示。这些都给了原文链接,但我没有跑过其中任何一个训练。
- 观点/推测:「幻觉是方向共振式存储的固有代价」是我的判断,不是论文结论;「剩余容量花在语法推理上」是合理推测,论文只测了事实元组。
最低成本的亲手验证实验(30 行,无 GPU,几十秒):把 2.3 节的实验自己跑一遍——生成 2000 个 维随机单位向量,算两两余弦,看 和 的差距。它验证的是叠加假说的数学地基。想再上一个台阶,可以用 nanoGPT 的字符级模型复现一次 grokking(模加法数据集),或者跑一次 ROME 的官方 demo notebook,亲手把埃菲尔铁塔搬到罗马。
参考来源
论文(arXiv / 会议)
- Transformer Feed-Forward Layers Are Key-Value Memories — Geva et al., EMNLP 2021(arXiv 2012.14913)
- Locating and Editing Factual Associations in GPT(ROME) — Meng, Bau, Andonian, Belinkov, NeurIPS 2022(arXiv 2202.05262);早期版本 Moving the Eiffel Tower to ROME
- Does Localization Inform Editing? — Hase et al., NeurIPS 2023(arXiv 2301.04213)
- Toy Models of Superposition — Elhage et al., Anthropic 2022(arXiv 2209.10652)
- Physics of Language Models: Part 3.3, Knowledge Capacity Scaling Laws — Allen-Zhu & Li, ICLR 2025(arXiv 2404.05405)
- Language Modeling Is Compression — Delétang et al., ICLR 2024(arXiv 2309.10668)
- Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets — Power et al., 2022(arXiv 2201.02177)
工程实践 / 研究博客
- Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet — Anthropic, 2024
- ROME 官方代码与 demo — GPT-2 XL / GPT-J 上的事实编辑
本站回链
任务能力怎样写进 LLM 权重 · 为什么交叉熵要用 log · 泰勒展开和大模型 · Grokking · 涌现是真是幻 · KV cache 是内存管理吗 · ICL 像临时做贝叶斯 · Kakeya 与高维思维 · Scaling Laws 零基础陪读 · 概率内核,确定性外壳 · AI 顶级原理望远镜 · nanoGPT 字符级模型