当前位置: 首页 > news >正文

上下文压缩

当上下文过长时,一般是怎么进行压缩的?

当大语言模型(LLM)的上下文过长(超过模型原生上下文窗口,或即使在支持长上下文的模型中也希望降低成本、加速推理、减少KV cache占用)时,目前业界主流的压缩/优化方式可以大致分为以下几类(从最常用到较前沿的排序):

1. 最常见、最广泛使用的几种方式(工程上最成熟)

压缩方式核心思路压缩比(常见)适用场景代表工具/方法优缺点简评
LLM摘要/提炼式压缩(Abstractive)用LLM自己把历史对话/长文档总结成几句话或关键事实3–20×长对话、多轮Agent、文档问答LangChain Summary、LLMLingua的prompt压缩、Roo Code双重压缩效果最好,但需要额外调用一次LLM,成本稍高
提取式压缩(Extractive)从原文中直接挑出最重要的句子/片段保留下来5–15×文档问答、RAGLLMLingua、Selective Context速度快、无幻觉风险,但可能丢失连贯性
基于困惑度/信息熵的硬删减计算每个token/句子对当前任务的“重要性”(困惑度、自信息量),低于阈值就删2–10×几乎所有长上下文场景LLMLingua系列、信息熵剪枝非常快,几乎零额外推理成本,但压缩过度容易丢关键信息
滑动窗口 + 最近优先只保留最近N轮对话 + 少量关键历史摘要固定窗口聊天机器人、客服Agent绝大多数开源Agent框架默认策略实现最简单,但老信息容易永久丢失

2. 中间层/推理时压缩(越来越流行,2025–2026年主流方向)

  • 软压缩(Soft Prompt Compression)
    把长上下文编码成少量“虚拟token”或concept embedding,再喂给主模型。
    代表:CompLLM(分段独立压缩、可缓存)、Gist tokens、AutoCompressor
    优点:推理速度可提升2–4倍,KV cache减半甚至更多
    目前多用于长文档问答(Q&A over book / codebase)

  • KV Cache压缩(不压缩输入prompt,只压缩推理过程中产生的key-value缓存)

    • 量化(FP8 → INT4 / NVFP4)
    • 注意力相似性聚类 / 共享(相似的token共享KV)
    • 重要性驱逐(eviction,根据attention score动态扔掉不重要token的KV)
      代表:KVPress (NVIDIA)、H2O、SnapKV、Infini-attention的压缩记忆部分
      优点:对用户无感知,端到端提速明显,内存占用可减50%以上

3. 其他高级/特定领域方式

  • 代码专用压缩:LongCodeZip(粗粒度函数级 + 细粒度块级,根据指令困惑度排序保留)
  • 视觉/多模态压缩:把长文本渲染成图片再OCR(DeepSeek-OCR、Glyph),或直接用视觉token表示(2025年后很火的一条路线)
  • 记忆外置 + 按需召回(严格来说不算压缩,但效果类似)
    → 把历史压缩成向量存向量库,需要时RAG拉回来(最常见于生产级Agent系统)

实际产品/框架里最常看到的组合策略(2026年视角)

  1. 平时用滑动窗口 + 最近K轮兜底
  2. 当token快满时(比如占窗口90%以上),自动触发LLM摘要压缩LLMLingua式硬压缩
  3. 对于特别长的文档/RAG场景,优先用提取式 + 查询感知摘要(query-aware summary)
  4. 如果部署在GPU上且追求极致性能,再叠加KV cache量化 + 动态驱逐

一句话总结目前工程界的共识:

“能用滑动窗口 + 摘要就先用,能用困惑度硬删就别轻易上LLM摘要,能上软压缩/KV压缩就尽量上,能不让用户感知到压缩最好。”

你现在是在做哪一类场景的长上下文优化?(聊天、RAG、Agent、代码、百万token文档……)可以告诉我更具体的需求,我可以给你更针对性的当前最佳实践。

http://www.jsqmd.com/news/330294/

相关文章:

  • Claude Code 学习路线图
  • 上下文窗口压缩时,尾>头>中间
  • 【系统分析师】6.3 企业信息化规划
  • Python数据分析:Matplotlib 绘图练习
  • app分享页面已经全部做完了
  • 工作量证明机制的奖励机制存在哪些缺点?
  • Flutter for OpenHarmony:进度条与加载指示器 —— 构建流畅、可感知的异步交互体验
  • 学习进度 16
  • 奖励机制与工作量证明(PoW):区块链共识的核心动力与底层逻辑
  • Flutter for OpenHarmony:下拉刷新(RefreshIndicator)—— 构建即时、可信的数据同步体验
  • Flutter for OpenHarmony:图标与 Asset 资源管理 —— 构建高性能、可维护的视觉资源体系
  • 工作量证明机制的奖励机制是如何设计的?
  • Flutter for OpenHarmony:卡片式 UI(Card Widget)设计 —— 构建清晰、优雅的信息容器
  • QDarkStyleSheet: 一个Qt应用的暗色主题解决方案 - 详解
  • 破局互联网产品开发困境:开源AI智能名片链动2+1模式S2B2C商城小程序的实践与启示
  • 社群招募文案的核心构建要点与工具赋能路径——基于AI智能名片链动2+1模式商城小程序的实践研究
  • 2026年市场优质的纹路袋定制厂家口碑推荐,四边封包装袋/包装袋/八边封包装袋/自立袋,纹路袋订制厂家如何选
  • 基于微信小程序的智能停车场管理系统【源码文末联系】
  • 合同模块新增回款记录、工商抬头管理和发票记录功能,Cordys CRM发布v1.5.0版本
  • LabVIEW压装设备:QMH与Machine框架融合之路
  • Flutter for OpenHarmony:构建一个 Flutter 数字华容道(15-Puzzle),深入解析可解性保障、滑动逻辑与状态同步
  • 基于微信小程序的中医食谱推荐系统【源码文末联系】
  • 飞致云开源社区月度动态报告(2026年1月)
  • kali 基础介绍(Impact、Forensics)
  • 电子学会青少年软件编程(C语言)等级考试试卷(四级)2025年12月
  • 开发家用小家电器故障自查助手,输入电器型号及故障现象,匹配常见故障及故障现象,匹配常见故障原因及解决方法,支持图文指引,帮普通人快速排查小故障,不用急着找维修。
  • 花小钱取悦自己,才是最聪明的养生
  • 很多家庭的“爱”,被简化为“物质付出”——家长认为“赚钱养孩子就是爱”,却忽视了陪伴与情感沟通
  • 三星研究院:让机器人大脑瘦身70%却变得更聪明
  • 实时输入整形轨迹规划实现方法介绍