Chroma:上下文退化-增加输入 Tokens 长度对 LLM 性能的影响

发布于 2025-9-26 00:05
浏览
0收藏

Chroma发现,即使是最先进的LLM在处理长输入时也会出现性能不一致的"上下文退化"问题。通过测试主流模型发现,随着输入长度增加,模型性能持续下降。长上下文能力不仅是技术指标,更是需要精心设计的系统工程。

1. 现有评估基准的局限性

1.1 大海捞针测试的不足

2. 扩展后的测试方案

3. 测试项目

3.1 针与问题的相似度对性能的影响(Needle-Question Similarity)

3.2 干扰项对性能的影响(Impact of Distractors)

3.3 针与草堆的相似度对性能的影响(Needle-Haystack Similarity)

3.4 草堆的结构对性能的影响(Haystack Structure)

3.5 长记忆评估(LongMemEval)

3.6 重复的词语(Repeated Words)

4. 测试结果(性能退化的普遍性)

5. 结论(上下文工程的重要性)

在人工智能快速发展的今天,大型语言模型(LLM)的上下文窗口长度已经成为衡量模型能力的重要指标。

从早期的几千个token到现在的数百万token,模型处理长上下文的能力正在不断提升。

并且在常用的Needle in a Haystack (NIAH) 测试中,各大模型的表现都非常完美。

2025年7月14日,Chroma公司最新发布了一份技术报告《Context Rot: How Increasing Input Tokens Impacts LLM Performance》,报告发现了一个需要思考的现象:

即使是最先进的LLM,在处理长输入时也会出现性能不一致的问题

这项研究评估了18个主流LLM模型,包括最新的GPT-4.1、Claude 4、Gemini 2.5、Qwen3等,在这些模型中都发现了一个共同的问题,就是上下文退化(Context Rot)。

正如报告中所指出的:"模型并不能均匀使用其上下文,而是随着输入长度增长,性能变得越来越不可靠。"

Chroma 或 ChromaDB 是一个专为大型语言模型应用设计的开源向量数据库。

支持向量、全文、正则表达式及元数据搜索。可在本地开发,并扩展至云端 PB 级存储。采用对象存储支持。提供无服务器搜索与检索功能,确保快速、经济且可靠

2023 年 4 月,该公司成功获得了 1800 万美元的种子轮融资。

1. 现有评估基准的局限性

1.1 大海捞针测试的不足

目前最广泛使用的长上下文评估基准是 "大海捞针"(Needle in a Haystack, NIAH) 测试。

这个测试将一条随机事实("针")放在长上下文窗口("干草堆")的中间,然后询问模型关于这个事实的问题。

然而,NIAH本质上是一个简单的检索任务,

这种测试方法存在明显的局限性:

  • 过于简单:只涉及直接的词汇匹配
  • 缺乏语义理解:不需要复杂的推理能力
  • 脱离实际:不能反映真实应用场景的复杂性

"大海捞针"(Needle in a Haystack, NIAH)的测试方法

2. 扩展后的测试方案

在实际应用中,如智能体任务或摘要,需要对更广泛、通常更模糊的信息进行更多的处理和推理。

仅仅能够在大海中找到一根针是不够的。

真实世界的长上下文任务往往需要:

  • 复杂的语义理解
  • 多层次的推理
  • 处理模糊和矛盾的信息
  • 整合来自不同来源的信息

比如:

问题:哪个角色曾经到过Helsinki?
回答:Yuki住在Kiasma博物馆隔壁。

为了回答这个问题,模型首先需要知道Kiasma博物馆位于Helsinki,并建立这种潜在的联系。这不仅测试了模型非词汇匹配的能力,还测试了它的世界知识。

这种非词汇匹配的针-问题(需要模型推断潜在关联)对模型来说更具挑战性。

模型在处理任务时还需应对干扰项,这些干扰项与主题相关但不能完全回答问题,而无关内容则与针和问题都不相关。当前的模型在不同输入长度下的抗干扰能力尚未得到充分测试。

NIAH任务中草堆内容本身对任务性能的影响也是一个未被充分研究的领域,因为通常草堆只是被视为扩展输入长度的手段,而未考虑其内容对模型的影响。

于是Chroma针对以上几个局限性,做了相应的测试优化,来评估不同情况下对模型的性能影响。

测试涵盖了当前主流的LLM模型:

Anthropic系列:Claude Opus 4、Claude Sonnet 4、Claude Sonnet 3.7/3.5、Claude Haiku 3.5

OpenAI系列:o3、GPT-4.1系列(标准版、mini、nano)、GPT-4o、GPT-4 Turbo、GPT-3.5 Turbo

Google系列:Gemini 2.5 Pro/Flash、Gemini 2.0 Flash

Alibaba系列:Qwen3-235B-A22B、Qwen3-32B、Qwen3-8B

3. 测试项目

3.1 针与问题的相似度对性能的影响(Needle-Question Similarity)

在实际应用中,模型往往需要处理模糊任务,识别相关信息,而无需依赖精确的词汇匹配。

例如,当Agent被赋予一个需要搜索大量语料库的任务时,用户很少会为相关部分指定精确的关键词,相反,模型必须推断相关性。

随着针-问题相似度的降低,模型性能会随着输入长度的增加而更加显著地变差。这更符合现实情况,即精确的问题-答案匹配非常罕见,而语义上的模糊性使得长输入处理变得更加困难。

测试结果

对于相似度较低的针-问题,随着输入长度的增加,性能会更快地下降。

在测试了 11 个不同的位置后,性能没有出现明显的变化。

蓝色:高相似性; 红色:低相似度

3.2 干扰项对性能的影响(Impact of Distractors)

干扰项会损害模型的性能,且影响程度不一。输入长度增加后,模型的抗干扰性是否仍然有效?

测试进行三种测试条件

  • 无干扰(基线):只有
  • 单一干扰项:+ 一个随机放置的干扰项
  • 多个干扰项:和所有四个干扰项随机分布在干草堆中

干扰项的影响 - 三种情况

测试结果

与基准(仅)相比,即使一个干扰项也会降低性能,而添加四个干扰项会进一步加剧这种性能退化。

干扰项的影响:根据干扰项数量划分的性能表现

3.3 针与草堆的相似度对性能的影响(Needle-Haystack Similarity)

针-草堆 的相似性是否会影响任务难度?直观上,如果针与草堆内容混为一体,模型提取的难度可能会增加。

针-草堆相似度实验

测试结果

这个测试,没有得出 “针和草堆越相似,模型表现就越差” 这样的结论。

但是看到模型在处理长上下文时并不稳定:维持任务结构和针与问题的相似度都保持不变,在调整针和草堆之间的语义相似度后,发现结果就会发生变化。

这个测试项目,还需要在以后的长上下文评测里进一步深入研究。

针-草堆相似度测试结果

3.4 草堆的结构对性能的影响(Haystack Structure)

为了评估文档结构的影响,测试两种情况:

  1. 原始内容:保持每个文档的自然流畅性
  2. 句子被随机打乱,在整个文本中重新排序,以保持相同的大致主题,但缺乏逻辑连贯性

草堆(Haystack)结构示例

测试结果

在所有 18 个模型和针-草堆配置中,模型在处理打乱顺序的草堆时,表现通常优于逻辑结构化的草堆。

原始与顺序打乱的草堆(Haystack)在18个模型上的平均性能

3.5 长记忆评估(LongMemEval)

为了将“记忆”功能集成到聊天助手中,一种简单的方法是将完整的聊天历史记录包含在后续聊天的提示中。

这要求模型在一次调用中执行两个任务:检索对话历史记录的相关部分,然后将这些相关内容以有用的方式综合起来。

在理想情况下,模型只需处理相关内容,从而能集中精力进行推理。若加入不相关的上下文,模型不仅需要识别哪些是相关内容,还需同时处理两个任务,这无疑增加了其负担。

通过两种条件进行验证

  1. 输入内容集中,仅包含相关部分,这样模型只需进行简单的推理。
  2. 完整输入,使用了包含无关上下文的全部输入。在这种情况下,模型除了推理外,还需要在长上下文中进行检索。

测试结果

在所有模型中,发现使用相关性的提示,表现明显优于全面的提示。

长记忆评估结果:Claude系列长记忆评估结果 - Qwen 系列

3.6 重复的词语(Repeated Words)

由于这些模型是自回归的,模型的输出也属于其输入;每个Token都是在输入和已经生成的Tokens的条件下生成的,如果输出长度也随输入长度变化,情况会怎样?

使用一个简单的程序,要求模型复制一个由重复单词组成的序列,并在特定位置插入一个独特的单词。提示明确要求模型精确复现输入文本,类似这个提示:

Simply replicate the following text, output the exact same text: apple apple apple apple apples(这个地方不一样) apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple apple

测试结果

即使是这些简单的任务,随着上下文长度的增加(包括输入和输出长度),模型性能也会变得不均匀

Chroma:上下文退化-增加输入 Tokens 长度对 LLM 性能的影响-AI.x社区

4. 测试结果(性能退化的普遍性)

在所有实验中,随着输入长度增加,模型性能都出现了持续下降

  • 针与问题的相似度越低,性能下降速度越快。
  • 不同干扰项带来的影响不一样,有的特别让模型分心,有的影响没那么大。当输入越长、干扰项越多时,模型的性能下降得更明显,而且不同模型在应对这些干扰时的表现方式也不一样
  • 针与草堆的相似度对模型性能没有统一的影响,需要进一步的研究。
  • 草堆的结构可能会影响模型对长文本输入的思考方式。

现实世界的应用通常涉及更大的复杂性,这意味着输入长度的影响在实践中可能更加明显。

5. 结论(上下文工程的重要性)

LLMs 在不同上下文长度下表现是不稳定的,即便在简单任务中也如此。

信息在模型上下文中呈现的位置和方式对任务性能有显著影响,因此,上下文工程是未来优化模型性能的一个重要方向。

即精心构建和管理模型的上下文窗口。

Whether relevant information is present in a model's context is not all that matters; what matters more is how that information is presented.(相关信息是否存在于模型的上下文中并不是最重要的;更重要的是如何呈现这些信息。)

我们忽视了一个基本事实:

长上下文能力不仅仅是技术指标,更是一个需要精心设计和管理的系统工程

原文

​https://research.trychroma.com/context-rot​

本文转载自AI取经路,作者:AI取经路

已于2025-9-26 11:20:46修改
收藏
回复
举报
回复
相关推荐