返回 Ultralytics 术语表
Context Rot
上下文失效是指 LLM 接收的上下文超出其有效处理能力后,可靠性下降,导致遗漏事实或遵循过时指令。本文介绍缓解方法。
上下文退化是指 AI 模型收到超出其有效处理能力的上下文后,可靠性逐渐下降。即使宣传中的上下文窗口在技术上可以容纳数十万个词元,大型语言模型仍可能忽略相关事实、遵循过时指令,或随着输入增长而降低推理准确性。一项 2025 年的 Chroma 上下文退化研究在 18 个模型和多个受控任务中观察到了这种不均匀的性能变化。
上下文腐化如何发生#
较长的输入会对模型的注意力机制提出更高要求。重要证据需要与重复指令、无关文档、工具输出和较早的对话轮次竞争。上下文位置、语义相似度、相互冲突的事实以及任务复杂度都会影响模型使用哪些信息。
2024 年的 RULER 长上下文基准发现,在简单检索任务中表现良好的模型,随着序列长度和任务复杂度增加,性能往往会下降。2025 年的 NoLiMa 基准发现,当答案需要通过语义推理而非匹配相同词语来查找时,性能下降更明显。因此,不存在上下文退化开始时的通用词元数量——Gemini 模型也不例外;这一阈值取决于模型、提示结构和任务。
现实场景示例#
- 客户支持助手:如果聊天机器人获得了数年的工单记录,可能会优先采用过时政策,或漏掉近期的账户更新。使用 LongMemEval 对话记忆和多模态 LoCoMo 基准进行的研究表明,提取、更新和推理长期交互记录仍然很有挑战。
- 视觉检测智能体:如果工厂监控中的视觉语言模型将每一帧图像、每项检测结果和每条维护日志都放进同一个提示中,可靠性就可能下降。更好的工作流是先使用 Ultralytics YOLO26提取简洁的视觉事实,再进行语言模型推理。
- 编码代理:加载整个代码仓库、每个工具定义和完整终端历史,可能会模糊当前目标。Anthropic 的上下文工程指南建议精心筛选上下文,而其 Agent Skills 方法则只在需要时加载详细资源。
此 YOLO predict 工作流展示了如何将原始检测结果转换为紧凑的结构化上下文:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
result = model("https://ultralytics.com/images/bus.jpg")[0]
labels = [model.names[int(cls)] for cls in result.boxes.cls]
context = {"frame": 1, "objects": sorted(set(labels))}
print(context)如何减少上下文腐化#
- 仅检索相关证据:使用语义分块和重排器,而不是发送所有可用文档。
- 压缩较早的信息:将冗长历史替换为经过验证的摘要、决策和未解决任务。研究表明,即使成功检索到信息,输入长度增加仍可能降低性能。
- 保留稳定前缀:OpenAI 提示缓存和 Gemini 上下文缓存可以降低重复处理成本,但单靠缓存并不能提升上下文质量。
- 使用滑动窗口:Google 建议对长时间实时会话进行上下文窗口压缩,保留近期信息,同时移除较早的词元。
- 在真实长度下评估:应用模型监控,并使用开放的上下文腐化工具包复现受控测试。
上下文腐化不同于幻觉(生成缺乏依据的输出)、灾难性遗忘(训练期间模型知识发生变化)和数据漂移(生产输入发生变化)。上下文腐化主要是推理时的上下文选择和推理失效,因此有效的上下文工程是其主要防御手段。










