大模型的上下文窗口再大也有尽头。当对话变长、任务变复杂,模型要么把早期的重要信息忘掉,要么被一堆无关的中间步骤拖慢速度。传统的解决办法是外部挂一套机制:摘要压缩、向量检索、或者把历史记录卸载到外部存储。但 Meta、MIT 和华盛顿大学的研究者最近提出一个反直觉的思路——干脆让模型自己管理自己的上下文,把上下文当成一个可以随意改写的文件。这个名为 Context Language Models(CLM,即上下文语言模型,指能自主编辑自身上下文窗口内容的大模型)的方法,在多个基准测试上同时提升了准确率和计算效率,其中在 BrowseComp-Plus 任务上,用强化学习训练的 Qwen3.5-9B 准确率从 28.8% 涨到 42.5%,相对提升 47.6%,而计算量反而减少了 12%。

为什么这是个难题?

先理解一下大模型处理长任务的痛点。模型每生成一个 token,都要把当前上下文里所有内容重新过一遍注意力机制。上下文越长,计算量越大,而且早期信息容易被后续内容稀释。更麻烦的是,很多真实任务里,上下文里塞满了中间产物——比如 Agent 在浏览网页时抓取的无关段落、调试代码时产生的错误日志、多轮工具调用的返回结果。这些信息大部分没用,但模型没法自己判断该留什么、该扔什么。

现有的应对方案各有硬伤。摘要压缩(把旧对话总结成几句话)会丢失细节,甚至引入错误信息;基于规则的压缩(compaction,即按预设规则裁剪上下文)太死板,不懂任务语义;外部向量检索(把历史记录存到外部数据库,需要时再查回来)则要求 Agent 自己决定什么时候去查、查什么,这个决策本身就很困难。研究者指出,这些方法本质上都是人类预先设计好的策略,而人类设计的策略未必是最优的。

CLM 的核心思路:上下文是一张草稿纸

CLM 的做法是把上下文窗口变成一个模型可以自由读写的文件。模型不再被动地接受固定内容,而是可以在推理过程中主动改写旧消息、删除无关信息、保留关键事实、甚至写内部笔记。比如在一个多步推理任务里,模型算完一步后,可以把中间计算过程删掉,只留下结论;遇到一个失败的实验,可以记一笔"此路不通",避免下次再试。

这个能力不是靠外部脚本实现的,而是模型自身的行为。研究者强调,模型能学会的策略可以超越人类设计的方案——因为人类只能凭直觉设计规则,而模型可以在大量任务上试错,找到更优的上下文管理方式。这有点像让一个员工自己整理办公桌,而不是由行政部统一规定文件怎么归档。

三种训练方式,效果差异明显

研究者探索了三条路径让模型获得这种能力。第一种是零样本(zero-shot,即不经过专门训练,直接让模型按直觉管理上下文),模型没有接受任何上下文管理相关的训练,纯粹靠指令理解去尝试。第二种是上下文内学习(in-context learning,即在提示词里用自然语言描述管理策略,让模型边做边优化),研究者设计了一个迭代的技能优化循环,让模型在任务中不断修正自己的管理策略。第三种是强化学习(reinforcement learning,即用任务成功率作为主要奖励信号、计算效率作为辅助奖励来训练模型),让模型在试错中学会什么该留、什么该扔。

结果很有意思。零样本模式下,CLM 在 BrowseComp-Plus 上准确率提升 11.4%,同时计算量减少 21.5%;在 12 小时的 EdgeBench 任务上,得分提升 5%,计算量减少 59%。上下文内学习在 ContextBench 任务上,准确率最高提升 35.9 个百分点。强化学习的效果最猛——Qwen3.5-9B 在 BrowseComp-Plus 上从 28.8% 跳到 42.5%,计算量还少了 12%。

Ontology‐Driven Observability: Building the E2E Knowledge Graph at Netflix
Ontology‐Driven Observability: Building the E2E Knowledge Graph at Netflix

这些数字说明什么?上下文管理本身不是免费的午餐,但一旦管理得当,省下的计算量远超管理本身的开销。尤其是 59% 的 FLOPs 削减(FLOPs 即浮点运算次数,衡量计算量的单位),意味着在长时任务里,模型把大量精力花在了处理无关信息上。

一个更自然的副产品:可引导的上下文管理

CLM 还有一个很实用的特性:用户可以直接用自然语言告诉模型"你希望怎么管理上下文"。比如你可以说"只保留与最终答案相关的中间结果"或者"把失败的尝试记下来但不要展开细节",模型会照做。这意味着上下文管理策略从"写死在代码里的规则"变成了"可以随时调整的对话指令"。

更进一步,模型还能把学到的管理策略沉淀成一个"技能文档"存在上下文里,下次遇到类似任务时直接复用。这相当于模型自己给自己写操作手册,而且手册会随着经验不断更新。

风险与争议:能改上下文,也能被攻击

研究者也坦承了几个未解决的问题。最直接的风险是:模型可能删掉一个当时觉得没用、但后面需要的关键信息,而且删了就找不回来了。更值得警惕的是安全问题——可编辑的上下文等于给提示注入(prompt injection,即恶意指令混入输入数据中,诱导模型执行非预期操作)开了一扇新门:攻击者可以把恶意指令写进上下文,模型自己改写上下文时,这些指令可能被保留并跨轮次持续生效。

社区的反应也比较谨慎。有评论指出论文里的准确率和计算效率数据都来自特定任务,泛化性存疑;也有人怀疑让模型端到端管理自己的上下文是否靠谱,认为更好的方案还没出现。Reddit 上有人提到一个工程层面的硬伤:模型改写上下文会导致 KV cache(大模型推理时缓存中间计算结果的机制,让回答更快)失效,每次改写都得重新计算,研究者用的缓存技巧也不完美。

能用到哪里?

这个思路最直接的应用场景是长时运行的 Agent 系统——比如自动浏览网页做调研的 Agent、多仓库代码维护机器人、或者需要连续工作数小时的自动化任务。传统做法是给 Agent 外挂一个记忆模块,现在可以让 Agent 自己决定记什么、忘什么。另一个场景是推理成本敏感的生产环境:如果你的任务上下文里充斥着大量中间产物,CLM 的自动清理能力能直接省下可观的算力开销。

不过要落地还得注意几个坑。一是安全审计要跟上,可编辑上下文意味着模型的"记忆"可能被污染,需要额外的检测机制。二是缓存策略要重新设计,因为上下文频繁变动会让 KV cache 失效,反而可能拖慢速度。三是别指望零样本就能用得好——从论文数据看,强化学习版本的效果远好于零样本,这意味着实际部署需要针对你的任务做专门训练。

这个方向最吸引人的地方在于,它把"上下文管理"从工程问题变成了模型能力本身。当模型能自己判断什么值得记住、什么该丢弃时,长上下文任务的天花板可能比我们想象的高得多。

阅读原文 → 返回 AI 技术文档

内容与图片版权归原作者所有 · 原文: https://www.infoq.com/news/2026/10/context-language-models/?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global