字段:内容 目标语言:中文(zh)
问题:长上下文撞上内存瓶颈
输入给模型的文本越长,模型处理每条新提示的负担就越重。经典的上下文学习(in-context learning)方法要求模型在每次请求时“重读”整个上下文。这意味着响应时间和 GPU 内存消耗都会随输入文本长度一起增长。实际上,在数万 token 时就能明显感受到这种影响,而在 128K token 时资源消耗极其低效。
更糟的是,普通 Transformer 有一个原生上下文窗口,超出这个范围后质量会急剧下降。即使模型形式上接受长输入,它也会开始“遗忘”文本中间部分的细节。这在类似“大海捞针”(needle-in-a-haystack)的任务中尤为明显——这类任务需要在大量信息中找出一个关键事实。
MoNe 的思路:把上下文放进独立内存
MoNe(模块化神经内存,Modular Neural Memory)方法旨在消除上下文长度与请求成本之间的直接关联。这是一种轻量级模块化神经内存,可以挂接到现成的、已冻结的 Transformer 模型上。无需微调基础模型——只需添加一个外部模块,由它来负责处理上下文。

关键巧妙之处在于内存的具体构造方式。MoNe 不是一次性处理整个输入文本,而是按固定大小的片段来处理。模块内部使用快速权重网络——这些网络直接在测试阶段训练,通过层级的局部梯度更新自身参数。听起来很复杂,但本质上意味着:内存能适应具体文本,而不干扰主模型的权重。
两阶段架构:预处理与查询分离
推理分为两个独立的阶段。第一阶段执行预处理:模型按片段读取上下文,从中生成键和值,并存入外部内存。这一阶段是线性的——成本随文本长度成比例增长,但这是一次性操作。
第二阶段——当查询到来时——内存不再访问原始上下文。相反,它只根据查询的 token 生成键和值。上下文 token 不会被重新读取,因此响应时间完全不依赖原始文本长度。形式上可表示为 预处理 O(N),查询 O(1),其中 N 是上下文长度。
得益于这种分离,GPU 内存的峰值使用不再随 N 增长而上升。这是一个重要优势:即使上下文极长,模型也不会试图同时在内存中保留所有输入 token。
这在实践中意味着什么
作者在 RULER 基准上验证了该方法,该基准包含“大海捞针”和特定词语提取等场景。正是在这些场景中,标准上下文学习在上下文长度增加时明显退化。相比之下,MoNe 表现稳定,并能泛化到远超基础模型原生窗口的长度。
效率尤其值得强调。在处理 128K token 时,与普通 ICL 相比,MoNe 将计算成本和峰值 GPU 内存降低了约 80%。同时,模块的额外参数仅占 6.4%——也就是说,存储模型本身的内存开销极小。

总结
MoNe 是对长上下文问题的一种全新视角。研究者没有选择堆算力或设计复杂的注意力机制,而是提出将上下文处理放到一个独立模块中。它不需要微调 Transformer,只增加少量参数,却能让查询响应时间保持恒定,并防止峰值内存随文本一起增长。
目前这还只是国际研究团队在 arXiv 上发布的预印本。但这一方向看起来很有前景:如果该方法能在更广泛的任务上得到验证,它可能成为一种实用途径,让普通冻结模型在不大改架构的情况下,舒适地处理超长文档。



