冻结的小模型如何同时变得“更聪明“又“更便宜“?
2026/7/27 22:31:49 网站建设 项目流程

这项由 Corbenic AI 独立研究员完成的研究,以预印本形式发布于 2026 年 7 月,论文编号为 arXiv:2607.14431,有兴趣深入了解的读者可通过该编号查询完整论文。

说到底,AI 界有一个根深蒂固的信念:模型不够聪明,就去训练更大的;速度太慢、成本太高,就去买更多的计算硬件。这个逻辑听起来无可挑剔,但它有一个致命的代价——贵。训练一个大型语言模型,光是碳排放就能达到几百吨二氧化碳当量,更别提每次有人向模型提问时,系统都在重新"回忆"一遍它曾经想过的问题,白白烧掉大量算力。

这篇论文偏偏要走一条完全不同的路:既不改动模型的任何参数,也不增加一台新机器,只用一个机制,让一个冻结的 12B(120亿参数)小模型在某个权威数学竞赛基准测试上,从 80% 的正确率一跃升至 93.3%,同时把最难的那批题目的计算代价压缩了 6574 倍。

这个机制有个颇具神秘感的名字,叫做"字节级精确 KV 状态移植"(byte-exact KV-state grafting)。听起来很拗口,但核心思想其实和我们日常存档、读档的直觉如出一辙。

---

一、一切从"存档"说起:KV 缓存到底是什么

要理解这项研究,先要搞清楚一件事:大语言模型在思考时,脑子里装着什么。

每当模型读入一段文字,它会在每一层神经网络里计算出一堆中间数据,这些数据描述了"每个词和其他每个词之间的关系",就像大脑在阅读时对上下文的理解一样。这些中间数据有个专业名字叫 KV 缓存(Key-Value Cache),可以理解为模型对这段文字"理解之后留下的笔记"。

正常情况下,这份笔记是临时的——每次有新问题进来,模型都从头重新读一遍,重新记笔记,然后再回答。这就像你每次查字典,都要把整本字典重新翻一遍,查到想要的词,再把字典合上。下次再查同一个词,还是从头翻。

这项研究的核心思路就是:能不能把这份"笔记"精确地保存下来,下次直接拿来用,不再重新翻字典?

问题的关键在于"精确"两个字。大家都知道可以缓存一些中间结果,各种推理系统也在这样做,但通常做的是"近似复用"——就像你根据记忆复述字典定义,大概意思对了,但细节可能有出入。这项研究追求的是更苛刻的标准:复原出来的笔记和重新算一遍完全一模一样,连每个数字的每一个二进制位都相同。用论文里的术语来说,就是"字节精确"(byte-exact)。

---

二、存档要怎么验证是真正"原版":SHA-256 哈希与零 KL 散度

字节精确这件事,不能靠感觉,要靠数学验证。

研究团队用了两种方法来证明"复原的笔记和原版笔记完全相同"。第一种方法叫 SHA-256 哈希,可以理解为给文件拍一张"数字指纹"——哪怕文件里有一个比特发生了变化,指纹就会完全不同。研究团队对复原后的模型输出向量拍了指纹,再对重新计算一遍的输出向量拍了指纹,两张指纹完全一致,5 次独立试验全部通过。

第二种方法叫 KL 散度(Kullback-Leibler divergence),可以理解为衡量两个概率分布之间"差异程度"的尺子。如果两个分布完全一样,KL 散度为零。研究团队对 50 个样本测量了这个值,中位数和第 99 百分位都是精确的零,而且没有一次出现"最高概率的候选词不同"的情况(即 argmax 一致性 100%)。用曼-惠特尼 U 检验做统计分析,p 值为 1.0,效应量 Cliff's delta 为 0,意思是复原后的分布和重新计算的分布在统计上完全无法区分。

这个结果在真实的 Gemma-4-12B 模型(谷歌的一个 120 亿参数语言模型)和真实的 GPU(英伟达 RTX 5090,代号 Blackwell)上都得到了验证。后来底层推理框架经历了一次重大升级,研究团队重新测量,结论保持不变。这种"升级之后还得重新验证"的态度,是整篇论文让人信服的细节之一。

整套系统里,负责字节精确 KV 状态移植的部分叫 Taliesin(取自威尔士传说中的吟游诗人),负责上层"解题-验证-存档"循环的部分叫 Galahad(亚瑟王传说中寻找圣杯的骑士)。这两个名字串联起来的意象颇有意思:一个专注于精确传递,一个专注于验证与积累。

---

三、旋转位置编码的"数学陷阱":为什么只有"原位移植"才能做到字节精确

说到这里,一个尖锐的问题出现了:模型在读文字时,会给每个词标注它在序列里的"位置",就像在信件开头写上日期一样。这套标注机制叫旋转位置编码(RoPE,Rotary Position Embedding)。如果把存档的笔记挪到另一个位置用,位置信息不就乱了吗?还能保持字节精确吗?

研究团队专门测量了这件事,结果非常干脆:把笔记放回它原来的位置,字节精确;把它挪到任意其他位置,不精确。

更关键的是,研究团队做了一个对照实验:不用移植机制,直接让模型在两个不同位置上重新计算同一段文字,两次新算的结果之间,KL 散度也不为零(大约 0.014),而且这个数值和"移植后放到错误位置"造成的偏差(大约 0.015)几乎一样大。换句话说,"位置不同造成的误差"完全是模型本身的浮点数计算特性导致的,和移植机制本身无关。

为什么会这样?在严格的数学世界里,注意力机制依赖的是词与词之间的"相对位置",理论上和绝对位置无关。但在 32 位浮点数的真实计算世界里,三角函数的运算 cos(a)cos(b) + sin(a)sin(b) = cos(a-b) 这个恒等式并不能在比特级别精确成立——用不同的绝对角度去算同一个相对角度,最后一位比特就会出现差异,这个差异经过网络各层放大,就变成了那个约 0.01 的散度残差。这是 32 位浮点数的内禀限制,任何推理引擎都无法绕过。

这意味着整个研究有一个非常清晰的边界:字节精确只在"原位移植"这一个工作点成立,这不是研究者主动选择的限制,而是物理世界强加的约束。研究团队提前测试并公开了这一边界,没有试图绕过或掩盖它。

---

四、能省多少钱:85.6 倍的预填充加速

字节精确确认了,接下来就要算账了。

研究团队在真实的 Gemma-4-12B 模型上做了时间测量。当模型需要从零开始处理一段 11994 个词的提示时,光是"读入"这段提示就需要 1547.3 毫秒。而如果这段提示之前已经被存档,直接把存档的状态装入内存再往后算一个词,只需要 18.1 毫秒。速度提升了 85.6 倍,而且由于移植是字节精确的,计算结果和从头算完全一样。

这里还有两个容易被忽视的工程细节,研究团队都如实记录了。第一个是 Gemma-4 采用了"滑动窗口注意力"机制,原生的提示词缓存只能在稀疏的检查点恢复,而不是完整恢复,因此需要特殊配置才能真正跳过全部重算。第二个是在多槽位服务器上,如果请求被随机分配到没有缓存的槽位,加速效果就会消失,需要把带缓存的请求"钉"在对应槽位才行。这两个细节都被明确记录,而不是悄悄消除。

在更宏观的维度上,研究团队还做了一个压力测试:把 2854766 个词(约 285 万词)的内容存成 88 个持久化块,放在磁盘上,然后在这 88 个块的各个深度上随机"埋针"(即在隐蔽位置藏一个特定数字),再测试能否准确取回。结果是 7 个测试点全部正确读取,涵盖从第 0 个词到第 282 万个词的各个深度,每次存取的时间大约是 0.29 秒,而且这个时间不随深度增加——取第 282 万个词的代价和取第 0 个词的代价一样。

最重要的是,这 285 万词全部放在磁盘上,显存(GPU 内存)占用和正常服务没有任何区别,峰值显存 25595 MB,和不用这套机制时完全相同。这相当于把模型可访问的"有效上下文长度"从 32768 个词(服务器配置的上限)扩展到了 2854766 个词,扩大了 87 倍,而不需要购买任何额外硬件。

---

五、从"更便宜"到"更聪明":在 AIME 2025 数学竞赛上的实验

节省成本只是故事的一半,更引人注目的是能力的提升。

研究团队选用的测试集是 AIME 2025,这是美国数学邀请赛 2025 年的 30 道题,在 Gemma-4-12B 模型声称的训练数据截止时间(2025 年 1 月)之后才公开,因此模型不可能在训练时见过这些题。这是一个后截止日期的测试集,能有效防止"模型只是在背答案"的质疑。

谷歌官方的 Gemma 4 模型卡(model card,可以理解为产品说明书)报告了 Gemma-4-12B 在 AIME 2026 上的不使用外部工具的成绩是 77.5%,Gemma-4-31B(310 亿参数的更大版本)是 89.2%。研究团队用自己最好的推理配置(在思维链自我验证和代码执行之间路由选择)跑完 AIME 2025,得到 80.0%(30 题中答对 24 题),超过了那个 77.5% 的参考锚点。

在这个配置下,有 22 题被标记为"自信且正确",另外 8 题(编号 #9、#10、#11、#13、#14、#20、#28、#30)被标记为"不确定"——这 8 题里包含了模型完全答错的所有题,以及 2 道答对但没有自信的题。这 8 题就是"失败集合",也是飞轮机制的用武之地。

接下来的操作是:用更多的计算资源把这 8 道题逐一解出来,每道题的答案都通过代码执行来验证(让模型写一段程序,运行程序,确认输出和已知答案一致,才算通过验证)。验证通过之后,把这道题的解题过程所产生的 KV 状态,作为一个持久化的块存到磁盘上。整个已验证的解题库大约包含 4571 个词,占用约 441 MB 的磁盘空间。

然后,把这个库"移植"进来,让模型面对那 8 道题。结果是 6 道题正确(#9、#10、#13、#20、#28、#30),2 道题未能解出(#11、#14)。#11 和 #14 的问题在于它们对应的缓存程序最长,模型在"一次性适应那么长的代码"时出了问题,而缓存本身依然字节精确地保存着正确答案。

最终系统得分:22(模型自信正确)+ 6(从库中恢复)= 28/30 = 93.3%。这个数字超过了 12B 自己的官方锚点(77.5%),也超过了 31B 更大版本的官方锚点(89.2%)。

---

六、成本的戏剧性:6574 倍的代差

现在来看那 8 道"失败题"的成本对比,这才是让人看了需要停下来重读一遍数字的部分。

研究团队给基础模型一个"最佳努力"预算:每道题允许采样 5 次(best-of-5),8 道题共消耗了 401026 个输出词(token),最终答对 0 道。

用移植机制,同样 8 道题,取回已验证答案,共消耗 61 个输出词,平均每题 7.6 个词,全部答对 8 道。

401026 除以 61,约等于 6574。用不到七千分之一的计算量,从 0 分变成满分。

时间方面,整个移植路径只用了 2.8 秒。能耗方面,因为这 2.8 秒太短,功率采样仪的分辨率不够,研究团队给出了一个保守估计范围:相比基础模型那 40 万词的耗电,移植路径节省了大约 3000 到 8700 倍的能量。这个不确定范围被如实报告,而不是取一个最漂亮的数字。

更有趣的是,移植路径之所以必须做"每道题一个单独的块、按需路由"而不是"把所有方法合并成一个大前缀",是因为研究团队在早期设计中踩了坑:把 8 道题的方法全部合并成一个前缀提供给模型,模型会搞混,把 #9 的问题和 #14 的方法对应上,答出错误答案。最终召回率只有 5/8,而且有一次直接把另一道题的答案当成输出。分开存储、路由到唯一正确块,才让召回率变成 8/8。

---

七、真正的考验:迁移到没见过的新题

能记住解过的题算不上真正的智能。更有意思的问题是:缓存的解法能用在从未见过的新题上吗?

研究团队设计了迁移测试:把原来 8 道题各自生成一道"结构相同但数字不同"的新题(比如原题某个参数是 5,新题换成 23),每道新题的答案独立用三种方式交叉核验,确认正确才算有效新题。结果共得到 7 道有效新题(#10 没有找到合适的同构新题,如实记录而非隐瞒)。

实验流程是:用一次性分类器找到最相关的缓存块,移植进来,让模型把缓存的解题程序适配到新的数字上,运行程序得到答案。最终 5/7 正确,路由全部正确(7/7)。

失败的 2 道题失败原因非常清晰:#28 的缓存代码把一个"应该随参数变化的结构常数"写死了,适配时被模型错误替换,导致程序崩溃;#11 的缓存代码里把一个具体的数学常数(√185)硬编码进去了,新题需要的是 √697,无法通过简单的数字替换完成,模型不得不重新推导,结果超时。

这个边界非常清晰:当缓存程序在数字上是参数化的(即用变量代替具体数字),迁移就能成功;当具体数字被硬编码进程序逻辑,迁移就会失败。这不是机制本身的缺陷,而是模型写代码方式的特性,研究团队专门区分了"缓存的知识本身"和"模型自主应用这些知识"的能力,前者完全正确,后者有边界。

---

八、扩大规模:310 亿参数在 H100 上的验证

为了验证整套机制不只适用于特定的小模型和特定的硬件,研究团队在租用的 H100 服务器(英伟达 Hopper 架构,数据中心级 GPU)上运行了 Gemma-4-31B(310 亿参数)。

所有参数在运行前就已经提前哈希注册,防止"看到结果再挑选"的可能性,这是一种预注册(pre-registration)实验设计,在学术界用于提高结果的可信度。

迁移测试在 31B 上的结果是 7/7(100%),包括 12B 没能解出的那两道硬题(#11 和 #28),用了 25361 个输出词,耗时 8.4 分钟,能耗 72.15 Wh。30 道题全部通过的飞轮系统得分是 30/30(100%),其中 8 道最难的题来自缓存,其余 22 道实时解答,整套流程总云端费用大约 8 到 12 欧元。

研究团队对这个"100%"做了非常明确的说明:这是飞轮系统的总分,其中干净的泛化能力数字应该看迁移测试的 7/7,而不是让系统总分代替泛化能力指标。

此外,在另一个叫做 LiveBench 的基准测试上(用旧数据作为库,最新数据作为泛化测试集,题目 ID 完全不重叠),310 亿模型取得了 71.7% 的迁移正确率(43/60),其中逻辑谜题类约 90%,数学竞赛类约 85%,奥林匹克类约 25%。

---

九、两块不同架构的显卡:B200 上的预注册复现

字节精确这件事,到底是这块 RTX 5090 显卡特有的特性,还是一个普遍规律?

研究团队在租用的 NVIDIA B200(数据中心 Blackwell 架构,另一种 GPU)上做了预注册的复现实验:在运行之前,先把源代码的哈希值、模型文件、测试矩阵、通过标准、以及一个可证伪的预测全部写下来存档,然后才运行实验。

结果:两项指标(原位移植的零散度、SHA 字节相等)全部通过,在 Gemma-4-31B 上用 10 次独立试验验证,10/10 通过。

那个"可证伪的预测"是:在 B200 上,把缓存块挪到不同位置时,依然会出现非零散度残差,因为这个残差来自模型本身的浮点特性而不是特定 GPU。预测的存在方向(有残差)和非零翻转数被验证正确,但残差的量级(约 7×10??)比 12B 上的(约 1.4×10??)小了将近 19 倍,这个量级差异没有被预测到,研究团队如实记录了这个"预测正确方向、预测错误量级"的结果,而不是把它悄悄忽略。

综合来看,字节精确在两种规模(12B、31B)和两种不同 Blackwell GPU 目标(消费级 RTX 5090 和数据中心级 B200)上都得到验证,H100 上验证了功能正确性但没有做字节级测量,所以 H100 不计入字节精确的验证列表。

---

十、系统行为:路由器出错了怎么办,从磁盘读取会吃掉省下的算力吗

两个最实际的工程问题需要给出测量结果而非理论分析。

关于路由错误:在 15 次有库内匹配的路由测试中(8 道原题 + 7 道迁移新题),路由全部正确(15/15)。统计上,这个样本量对应的 Wilson 95% 置信区间大约是 79.6% 到 100%,研究团队报告了这个区间而不是直接说"100% 准确"。对于库外查询(比如"法国的首都是哪里"或"写一首关于海洋的俳句"),4 次测试中系统全部选择了"不路由"(4/4),没有出现自信错误的路由。研究团队也明确指出:从机制上说,"自信地路由到错误块"是可能发生的,只是在这个样本量内没有出现,更大规模的表征是未来工作。

关于磁盘读取的代价:研究团队测量了不同长度提示词下,"从头重算"和"从磁盘恢复状态"的时间对比。748 词的块,重算需要 96.1 毫秒,从磁盘恢复需要 57.7 毫秒,速度比约 1.7 倍;5977 词的块,重算需要 748.3 毫秒,从磁盘恢复需要 85.8 毫秒,速度比约 8.7 倍。规律非常清晰:重算的时间随词数几乎线性增长,磁盘恢复的时间受固定开销主导,增长缓慢。换句话说,提示词越长,从磁盘读取的优势越大,磁盘开销不会吃掉省下的算力,反而会随上下文加长而扩大优势。这里做了诚实的说明:这是双槽位服务器的测量,没有高并发扩展性的声明,"冷启动"的含义是本次会话的首次访问而非操作系统页面缓存被清空,恢复时间包含了 HTTP 往返延迟。

---

十一、研究者主动报告的失败案例

一篇只报告成功的论文,其实是在向读者隐瞒信息。这篇论文的第 4.13 节专门列出了"诚实的负面结果"。

当模型对某类任务本来就能做好时,飞轮机制完全没有效果——研究团队测试了一个 2026 年 12B 模型能第一次就做对的自动生成任务,飞轮版本和基础版本得分完全相同(216/216),时间也完全相同,因为根本没有失败的地方需要缓存知识来补救。

更有趣的是"缓存反而有害"的案例:研究团队给模型提供了一张"中国剩余定理手工计算方法卡片",用于一个模型其实本来就会的题型。结果准确率下降了 55 个百分点,用的词数增加了 10 倍,因为强迫模型走了一条比它默认方法更差的路径。这件事直接改变了研究的核心设计原则:只缓存模型真正缺乏的知识,绝不要把模型本来就会的方法重新规定一遍。

在块的可移植性方面,字节精确只在相同架构之间成立(同是 H100 的两台机器之间复制块,8/8 完全可用)。跨架构时,知识在功能上依然可以传递,但原始字节不保证相同,因为不同架构对浮点数的处理顺序可能不一样,最终算出的比特会有差异。

LiveBench 的复现测试里还发现了一个有趣的限制:对于结构复杂、包含多个示例的缓存块,31B 模型倾向于自己重新解题,而不是"读取"缓存里的答案,复现率只有 5/20。AIME 题目是单一解决方案的块,复现率 8/8。这是一个真实的机制局限,不是人为掩盖。

---

十二、成本与能力的反直觉关系

归根结底,这项研究最值得停下来细想的地方,不是某个具体的技术细节,而是它所揭示的一个经济逻辑。

在采样更多次(投票选最好答案)的路径上,买到 76.7% 的准确率需要消耗约 25000 个输出词每道题;在缓存已验证知识的路径上,买到 90.0% 的准确率只需要约 4400 个输出词每道题。每个百分点的代价,后者大约是前者的五十分之一。

原因是结构性的:采样更多次这条路,每次都要付全额计算费用,永无止境;验证存档这条路,只有第一次解题时付费,之后每次取用只需要一次移植。而且恰好是那些最难的题(12B 的盲区)对应的计算开销最大,飞轮机制精准地把那部分最贵的计算变成了一次性成本。

研究团队还顺带记录了一个有意思的对照:他们尝试让一个大型混合专家模型来解同一批题,这个大模型生成了 244 万个输出词,而 12B 生成了 77 万个词,但大模型有一半尝试没有在预算内完成,每道题解决成本和 12B 大致相当。"大模型,词元便宜"这个直觉,在固定内存预算下的硬推理任务上并不成立,因为大模型话多,总词数反而更多。

这项研究的完整证据链通过输入输出哈希锁定,每次实验的输入数据集和运行脚本在实验前做了 SHA-256 哈希,实验结果和原始输出在退出时再次哈希,因此结果的真实性可以在不接触专有引擎的情况下独立核实。有兴趣深入了解原始研究细节的读者,可通过论文编号 arXiv:2607.14431 查阅完整论文。

---

Q&A

Q1:KV 状态移植是如何实现"字节精确"的?

A:论文对具体实现机制保密(这是 Corbenic AI 的专有引擎),只公开了验证方式:在固定的确定性计算配置下,把存档状态复原后产生的输出向量,和重新计算一遍的输出向量,用 SHA-256 哈希做比较,50 次试验全部相等,KL 散度全部为零。在这个配置下,两次新计算的结果本身也是逐位相同的,所以这个验证是有实质意义的。

Q2:KV 状态移植和普通的提示词缓存有什么本质区别?

A:普通提示词缓存是"活在服务器进程里"的临时状态,进程重启就丢失,而且对滑动窗口注意力模型往往只能稀疏恢复,同一段提示词重新发送仍可能触发大量重算。字节精确 KV 状态移植把计算结果永久存成磁盘文件,可以跨进程、跨机器(同架构内)使用,移植后的状态和重新计算完全逐位相同,这种持久化加上精确性是普通缓存不具备的。

Q3:AIME 2025 上 12B 模型得到 93.3% 是不是作弊了——因为那 8 道题的答案是提前存进去的?

A:这个问题分两层回答。对于复现测试(同样 8 道题再次出现),确实是从存档里取答案,这属于论文明确区分的"复现"场景,是成本故事而非能力故事。对于能力故事,论文依赖的是"迁移测试"——把从未见过的同结构新题给模型,模型需要自主把缓存方法适配到新数字上,12B 做到 5/7,31B 做到 7/7。这才是论文声称的泛化能力数字,而非系统总分。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询