一句话定义
Context Compression 是在检索之后、生成之前,把 Top-N 片段压缩成更少 token:抽取关键句、摘要、去重、按相关性截断,只保留回答问题需要的证据。
为什么需要它
检索多了不等于信息多:无关片段会稀释重点、增加成本,还可能触发“中间遗忘”。压缩能减少 token、噪声和延迟,让模型更聚焦。
怎么工作
- 抽取:只保留与问题相关的句子/段落。
- 摘要:把多个片段合成更短的摘要,适合全局问题。
- 去重:合并重复/近重复片段。
- 截断/重排:按相关性排序后保留预算内的内容。
- 预算控制:按模型上下文和成本设定 token 上限。
压缩粒度可以是句子、段落或整个片段;抽取式更忠实,生成式摘要更省但更容易失真。评估要看答案质量、忠实度、压缩率和延迟,做压缩前后的 A/B。压缩后仍要保留引用定位;长上下文模型也不等于不用压缩,噪声和成本仍在。顺序通常是先重排、再压缩。压缩率不是唯一指标,先测再调。
关键取舍
- 压缩减少 token 和噪声,但可能丢细节或引入摘要错误。
- 抽取式压缩更忠实,摘要式更省但更容易失真。
- 压缩本身要花模型调用/算力,低延迟场景要权衡。
- 压缩后仍要保留来源,方便引用和复核。
常见误区
- 压缩越多越好:过度压缩会丢关键证据。
- 摘要等于压缩:摘要可能改写事实,抽取更保守。
- 压缩能替代重排:先排准,再压缩,顺序很重要。
- 压缩后不用评估:要看忠实度和答案质量。
用在哪里
- 长文档/多文档 RAG。
- 上下文窗口有限、成本敏感的服务。
- 检索结果噪声大、重复多的知识库。