AI 快讯上下文不再只是提示词
模型上新

上下文不再只是提示词

2026-10-01T22:03:40.095Z
上下文不再只是提示词

最新论文《Context Language Models》提出,语言模型可以把上下文压缩成持续更新的计算状态,并在后续推理中直接使用。这意味着上下文学习可能从“每次重新读提示词”走向“在线形成短期模型”。

上下文不再只是提示词:语言模型开始把阅读内容变成自己的计算状态

一句话判断:Context Language Models 试图改变语言模型处理上下文的方式——上下文不再只是塞进输入窗口的一段文字,而是可以被模型转化、更新并持续使用的内部计算状态。

近日,研究论文《Context Language Models》引发关注。论文讨论的不是又一个参数规模更大的基础模型,也不是单纯把上下文窗口从 128K 扩展到 1M,而是更基础的问题:语言模型能不能在推理过程中真正“学会”当前上下文,并把这种学习结果保留下来?

这个问题看起来像是 In-Context Learning,也就是上下文学习的延伸,但两者并不完全相同。传统上下文学习依赖模型每次通过注意力机制重新阅读 prompt;Context Language Models 则试图让上下文经过专门的计算后,沉淀为一种可持续更新的状态。模型面对后续输入时,不必每次从头扫描全部历史内容,而是读取这份已经处理过的状态。

这不是“模型参数被永久改写”,也不是传统意义上的微调。更准确地说,它介于 prompt、缓存和在线学习之间:上下文可以改变模型在当前任务中的行为,但这种改变通常只存在于当前会话、当前任务或当前推理过程里。

展示传统长上下文模型与 Context Language Model 的信息流对比:左侧为每次重新读取完整上下文,右侧为上下文被压缩成可更新状态后参与后续预测

传统上下文学习,仍然更像“临时翻书”

**In-Context Learning(ICL)是指模型无需更新参数,仅通过输入中的任务说明和示例完成新任务的能力。**GPT-3 时代以来,ICL 已经成为大语言模型最重要的能力之一:给模型几组分类样例,它可以照着样例完成新的分类;给它一段代码和测试用例,它可以推断函数的行为;给它一份公司内部文档,它可以基于文档回答问题。

但从计算机制看,传统 ICL 并不等于模型真的完成了稳定学习。模型通常仍然要把示例、指令、历史对话和当前问题一起放进上下文窗口,然后通过 Transformer 的注意力层计算下一个 token。上下文里的示例会影响激活值和注意力分布,却不会形成一个独立、可复用的任务状态。

可以把它理解为一个人临时翻阅一份很长的操作手册:每回答一个新问题,都要回到手册里重新找相关章节。手册越长,查找和计算的成本越高;如果关键内容埋在上下文中间,模型还可能受到位置偏差、信息干扰和注意力稀释的影响。

这也是长上下文模型的现实矛盾。窗口变长,模型“能看见”的内容更多,但并不意味着它能以同样低的成本稳定使用这些内容。对于一个拥有数十万 token 的代码仓库、连续数月的客服对话或持续运行的智能体来说,重复处理全部历史上下文会带来三个问题:

  • **计算成本重复发生。**同一份文档可能在数百次问答中被反复编码。
  • **延迟随历史增长。**即使系统使用 KV Cache,缓存规模也会持续膨胀,显存和带宽压力随之增加。
  • **上下文不等于记忆。**模型能够看到旧信息,但不一定能把旧信息整理成对当前任务真正有用的规则、变量和关系。

Context Language Models 试图解决的,正是最后一个问题:让模型对上下文进行一次或多次“状态化处理”,之后使用这个状态,而不是把所有原始文本永远留在输入序列里。

Context Language Model 到底是什么

Context Language Model(上下文语言模型)是一类把输入上下文转化为可学习、可更新计算状态,并利用该状态生成后续输出的语言模型。

这里的“状态”不是简单的文本摘要。摘要通常是自然语言压缩,可能丢掉变量绑定、顺序关系、局部规则和不确定性;Context Language Model 所讨论的状态,更接近模型内部对当前上下文建立的一组任务表征。

例如,模型先读入一份 API 文档。传统做法是把文档放进 prompt,之后每次提问都在这份文档上做注意力计算。状态化做法则可能在读取文档时形成以下信息:

  • 文档中的对象、字段和层级关系;
  • 不同接口之间的调用约束;
  • 代码样例体现出的输入输出模式;
  • 当前任务中哪些规则比通用预训练知识更优先;
  • 用户在这次会话中定义的术语和偏好。

这些信息未必以可读文本存在,而是以模型可以直接使用的内部表示存在。之后用户提出新问题时,模型读取的是已经构建好的上下文状态,并根据新输入继续推理。

从架构角度看,这类模型通常需要把“处理上下文”和“生成答案”拆成两个相对独立的过程。前一个过程负责把上下文编码成状态,后一个过程负责基于状态处理查询。状态可以在新信息到来时更新,因此模型不只是一次性压缩历史,也可能像一个在线更新的任务适配器。

需要强调的是,论文讨论的不是让模型在部署时直接修改基础权重。它更像是在模型权重之外增加一块短期、任务级的可计算内存:状态可以影响当前任务,但通常不等于永久知识,也不意味着模型完成了真正的参数微调。

它与长上下文、RAG、微调分别是什么关系

Context Language Models 的价值,不能只用“上下文窗口更长”来衡量。它实际上位于长上下文、RAG 和微调之间,但解决的问题又不同。

| 方法 | 核心机制 | 上下文如何被使用 | 主要优势 | 主要问题 | |---|---|---|---|---| | 长上下文模型 | 扩大可处理的 token 数量 | 每次直接读取较长输入 | 实现简单,原始证据保留完整 | 计算、显存和延迟随上下文增长 | | 传统 ICL | 用示例临时引导模型 | 通过注意力影响当前预测 | 不改权重,适配灵活 | 每次推理都可能重复处理示例 | | RAG | 检索外部资料后生成答案 | 查询时拼接相关文档 | 适合动态知识和事实问答 | 检索质量决定上限,仍有上下文开销 | | 微调 | 更新模型参数 | 将任务规律写入权重 | 适合稳定、重复的专业任务 | 训练成本高,更新和回滚不灵活 | | Context Language Model | 将上下文转为可更新状态 | 查询时读取任务状态 | 可能降低重复计算并保留在线适配 | 状态质量、稳定性和遗忘机制仍待验证 |

RAG 解决的是“把相关信息找出来”,Context Language Model 更关注“读完之后如何形成可持续使用的内部状态”。一个检索系统可以把十段文档送给模型,但如果模型每次都重新处理这十段文档,它仍然承担着重复计算。理想情况下,RAG 负责提供新证据,Context Language Model 负责把证据吸收到任务状态中。

微调则是更长期的改变。微调把知识或行为写入模型参数,适合一个组织长期稳定使用的格式和流程;Context Language Model 更像是任务级的临时学习,适合用户刚刚上传的一组规则、一次性分析任务,或者需要不断变化的工作现场。它的优势是更新快、隔离性强,缺点是状态是否可靠、能否跨轮次保持一致,还要经过大量实验检验。

真正的变化:上下文开始具备“生命周期”

传统系统通常把上下文看成一段输入文本:用户发来消息,系统拼接历史记录,再把整段内容交给模型。Context Language Models 则隐含了一种不同的工程视角:上下文有自己的生命周期。

第一阶段是吸收。模型接收文档、示例、对话或环境观测,并提取其中对任务有用的结构。

第二阶段是形成状态。原始内容被转化为一组内部表示。这一步不一定等价于摘要,更接近建立一个可被后续推理调用的工作模型。

第三阶段是增量更新。新的事实、用户纠正和任务反馈到来后,状态被局部修改,而不是把所有旧内容重新拼接一遍。

第四阶段是状态读取。模型根据当前问题访问状态,完成预测、规划或行动。

第五阶段是失效与重置。当任务结束、信息过期或状态受到污染时,系统需要明确地丢弃、回滚或重建状态。

这套生命周期对智能体尤其重要。一个能持续运行的编程智能体,需要记住项目结构、构建命令、测试失败原因和用户偏好;一个客服智能体,需要记住当前工单的事实、已经确认的结论和待办事项;一个研究助手,需要在数十篇论文之间保持概念映射和证据关系。如果每轮都重新读取全部历史,系统很快会被 token 成本拖住;如果只保留自然语言摘要,又容易丢掉细节和约束。

状态化上下文可能成为两者之间的折中:让模型保留比摘要更丰富的内部信息,同时避免每次重复处理原始材料。

对开发者意味着什么

Context Language Models 最直接的影响,是把上下文管理从提示词工程问题提升为模型架构和运行时问题。

过去,开发者主要关心如何排列 prompt:系统指令放在哪里、示例选几个、检索结果按什么顺序拼接、历史消息保留多少。未来如果状态化模型成熟,开发者还要决定哪些内容应该进入长期任务状态,哪些内容只在当前请求中临时使用,哪些内容必须保留原文作为审计证据。

这会带来一套新的工程指标:

  • **状态构建成本:**处理一万 token 上下文需要多少时间和计算量;
  • **状态读取延迟:**状态形成后,单次查询能否显著快于重新读取原文;
  • **状态压缩率:**在不明显损失任务准确率的情况下,状态能替代多少原始 token;
  • **更新稳定性:**新信息加入后,旧结论是否会被无意覆盖;
  • **状态隔离性:**不同用户、不同任务之间是否会发生信息串扰;
  • **可解释性与可审计性:**模型给出结论时,能否追溯到形成状态的原始证据。

其中,状态压缩率不能单独看。把一百万 token 压成极小状态,听起来很高效,但如果复杂代码依赖、数字条件和例外规则都被丢掉,系统的实际价值反而会下降。真正有意义的指标应该是:在相同准确率和可追溯性要求下,减少了多少重复计算。

这条路线目前还没有解决三个硬问题

第一是状态污染。如果上下文中包含错误指令、过期知识或恶意提示,模型可能把它们吸收到状态中。传统 prompt 注入至少还可以定位到具体文本;一旦信息被混合进内部状态,排查和清理会更困难。

第二是灾难性覆盖。新信息未必应该完全覆盖旧信息。用户说“这次项目先采用临时规则”,模型需要知道这条规则只对当前任务有效,而不是把它写成永久约束。状态更新必须区分新增事实、修正事实、局部例外和全局规则。

第三是评测困难。传统语言模型可以用固定输入输出评测,但状态化模型需要测试状态的构建、读取、更新、重置和跨轮一致性。一个模型可能在首次回答时表现不错,却在连续几十次状态更新后逐渐产生漂移。对于代码代理和长期智能体,这种“慢性错误”比单轮答错更危险。

因此,Context Language Models 不能只用几个长上下文 benchmark 来证明。更有价值的评测应包括持续任务、增量知识、冲突规则、状态回滚、跨会话隔离和证据追踪。只有在这些场景中稳定,状态化上下文才算从论文概念走向可用系统。

它会取代 RAG 和大上下文吗

短期内不会。更现实的方向是三者组合:长上下文负责处理一次性的大量原始材料,RAG 负责在外部知识库中找到新证据,Context Language Model 负责把当前任务真正需要的规律和关系保存在可更新状态里。

对开发者来说,这类似于把系统拆成三层:原始资料是冷存储,检索结果是临时工作集,模型状态是面向当前任务的热缓存。不同内容进入哪一层,不应该由 token 数量决定,而应该由更新频率、可信度、审计要求和任务生命周期决定。

这也是我对这篇论文的核心判断:**它的意义不在于马上提供一个可以替换 GPT、Claude 或 Gemini 的新模型,而在于提出了一个可能影响下一代模型运行时的方向。**过去几年,行业一直在扩展上下文窗口;接下来更关键的问题可能是,模型如何把上下文变成可复用的计算结果。

如果这条路线成立,语言模型的基本交互模式会发生变化。用户不再只是给模型发送一段又一段 prompt,而是在维护一个会持续变化的任务状态。模型也不再只是“读完再回答”,而是能够在任务过程中形成工作记忆、更新假设并保留中间结构。

截至 2026 年 10 月 1 日,Context Language Models 仍应被看作研究方向,而不是已经成熟的产品范式。论文最值得关注的地方,是它把“上下文学习”从一种看起来像魔法的推理现象,推进成了一个可以讨论状态、更新、成本和生命周期的工程问题。至于它能否在真实生产环境中稳定降低延迟、显存和 token 成本,还要看后续模型、数据集和开源实现能否给出可复现的实验证据。

对今天使用大模型的开发者而言,最值得提前思考的不是要不要立刻换模型,而是一个更实际的问题:**你的应用里,哪些内容值得被模型重新阅读,哪些内容应该被学习成一个可持续使用的状态?**这很可能是下一阶段上下文工程的核心分界线。

参考来源

相关推荐

查看全部