免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

别让大模型在“垃圾堆”里找金子:深度解析 RAG 的上下文压缩技术

发布日期:2025-12-22 08:19:03 浏览次数: 1523
作者:彭俊旗的AI工具箱

微信搜一搜,关注“彭俊旗的AI工具箱”

推荐语

RAG系统如何避免信息过载?深度解析上下文压缩技术,让大模型精准聚焦关键信息。

核心内容:
1. RAG系统中信息过载的根源与危害
2. 上下文压缩技术的三层实现境界
3. 实际应用中的优化策略与效果对比

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

在 RAG(检索增强生成)的工程实践中,我们常常陷入一种“囤积癖”式的误区:

为了防止漏掉关键信息,我们恨不得把检索到的 Top 20 文档,连同文件名、页码甚至页眉页脚,一股脑塞进大模型(LLM)的 Prompt 里。毕竟,现在的 GPT-4 Turbo 和 Claude 3 都支持 128k 甚至 200k 的上下文,不用白不用,对吧?

但这恰恰是导致 RAG 系统“慢”、“贵”、“笨”的元凶。

如果你曾发现你的 Agent 在回答简单问题时吞吞吐吐,或者面对长文档时开始胡编乱造,那么你遇到的可能不是模型能力瓶颈,而是“信息信噪比”太低。

今天,我们不谈虚的,深入聊聊 RAG 系统的核心瘦身术——上下文压缩(Context Compression)。看看如何在不牺牲信息精度的前提下,把 Prompt 压缩 80%,让模型重新找回“智商”。


01. 悖论:为什么给的越多,错的越多?

在信息论中,有一个概念叫信噪比(Signal-to-Noise Ratio)

当我们把 10 篇检索到的文档喂给 LLM 时,真正包含答案的可能只有其中两句话(Signal),剩下的 99% 都是铺垫、废话或者不相关的噪音(Noise)。

斯坦福大学关于 "Lost in the Middle"(迷失中间) 的研究揭示了一个残酷的真相:当有效信息被埋藏在大量噪音文本中间时,Transformer 架构的注意力机制(Attention Mechanism)会失效。 模型会倾向于关注开头和结尾,而忽略中间的关键细节。

所以,上下文压缩的本质,不是为了省钱(虽然确实省钱),而是为了“提纯”。 我们要帮模型把沙子筛掉,只留下金子。


02. 深度拆解:从“粗筛”到“精炼”的三层境界

上下文压缩并不是简单地“切掉后半段”。在工业界落地时,它通常被设计成一个多级漏斗系统


第一层境界:基于语义的“过滤器” (The Filter)

这是最基础的防线。
通常我们用向量检索(Vector Search)召回 Top-K 个片段。但向量检索是模糊的,有时候会召回一些“看起来相关但实际无关”的内容。

做法:
在检索后,立即计算 Query 与 Document 的相似度得分。设定一个阈值(比如 0.75),低于这个分数的切片,甚至不需要进入大模型,直接丢弃。

局限性: 这是一把“大砍刀”,只能砍掉整个文档块,无法剔除文档内部的废话。

第二层境界:基于 LLM 的“萃取器” (The Extractor)

这是 LangChain 等框架中 LLMChainExtractor 的核心逻辑,也是目前效果最好的方案之一。

它的思路是:让一个小一点的模型(比如 Haiku 或 Llama-3-8B)先读一遍文档,把与问题无关的句子“抠”掉。

Prompt 思路:

“这里有一段文本和用户的一个问题。请你像一个高亮笔一样,只摘录出文本中能回答问题的句子。如果整段文本都无关,请输出空。”

真实案例中的坑:
我曾在处理法律合同时使用这个方案。原合同中有大量“定义条款”(如:甲方是指...)。
如果不压缩,GPT-4 容易被这些定义绕晕。
使用萃取器后,我们将 2000 Token 的合同原文,压缩成了仅含“违约责任条款”的 150 Token 摘要。
结果: 幻觉率下降了 40%,且回答更加直击要害。

第三层境界:基于信息熵的“蒸馏术” (Token Pruning)

这属于深水区的技术,代表作是微软的 LLMLingua

它的原理非常硬核:计算每个 Token 的“困惑度”(Perplexity)。
对于大模型来说,语言是有冗余的。

“The”, "is", "a", "这个", "的" —— 这些词出现的概率极高,困惑度极低,含金量约为 0。
“2024年Q3”, "净利润", "下降" —— 这些词困惑度高,承载了核心信息。

LLMLingua 算法可以直接在 Token 级别进行剪枝,把那些低困惑度的“废话”删掉。
压缩效果: 它可以把一句话压缩成人类看着像“电报风”的短语,但 LLM 依然能完美理解。

原文: “百度公司在2024年第一季度的财报显示其营收增长了...”
压缩后: “百度 2024 Q1 财报 营收 增长...”

这种方法不需要调用 LLM 进行推理,计算速度极快,且能实现 10倍甚至20倍 的压缩率。


03. 创意架构:构建“漏斗型”处理流水线

在真实的生产环境中,我们不仅要考虑效果,还要考虑延迟(Latency)。如果每个请求都用 GPT-4 去做压缩,那用户得等睡着了。

这里分享一个我目前正在使用的“三级漏斗”架构,既保证了速度,又极致压缩了上下文:

1

Level 1 (毫秒级):重排序 (Rerank)
先检索 Top 50 个文档。使用 BGE-Reranker 等专门的排序模型,只保留前 10 个最相关的。这一步过滤掉明显的噪音。

2

Level 2 (秒级):本地 SLM 压缩
部署一个专门微调过的 小模型 (SLM, 如 Phi-3-mini) 在本地服务器。
让这个小模型执行“萃取”任务,把这 10 个文档中的废话删掉,提取关键句。

为什么要微调? 通用小模型指令遵循能力差,微调后可以让它变成一个专用的“剪刀手”,只删废话,不改原意。
3

Level 3 (最终生成):云端 LLM
将经过 SLM 压缩后的、高密度的“干货”上下文,发送给 GPT-4 或 Claude 3 进行最终的润色和回答。

这套架构的精髓在于:用廉价的算力(本地小模型)去处理海量的噪音,只把最昂贵的算力(云端大模型)留给最有价值的推理。


04. 警惕:压缩的“副作用”

技术没有银弹。在使用上下文压缩时,必须注意一个致命风险:上下文断裂

有时候,单纯抽取句子会丢失逻辑关联。

原文: “虽然项目 A 亏损了,但是...”
压缩后可能变成: “项目 A 亏损了。”(丢失了转折关系)

解决方案:
在 Prompt 中加入“保留逻辑连接词”的强约束,或者采用滑动窗口(Sliding Window)的方式,保留关键句的前后各 50 个字符,确保语境的完整性。


05. 结语

RAG 系统的进化方向,正在从粗放的“大水漫灌”转向精细的“滴灌”。

上下文压缩技术,本质上是对信息的二次结构化。它强迫我们在把信息喂给 AI 之前,先思考一个问题:“到底什么是有效信息?”

当我们将 Prompt 的密度提升到极致,你会发现,AI 并没有因为读得少而变笨,反而因为读得精而变得更加犀利。

Less is More,在 AI 的世界里,依然是真理。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询