模型里没有一格存着「巴黎」:大模型为什么能学习,学到的东西究竟怎么存

两个最根本的问题一次讲清:为什么"预测下一个词+梯度下降"这么笨的办法能学到知识(因为预测即压缩,压缩逼出规则);知识以什么形态存在权重里(不存在任何"格子"里,而是存在高维空间的方向上——MLP 是键值查询台,容量约 2 bit/参数)。附一个亲手可跑的 30 行实验。

问大模型”法国的首都是哪”,它答”巴黎”。这个过程中它没有查任何数据库、没有检索任何文件——它的全部家当只是几百个浮点数矩阵。那么问题来了:“巴黎”存在哪个格子里? 答案是:哪个格子都不存,但又几乎每个格子都沾一点。这篇文章把两个最根本的问题一次讲清:为什么”预测下一个词”这么笨的目标能学到知识;以及学到的知识到底以什么形态活在权重里。

一句话答案

先把结论放在最前面,后文全是对这两句话的展开:

  1. 为什么能学习:因为”学习”被改写成了一道可以求导的压缩题——预测下一个词的损失可以对每个参数求导,梯度下降就能沿着导数下山;而要把预测做好,死记硬背装不下,模型被迫抽出规则。预测 = 压缩,压缩逼出泛化。
  2. 学到的东西怎么存:不存在任何”地址”里。中观层面,Transformer 的 MLP 层像一排键值查询台(模式进,词表倾向出);微观层面,一个概念对应高维空间里的一个方向,而且靠”几乎正交”的性质,方向数量远多于维度数量(叠加);定量层面,容量约为 2 bit / 参数

这篇是《任务能力怎样写进 LLM 权重》的地基篇:那篇讲”训练信号怎么流进权重”,这篇往下再挖一层——为什么这条流水线能产出知识,产出的知识长什么样


一、为什么能学习:把”学习”改写成一道可以求导的数学题

“学习”听起来是个神秘的认知行为。大模型的第一步魔法,是把它降维成三个毫不神秘的组件:一个可计算的目标、一个可执行的手段、一个能逼出规则的压力。

1.1 目标:预测下一个词

模型的训练目标只有一个:给定前文,给下一个词的概率分布,用交叉熵衡量猜得准不准(为什么偏偏用交叉熵和 log,之前在这篇里从数值下溢和连乘的角度推过一遍)。写成公式就一行:

L=tlogpθ(xtx<t)L = -\sum_t \log p_\theta(x_t \mid x_{<t})

注意这个目标的两个特征:它对参数 θ\theta 处处可导它不需要人来标注——语料自己就是标签(下一个词就写在那里)。第二点决定了它能吃下整个互联网的数据量,第一点决定了它能被优化。

1.2 手段:可微 + 梯度下降

因为 LL 可导,反向传播就能算出每个参数对损失的”责任”(θL\nabla_\theta L),然后每个参数朝减小损失的方向挪一小步。这一步的数学本质是泰勒一阶近似——在当前点附近,损失函数可以被当成一个斜面,沿最陡下降方向走(展开细节见泰勒展开和大模型)。

到这里,“学习”已经变成了一个纯机械过程:在几十亿维的参数空间里,沿着可计算的坡度反复下山。没有任何一步需要”理解”。

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 为什么不是死记硬背:压缩的空间不够

还剩最后一个疑点:模型为什么不直接背下整个语料?

因为装不下,也不划算。当参数量相对数据量不足以逐条硬背时,“抽出一条规则覆盖一万个例子”比”背一万个例子”便宜得多——梯度下降会被自然推向规则。这不是空想,有一个能在小模型上复现的干净证据:grokkingPower et al. 2022 在模 97 除法这种小算术数据集上训练小 Transformer:训练准确率在不到 10310^3 步就接近满分(背下来了),但验证准确率直到约 10610^6 步才突然从随机水平跳到接近满分——先背诵,后开窍。开窍的那一刻,模型内部从”查表”切换成了”算法”(这个现象的逐层拆解见之前的 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 模型的权重文件打开,你看到的是几百个形如 4096×110084096 \times 11008 的浮点数矩阵。没有任何一行写着”巴黎”,没有词条、没有索引、没有 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)

叠加为什么可行?靠的是高维空间一个反直觉的数学性质:正交方向只有 dd 个,但”几乎正交”的方向多到用不完。这一点我没有引用论文,是自己跑了个 30 行脚本亲手测的(Node.js,随机单位向量、算两两夹角余弦):

维度 dd随机方向数两两配对数平均 cos\|\cos\|最大 cos\|\cos\|cos>0.5\|\cos\|>0.5 的配对
22000~200 万0.63651.0000133 万对
1002000~200 万0.08010.50231 对
7682000~200 万0.02880.17900 对

d=768d=768 正是 GPT-2 的隐藏维度:往里随机扔 2000 个方向,任意两个的夹角都大于 79.7°arccos0.17979.7°\arccos 0.179 \approx 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 模型能存约 14×10914 \times 10^9 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 的 10310^3 vs 10610^6 步(Power et al.);ROME 编辑效果与 Hase 的反驳;SAE 3400 万特征与 Golden Gate 演示。这些都给了原文链接,但我没有跑过其中任何一个训练。
  • 观点/推测:「幻觉是方向共振式存储的固有代价」是我的判断,不是论文结论;「剩余容量花在语法推理上」是合理推测,论文只测了事实元组。

最低成本的亲手验证实验(30 行,无 GPU,几十秒):把 2.3 节的实验自己跑一遍——生成 2000 个 dd 维随机单位向量,算两两余弦,看 d=2d=2d=768d=768 的差距。它验证的是叠加假说的数学地基。想再上一个台阶,可以用 nanoGPT 的字符级模型复现一次 grokking(模加法数据集),或者跑一次 ROME 的官方 demo notebook,亲手把埃菲尔铁塔搬到罗马。

参考来源

论文(arXiv / 会议)

工程实践 / 研究博客

本站回链

任务能力怎样写进 LLM 权重 · 为什么交叉熵要用 log · 泰勒展开和大模型 · Grokking · 涌现是真是幻 · KV cache 是内存管理吗 · ICL 像临时做贝叶斯 · Kakeya 与高维思维 · Scaling Laws 零基础陪读 · 概率内核,确定性外壳 · AI 顶级原理望远镜 · nanoGPT 字符级模型