你有没有遇到过这种情况:跟一个新同事交代了一件事,隔了两周再找他确认细节,他一脸茫然地说"你说过这个吗?"
现在的AI模型,本质上每次对话都是这个新同事。
这不是比喻,是技术现实。语言模型有个叫上下文窗口的东西,超出这个范围的内容它直接"看不见"了。更麻烦的是,就算内容还在窗口里,每次你重新发起请求,模型都要把这些文字从头到尾重新"读"一遍,哪怕这段文字它昨天刚读过。这篇论文要解决的,就是这两个问题。
先说说这件事到底有多反直觉。按常理想,AI处理过的信息应该是"处理过就记住了",就像人读过一本书会有印象。但transformer架构的工作方式完全不是这样。
上下文窗口*:模型一次能同时关注(attend to)的token数量上限,超出这个范围的文字对模型来说完全不存在,哪怕物理上它就在你发给它的文本里。
KV缓存*:模型处理每个token时会生成一组叫Key和Value的中间数据,这是模型理解上下文的核心状态。正常情况下,同样的文字每次请求都要重新计算一遍这组数据,这个过程叫做"重算"(recompute)。
Corbenic AI的这篇论文介绍了一个叫galahad-kv的工具包,核心思路很直接:模型算过的东西,别扔,存起来,下次要用直接读出来,不用再算一遍。他们在一台NVIDIA H100显卡上,拿5000万token的真实文本做了实验,结果是所有被抽查的内容都能做到"字节级精确恢复、零重算",而且GPU显存全程保持不变。
核心问题:为什么不能简单地"记住"
你可能会问,这有什么难的,存个文件不就行了?
难点在于两个地方。
第一,存下来的东西必须和"重新计算出来的"完全一致,不能是个大概、不能是个摘要。因为模型的推理建立在精确的数学计算链条上,差一点点浮点数,后面生成的内容就可能跑偏。
第二,存和取的速度、成本必须比重新算一遍更划算,不然这事就没有意义了。如果存取比重算还慢还贵,那还不如老老实实重算。
在这篇论文之前,业内已经有一些类似尝试,比如LMCache、CacheBlend这些系统,它们把KV数据搬到CPU内存或者磁盘上,减少重复计算。但论文作者指出这些方案有两个短板:数据是明文存储的,没有加密;而且很多方案和特定模型架构绑定,换个模型就不好使。另外还有一类做法是RAG(检索增强生成),它把相关文字重新塞进模型的上下文窗口里,让模型"重新读一遍",这个重新读的过程本质上还是要花计算成本的。
设计解读:一块加密硬盘,一个"存取"引擎
galahad-kv的工作方式分两步。
第一步叫"存入"(deposit)。模型每处理完一个约16000 token的文本块,这个块对应的KV数据就被写到本地固态硬盘上,用AES-256-GCM加密,然后GPU显存里的这部分数据就被释放掉了。这意味着在处理5000万token的过程中,显存占用是一条平线,不会越堆越高。
AES-256-GCM*:一种高强度的数据加密标准,常用于保护静态存储的敏感信息,这里保证每个组织存的记忆内容别人读不了。
第二步叫"取出"(restore)。当模型后续需要用到某个已经处理过的文本块时,系统直接把加密硬盘里对应的KV数据读出来,"嫁接"回模型的计算过程中,让模型表现得就像刚刚才算完这段文字一样,但实际上一个token都没有重新计算。
这里有个类比能帮你理解这个设计的分量。想象你是个律师,每次开庭前都要把整个案卷从头读一遍,哪怕这个案子你已经跟了三年、读过案卷几十遍。如果没有"记笔记"这个习惯,你每次开庭前都得花同样多的时间重新啃一遍材料,时间成本摊在每次开庭上都是一样高的,不会因为你跟这个案子越久就越省力。而galahad-kv做的事,相当于给这个律师配了一本详细到逐字逐句的工作笔记,笔记锁在保险柜里,需要哪部分直接翻出来用,不用重新读案卷。如果没有这套笔记系统,模型面对5000万token规模的历史记录时,想用其中任何一段都得老老实实重新计算一遍,计算成本会随着历史积累越堆越高,这是完全不可持续的。
为了验证这套系统不是在"耍花招",作者设计了一套反作弊协议,专门堵住五个可能的漏洞。
第一个漏洞是预训练污染,就是模型本来就知道答案,不是从存储里读出来的。对策是把文本里的人名、日期、金额、邮箱全部替换成随机生成的内容,保证这些"事实"只存在于这次实验里,模型不可能提前背过。
第二个漏洞是提前窥探问题,对策是先把全部5000万token"盲存"进去,完全不带任何问题,等存完了才开始提问。
第三和第四个漏洞分别是内容被偷偷丢弃、以及靠关键词蒙对答案。对策是在每个文本块里埋一条带独特编码的"记录",同时再埋几条格式相同但编码不同的"诱饵",如果模型靠简单的关键词匹配,大概率会蒙中诱饵而不是正确答案。
第五个漏洞是设备汇报造假,作者专门审计了硬盘上的实际文件,确认每一块的加密标头和字节数都跟理论计算的大小对得上。
这套协议本身就是一种类比:如果一场考试只靠"学生自己报分",那分数毫无可信度。只有引入独立监考、盲阅卷、交叉验证这些机制,分数才有意义。作者显然很清楚,一个自己既当裁判又当选手的实验是立不住脚的,所以才花了整整一个章节去设计这些反作弊手段。
实验结果:恢复更快,还更省电
实验用了两个版本的Gemma 4模型,一个120亿参数,一个310亿参数,都通过vLLM这个开源推理框架部署在一张H100显卡上。
vLLM*:一个开源的大模型推理加速框架,这篇论文的记忆系统是作为一个插件接入vLLM运行的。
测试语料是5000万真实文本token,来源包括WildChat对话记录、开源代码、arXiv论文和网页教育文本,按一定比例混合,然后经过前面说的匿名化处理。
| 指标 | Gemma 4 12B | Gemma 4 31B |
|---|---|---|
| 零重算恢复成功率 | **100/100** | **100/100** |
| 文本事实召回准确率 | 82/100 | **98/100** |
| 幻觉(编造不存在的内容) | **0** | **0** |
| 负例控制组误答 | 0/20 | 0/20 |
在深度0到约4950万token之间随机抽取100个点位进行检验,两个模型全部做到了零重算的精确恢复。文本召回上,120亿参数模型答对了82道,310亿参数模型答对了98道,两个模型都没有产生过幻觉,也就是说它们从来没有编造出一个文本块里根本不存在的答案,在20次刻意设计的"陷阱问题"(问模型一个它根本没见过的记录)里,两个模型都诚实地拒绝回答,而不是瞎编一个。
速度和能耗这块的数字更直观。
| 指标 | Gemma 4 12B | Gemma 4 31B |
|---|---|---|
| 恢复用时(中位数) | 0.266秒 | 0.347秒 |
| 重算用时(中位数) | 0.760秒 | 1.475秒 |
| 速度提升 | 2.8倍 | **4.25倍** |
| 能耗降低 | 8.8倍 | **12.3倍** |
数字背后是什么概念?拿310亿参数模型打比方,原本重算一个1.6万token的文本块要花1.475秒、消耗976焦耳的电,用这套记忆系统恢复同样的内容只要0.347秒、80焦耳。差不多四倍半的时间差,十二倍的电费差。而且最让人意外的是,不管这段内容是5000万token之前存的,还是刚存进去的,取出来的速度几乎没有差别,论文里专门测了"浅层三分之一"和"深层三分之一"的恢复时间,分别是0.193秒和0.274秒,差距并不大。这说明这套系统的检索效率跟"记忆有多老"没关系,不会出现"年头越久越难翻找"的情况。
这一点值得多说两句。传统意义上我们理解的"翻旧账"通常是越老越麻烦,比如你去档案馆找十年前的文件,往往比找上个月的文件费劲得多,因为归档越深、层级越多。但这套系统因为底层是直接按文本块编号存在固态硬盘上,取用的时候是直接定位读取,不存在"翻箱倒柜"的过程,所以深度不影响速度。如果没有这种设计,一个5000万token规模的记忆系统会随着使用时间增长变得越来越慢,那这套系统的实用价值就会大打折扣。
为什么说这是"记忆"而不是"缓存"
缓存*:计算机系统里用来临时存放数据以加速访问的机制,特点是容量有限、可能被清除,一旦缓存没命中就得重新从源头获取数据。
论文花了一整节去辩论一个用词问题:这套系统到底该叫"缓存"还是"记忆"。乍一看像是文字游戏,但背后其实有实质区别。
缓存的本质是"短期、会丢失、丢了就得重新生成"。而这套系统存储的内容是持久化的,硬盘里5000万token对应的3125个数据块,审计下来一个没少,没有任何一块被悄悄清理掉。它还是加密的,每个组织用自己的密钥,内容不会泄露给别人。恢复出来的内容又是逐字节精确的,不是摘要也不是近似。最关键的是,它能让模型"记住"远远超出原生16000 token窗口之外的内容,不需要重新读一遍就能调用。
这四个特性加在一起,作者认为更接近"记忆"而不是"缓存"的概念。这个区分其实也回应了一个更根本的问题:模型的"聪明程度"到底来自哪里。论文里有句话说得挺实在,恢复的精确度是引擎的事,跟模型大小无关,两个模型都是100%零重算恢复;但答案对不对,是模型自己的事,这跟它"读"的能力相关,所以120亿参数模型答对82题,310亿参数模型答对98题,差距完全来自模型本身的理解能力,不是记忆系统造成的。这意味着你可以用一个便宜的小模型去处理大部分请求,遇到难题再切换到更强的大模型,两者共享同一份记忆,都不用重新计算。
局限和没解决的问题
作者自己也坦承了几处边界。
这套系统不是把attention的窗口变宽了,同一时刻依然只有一个文本块是"活跃"在显存里的,更早的内容是按需从硬盘取回来,不是全部塞进显存同时参与计算。这意味着模型并不能像拥有5000万token超长注意力窗口那样"一眼看全部",它更像是有一个随时可以翻阅的笔记本,但翻阅动作本身是有延迟的,只不过这个延迟远比重新计算便宜。
这套系统做的是精确恢复,不是按语义去检索相关内容,也就是说它不负责判断"这个问题应该去查哪块记忆",这部分工作在论文里被称为Blaise,是另一个系统,这次实验里特意没有引入,为了让KV恢复这一件事被单独测准。
硬盘必须是本地固态硬盘,如果换成网络存储,延迟和能耗的数字就不成立了。按论文测算,120亿参数模型5000万token对应1.86TB硬盘空间,310亿参数模型对应6.25TB,这不是一笔小数目,说明这套记忆系统本质上是用磁盘空间换取计算上的节省,这是一笔实实在在的硬件成本交换。
后续的延展方向
这篇论文是作者团队第四篇相关报告中的一篇。第一篇在9.7万token规模上测试了跨三个推理框架的整合记忆层;第二篇提出了一个固定模型配合600万token窗口的"永久记忆"概念;第三篇讲的是一个"验证知识飞轮"机制,这篇论文里提到的"更便宜更聪明"的说法正是从那篇延伸出来的。到这一篇,窗口规模扩大到了5000万token,是第二篇的约8倍,而且首次在真实的vLLM生产级推理框架下完成测试,之前用的是一个独立的实验性工具。
这个演进路径本身挺值得玩味。从9.7万到600万再到5000万,差不多每一代都是数量级的跃升,说明这不是一次性的实验秀,而是一个持续在推进的工程方向。记忆规模越做越大,意味着作者团队在验证一件事:这套"存取代替重算"的思路,是不是真的能无限扩展下去,而不是只在小规模数据上好看。
写在后面
读完这篇论文,最让我意外的其实不是那些速度和能耗的倍数,而是作者对"缓存"和"记忆"这两个词的较真。大部分做系统优化的论文不会花一整节去抠一个用词问题,但这里的坚持其实揭示了一个更深的判断:作者认为他们做的不是一个性能补丁,而是在改变AI系统和历史信息之间的关系,从"每次重新面对"变成"持续积累"。这个判断对不对,可能要看未来几年类似系统有没有真正进入主流的生产部署。
另一个让我反复琢磨的细节,是那个"负例控制组"的设计,专门问模型一个它压根没见过的记录,看它会不会瞎编。两个模型在20次测试里都是0次编造。这个数字放在今天这个AI幻觉问题被反复讨论的大环境下,分量其实不轻,说明至少在"记忆是否存在"这件事上,模型是诚实的,它不会因为找不到答案就硬凑一个出来糊弄你。
如果这套技术真的大规模落地,一个值得继续追问的问题是:当一个AI系统可以不受遗忘限制地积累数十亿token的交互历史,它处理信息的方式,会不会开始越来越像一个有真实经历的人,而不只是一个每次对话都从零开始的工具?
Q&A
Q1:galahad-kv是什么?
A:galahad-kv是Corbenic AI开发的一个记忆层工具包,能把模型计算过的KV注意力状态加密存到本地硬盘,之后需要用到时直接精确恢复,不用重新计算,支持5000万token规模的长期记忆。
Q2:galahad-kv和普通的KV缓存有什么区别?
A:普通缓存是临时的、会被清除、丢失后要重新生成;这套系统是持久化、加密存储、字节级精确恢复,而且能覆盖远超模型原生上下文窗口的历史内容,论文认为这更接近"记忆"而不是"缓存"。
Q3:用galahad-kv恢复数据比重新计算能省多少?
A:实验显示恢复速度比重新计算快2.8到4.3倍,GPU能耗降低8.8到12.3倍,而且不管内容存了多久,恢复速度基本不受影响,显存占用全程保持平稳。







