LLM Token压缩与上下文优化开源方案调研

背景

随着大语言模型(LLM)的广泛应用,提示词长度和API成本成为关键瓶颈。Token压缩技术可在保持语义的前提下减少token数量,实现:

  • 降低API调用成本(最高可节省80-85%)
  • 支持更长上下文处理
  • 减少推理延迟

本文档系统调研 TokenCrush 及同类开源方案,按技术类别分类整理30+个项目。


核心推荐(生产级)

1. LLMLingua 系列 (Microsoft)

仓库: https://github.com/microsoft/LLMLingua
Stars: 5,800+ | License: MIT
论文: EMNLP 2023, ACL 2024

三种变体

变体核心方法压缩率速度最佳场景
LLMLingua基于困惑度的粗到细压缩最高20x中等通用RAG
LongLLMLingua查询感知压缩+文档重排4-9x中等长上下文QA
LLMLingua-2BERT级编码器数据蒸馏3-6x最快任务无关场景

关键特性:

  • 使用GPT-2、LLaMA-7B等小型LM识别非必要token
  • KV-Cache压缩支持
  • LongLLMLingua解决”中间丢失”问题,RAG性能提升21.4%
  • 集成LangChain、LlamaIndex、Azure Prompt Flow
# 基础使用
from llmlingua import PromptCompressor
llm_lingua = PromptCompressor()
compressed = llm_lingua.compress_prompt(prompt, rate=0.33)
 
# LongLLMLingua(长上下文)
compressed = llm_lingua.compress_prompt(
    prompt_list, 
    question=question,
    rate=0.55,
    reorder_context="sort",
    rank_method="longllmlingua",
)
 
# LLMLingua-2(最快)
llm_lingua = PromptCompressor(
    model_name="microsoft/llmlingua-2-bert-base-multilingual-cased-meetingbank",
    use_llmlingua2=True,
)

2. Headroom

仓库: https://github.com/chopratejas/headroom
Stars: 467 | License: Apache-2.0

核心指标: 87.6% 令牌减少,保持答案质量

关键特性:

  • SmartCrusher:JSON工具输出智能压缩
  • CacheAligner:提供商缓存优化
  • CCR(Compress-Cache-Retrieve):可逆压缩
  • 代理层架构,零代码更改集成
  • 支持LangChain、Agno、MCP

最佳场景: 工具密集型生产流水线


3. Selective Context

仓库: https://github.com/liyucheng09/Selective_Context
Stars: 405 | License: MIT
论文: EMNLP 2023

核心机制: 基于自信息(self-information)的词汇单元过滤

效果:

  • 处理 2x 更多内容
  • 节省 40% 内存和GPU时间
  • 支持token/短语/句子三级粒度
from selective_context import SelectiveContext
sc = SelectiveContext(model_type='gpt2', lang='en')
context, reduced = sc(text, reduce_ratio=0.5)

最佳场景: 长文档处理、对话历史维护


上下文与软提示压缩

4. AutoCompressors (Princeton NLP)

仓库: https://github.com/princeton-nlp/AutoCompressors
Stars: 328 | 论文: EMNLP 2023

创新: 将长文本压缩为”摘要向量”(软提示)

压缩率: 6k tokens → 50向量 (132x)

预训练模型:

  • princeton-nlp/AutoCompressor-Llama-2-7b-6k
  • princeton-nlp/AutoCompressor-1.3b-30k (支持30k tokens)

最佳场景: 书籍级长文档、无限上下文递归压缩


5. Gisting (Stanford)

仓库: https://github.com/jayelm/gisting
Stars: 305 | License: Apache-2.0
论文: arXiv:2304.08467

方法: 学习将提示压缩为可复用的”Gist Tokens”

效果:

  • 最高 26x 压缩(FLAN-T5-XXL)
  • 40% FLOPs减少
  • Gist缓存支持重复提示

模型:

  • jayelm/llama-7b-gist-1
  • jayelm/flan-t5-xxl-gist-1

最佳场景: 重复提示模板、指令缓存


6. StreamingLLM (MIT)

仓库: https://github.com/mit-han-lab/streaming-llm
论文: ICLR 2024 | License: Apache-2.0

突破: 支持无限长度输入(已验证4M+ tokens)

加速: 比滑动窗口 22x 更快

机制: Attention Sinks(初始token)+ 最近token滑动窗口

最佳场景: 实时流式生成、长对话、文档流处理


KV缓存压缩

7. H2O (Heavy-Hitter Oracle)

仓库: https://github.com/FMInference/H2O
论文: NeurIPS 2023 | License: Apache-2.0

方法: 保留注意力得分最高的”Heavy-Hitter”token

效果: KV缓存减少 5-20x

最佳场景: 长上下文推理、对话系统


8. NVIDIA KVPress

仓库: https://github.com/NVIDIA/kvpress
Stars: 873 | License: Apache-2.0

包含策略: 20+ 种压缩方法

  • SnapKV、StreamingLLM、PyramidKV
  • H2O、ScissorHands、TOVA
  • KnormPress、ExpectedAttentionPress

特性: 统一API、支持量化缓存、评估工具链

最佳场景: 生产级KV缓存优化


9. Q-Hitter

仓库: https://github.com/VITA-Group/Q-Hitter
论文: MLSys 2024

创新: 稀疏量化KV缓存

优势: 比H2O更好的硬件效率


模型量化与压缩

10. vLLM LLM-Compressor

仓库: https://github.com/vllm-project/llm-compressor
Stars: 3,000+ | License: Apache-2.0

支持算法: GPTQ、AWQ、FP8、W4A16、W8A8

效果: 内存减少 50-75%

最佳场景: 模型部署优化、vLLM推理引擎


专用工具与框架

11. PCToolkit (综合工具包)

仓库: https://github.com/3DAgentWorld/Toolkit-for-Prompt-Compression
Stars: 285 | 论文: IJCAI 2025

包含:

  • 5种压缩方法(LLMLingua、Selective Context、SCRL、KiS等)
  • 11个标准数据集
  • 完整评估指标套件

最佳场景: 学术研究、方法对比Benchmark


12. RECOMP (ICLR 2024)

仓库: https://github.com/carriex/recomp
Stars: 143 | License: MIT

双压缩器:

  • 提取式:选择关键句子
  • 生成式:生成摘要

压缩率: 可降至原文 6%

最佳场景: RAG选择性增强


13. Sentinel

仓库: https://github.com/yzhangchuck/Sentinel
Stars: 10

方法: 0.5B代理模型的注意力探测

压缩: 最高 5x

优势: 无需微调、模型无关、查询相关


14. PartPrompt (IEEE TPAMI 2024)

创新: 句法解析树引导 + 层次结构

方法: 将压缩转化为树剪枝问题

优势: 比token级方法更好的连贯性保持


代码与文档专用

15. CntxtPY

仓库: https://github.com/brandondocusen/CntxtPY
Stars: 112 | License: MIT

功能: Python代码知识图谱构建

特性: 依赖映射、静态分析、AI友好的代码表示


16. fitcode2prompt

仓库: https://github.com/zerocoolailabs/fitcode2prompt

功能: 将整个代码库压缩到单个LLM提示

特性: 细粒度压缩控制


快速选型指南

需求推荐方案理由
生产级RAGLLMLingua-2速度+质量平衡,LangChain/LlamaIndex原生支持
长上下文(>10k)LongLLMLingua解决”中间丢失”问题,查询感知压缩
无限流式生成StreamingLLM支持无限长度,22x加速,生产验证
KV缓存优化KVPress20+策略,NVIDIA官方,统一API
学术研究对比PCToolkit标准化评估,多方法基准测试
Python代码库CntxtPY知识图谱表示,静态分析
重复提示模板GistingGist缓存,26x压缩
书籍级长文档AutoCompressors132x压缩,软提示表示

技术分类对比

类别压缩目标代表项目压缩率
Prompt压缩输入token数LLMLingua、Selective Context2-20x
软提示压缩上下文表示AutoCompressors、Gisting26-132x
KV缓存压缩推理内存H2O、KVPress、StreamingLLM5-20x
模型量化模型大小LLM-Compressor50-75%

安装快速开始

# 首选:LLMLingua-2(生产推荐)
pip install llmlingua
 
# 流式无限上下文
pip install streaming-llm
 
# KV缓存压缩工具包
pip install kvpress
 
# 模型量化
pip install llmcompressor
 
# 上下文压缩
pip install context-compressor-llm
 
# 选择性上下文
pip install selective-context

关键洞察

  1. LLMLingua系列是领域绝对领导者(5,800+ stars),拥有完整的学术背书(EMNLP、ACL)和生产级集成(LangChain、LlamaIndex、Azure)

  2. Prompt压缩KV缓存压缩是两类不同优化目标:

    • Prompt压缩:减少API调用成本
    • KV缓存压缩:减少推理内存占用
  3. 技术趋势:

    • 任务无关压缩(LLMLingua-2)成为主流
    • 查询感知压缩(LongLLMLingua、Sentinel)提升RAG效果
    • 无限上下文(StreamingLLM)突破长度限制
    • 统一工具包(KVPress、PCToolkit)降低使用门槛
  4. 生产就绪度:

    • ✅ 已大规模验证:LLMLingua、StreamingLLM、H2O、KVPress
    • ⚠️ 研究级:AutoCompressors、Gisting、RMT
  5. 所有项目均为MIT或Apache-2.0协议,可安全商用


参考资源


创建时间: 2026-02-06
分类: AI/LLM工具调研
状态: 已沉淀