Ch13 RAG修订于 二〇二六年七月六日

上下文压缩 (Context Compression)

概述

上下文压缩(Context Compression)是解决 LLM 上下文窗口限制和推理成本问题的关键技术。当需要处理大量文档、长对话历史或长代码文件时,直接输入全部内容可能超出模型的上下文窗口限制,或导致推理延迟过高、成本过高。上下文压缩通过智能地缩减输入内容,保留最相关信息,在尽量不损害回答质量的前提下减少输入 token 数量。

为什么需要上下文压缩

场景输入长度问题压缩的必要性
多文档 RAG10+ 篇文档,每篇数千字超出上下文窗口或成本过高压缩到关键段落
长对话历史数百轮对话超出上下文窗口保留关键对话节点
代码库理解数十万行代码远超上下文窗口压缩到相关代码片段
Agent 任务多步推理的中间结果累积上下文过长压缩历史步骤
长文档摘要数百页文档超出上下文窗口分段压缩再汇总

上下文压缩的方法分类

1. 基于摘要的压缩 (Summarization-based)

使用模型本身或小模型对内容进行摘要,保留关键信息:

方法原理压缩比信息保真度延迟
Extractive Summarization从中提取关键句3-10x高(原文保留)低
Abstractive Summarization模型生成摘要10-100x中(可能丢失细节)中
Hierarchical Summarization分段摘要 -> 汇总100-1000x中低中
Recursive Summarization递归摘要,适合超长文档1000x+低高

2. 基于检索的压缩 (Retrieval-based)

只保留与当前查询最相关的部分:

方法原理优点缺点
向量相似度过滤计算每个 chunk 与 query 的相似度快速,语义相关可能遗漏上下文
关键词过滤 (BM25)基于关键词匹配精确匹配好无语义理解
混合过滤向量 + 关键词兼顾两者实现复杂
上下文窗口滑动保留最近 N 个 token简单可能丢失重要早期信息

3. 基于提示压缩的压缩 (Prompt Compression)

对 prompt 本身进行压缩,去掉冗余信息:

方法原理代表工作
Token 级剪枝移除不重要的 tokenLLMLingua, Selective Context
句子级剪枝移除不重要的句子LLMLingua-2
信息密度排序按信息密度排序,保留高密度内容LongLLMLingua
实体级压缩保留关键实体及其关系RECOMP

4. 基于缓存的压缩 (Cache-based)

利用 KV Cache 的压缩来减少内存占用:

方法原理代表工作
KV Cache 淘汰丢弃不重要的 token 的 KVH2O, StreamingLLM
KV Cache 合并合并相似 token 的 KVCaM, PyramidKV
跨层共享相邻层共享 KV CacheYOCO, CLA

代表性方法对比

方法类型压缩粒度压缩比信息保真度是否需要训练开源
LLMLinguaToken 剪枝Token 级2-5x高否是
LLMLingua-2Token 剪枝Token 级2-5x高是(小分类器)是
LongLLMLingua句子 + Token句子级 + Token 级5-20x中高否是
Selective Context信息熵剪枝Token 级2-3x中高否是
RECOMP摘要 + 检索文档级5-50x中是(压缩模型)是
AutoCompressor摘要向量段落级10-100x中是是
ICA (In-Context Autoencoder)摘要向量段落级10-100x中是是
gzip / 传统压缩无损压缩字节级2-4x100%(无损)否是

LLMLingua 详解

LLMLingua 是 2023 年由微软提出的轻量级上下文压缩方法,无需训练:

核心思想

  1. 困惑度 (Perplexity):高困惑度的 token 信息量大,保留;低困惑度的 token 冗余,可丢弃
  2. 对比剪枝:计算 token 在”有上下文”和”无上下文”下的困惑度差异,差异大的 token 更重要
  3. 动态压缩比:根据输入长度和预算动态调整压缩比

工作流程

原始 Prompt
    |
    v
[1] 小模型计算每个 token 的困惑度
    |
    v
[2] 按困惑度排序,保留高困惑度 token
    |
    v
[3] 按压缩比截断,维持句子完整性
    |
    v
压缩后的 Prompt -> 送入 LLM

选择指南

场景推荐方法压缩比原因
RAG 多文档合并LongLLMLingua / 句子级剪枝5-10x保留完整语义,去掉冗余段落
长对话历史滑动窗口 + 摘要3-5x保留最近对话 + 早期摘要
代码上下文检索式压缩10-100x只保留相关代码片段
超长文档层次化摘要100-1000x分段摘要再汇总
实时 AgentLLMLingua2-3x低延迟,不改变语义

2026 年趋势

  1. LLM 原生压缩:利用 LLM 自身能力进行上下文压缩,质量更高
  2. 压缩-检索混合:压缩后建立索引,按需检索解压
  3. 自适应压缩:根据查询类型和上下文难度动态选择压缩策略
  4. 多模态上下文压缩:图像、视频、音频的上下文压缩技术
  5. 压缩与 KV Cache 的融合:上下文压缩直接作用于 KV Cache,减少内存和计算

相关笔记

来源

关联6

知识图谱

局部图谱 · 点节点跳转