LLMLingua

把长提示词压到1/20,推理更快更省钱

LLMLingua 是微软开源的提示词压缩工具,用于解决大模型推理时上下文过长导致的速度慢、成本高问题。它通过一个轻量级语言模型(如 GPT-2 或 LLaMA)对原始提示词进行 token 级压缩,去除冗余信息,保留关键语义,最高可实现 20 倍压缩且性能损失极小。项目同时支持 KV-Cache 压缩,进一步降低显存占用和推理延迟。核心能力包括:粗粒度与细粒度压缩策略、面向长文档和对话场景的优化、与 LangChain 等框架集成。它适用于 RAG、长文本问答、多轮对话等场景,能在不改变下游模型的情况下显著提升吞吐量并降低成本。

开源 free 基础设施
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 6681
维护状态 较活跃
是否开源
定价模式 free

项目数据

分类基础设施
开发团队microsoft
所属国家
定价模式free
价格说明开源免费使用,官网提供在线体验
访问状态
是否开源
开源协议MIT
主要语言Python
技术栈/模型
GitHub 星标★ 6681
30天Star增速
HF 下载量
上线时间2023-07-07 00:00:00
最近更新2026-09-18 00:00:00
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-16
浏览次数0

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • 已安装 Python 与可用的 pip 环境
  • 网络可访问 HuggingFace 以下载压缩模型权重
  • 如需使用 GPTQ 量化模型,需额外安装 optimum 与 auto-gptq
  • 具备本机(或 GPU)运行轻量语言模型的资源

安装与启动步骤

  1. 1安装 LLMLingua

    使用 pip 直接安装官方包,这是 README 给出的唯一安装方式,装完即可在 Python 中导入使用。

    pip install llmlingua
  2. 2安装 GPTQ 附加依赖

    只有加载 GPTQ 量化模型(如 TheBloke/Llama-2-7b-Chat-GPTQ)时才需要执行这一步。

    pip install optimum auto-gptq
  3. 3加载压缩器实例

    从 llmlingua 导入 PromptCompressor,传入模型名与 model_config,未指定模型时使用默认模型。

    from llmlingua import PromptCompressor
    
    llm_lingua = PromptCompressor("TheBloke/Llama-2-7b-Chat-GPTQ", model_config={"revision": "main"})
  4. 4调用 LongLLMLingua

    面向长文档/长上下文场景,需把 rank_method 设为 longllmlingua 并配合额外的长文档参数。

    from llmlingua import PromptCompressor
    
    llm_lingua = PromptCompressor()
    compressed_prompt = llm_lingua.compress_prompt(
        prompt_list,
        question=question,
        rate=0.55,
        condition_in_question="after_condition",
        reorder_context="sort",
        dynamic_context_compression_ratio=0.3,
        condition_compare=True,
        context_budget="+100",
        rank_method="longllmlingua",
    )
  5. 5调用 LLMLingua-2

    使用 XLM-RoBERTa 版压缩模型,需把 use_llmlingua2 置为 True,并可用 force_tokens 指定必须保留的字符。

    from llmlingua import PromptCompressor
    
    llm_lingua = PromptCompressor(
        model_name="microsoft/llmlingua-2-xlm-roberta-large-meetingbank",
        use_llmlingua2=True,
    )
    compressed_prompt = llm_lingua.compress_prompt(prompt, rate=0.33, force_tokens=['
    ', '?'])
  6. 6结构化分段压缩

    用 llmlingua 标签切分文本,可对不同段分别设置 compress 与 rate,再调用 structured_compress_prompt。

    compressed_prompt = llm_lingua.structured_compress_prompt(structured_prompt, instruction="", question="", rate=0.5)
    print(compressed_prompt['compressed_prompt'])

关键配置

配置项必填说明示例
model_name指定压缩所用的语言模型microsoft/llmlingua-2-xlm-roberta-large-meetingbank
use_llmlingua2是否启用 LLMLingua-2 压缩方式True
rate压缩率,越小保留信息越少0.33
force_tokens强制保留不被压缩的 token[' ', '?']
rank_method设为 longllmlingua 启用长上下文模式longllmlingua
context_budget长文档压缩时的上下文预算+100

如何确认成功

执行 compress_prompt 后打印 compressed_prompt,能正常返回压缩后的提示词即表示安装与调用成功。

常见问题

Q:pip 装完如何确认真的可用?

A:在 Python 中导入 PromptCompressor 并调用 compress_prompt,能返回含 compressed_prompt 的结果即正常。

Q:加载 GPTQ 模型报缺依赖怎么办?

A:按 README 提示先执行 pip install optimum auto-gptq,再重新加载模型。

Q:LongLLMLingua 和 LLMLingua-2 怎么选?

A:长文档、多轮对话场景用 rank_method="longllmlingua";想要更快更通用可用 use_llmlingua2=True 的 LLMLingua-2。

Q:压缩后想保留换行或问号怎么办?

A:在 compress_prompt 中通过 force_tokens 传入,例如 force_tokens=[' ', '?']。

注意事项

  • README 只提供 pip 安装与 Python 调用示例,未给出 Docker 或服务端部署方式。
  • 首次运行会从 HuggingFace 下载模型权重,需保证网络通畅与足够磁盘空间。
  • GPTQ 量化模型需要额外的 optimum 与 auto-gptq 依赖,普通模型无需安装。
  • 结构化压缩需按 README 格式使用 标签切分文本段。

核心亮点

  • 最高20倍压缩率,显著降低推理成本和延迟
  • 兼容任意黑盒LLM,无需微调下游模型
  • 提供多种压缩粒度与策略,适配长文档、对话等场景

不足之处

  • 压缩过程需额外运行小型语言模型,带来额外计算开销
  • 对极短提示词或高度依赖精确措辞的任务可能损失关键信息

适用场景

  • RAG检索增强生成中压缩长上下文
  • 多轮对话历史压缩以节省token
  • 长文档问答与摘要场景降低推理成本

替代项目

LLMLingua-2、AutoCompressor、Gist

项目介绍

LLMLingua 是一个基础设施领域的开源项目,官方简介:[EMNLP'23, ACL'24] To speed up LLMs' inference and enhance LLM's perceive of key information, compress the prompt and KV-Cache, which achieves up to 20x compression with minimal performance loss.。项目使用 Python 开发,在 GitHub 上获得 6665 星标。

上一篇:llama.cpp

下一篇:llm-gateway

同类项目推荐

freebuff-proxy 开源

聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。

OpenAI-compatible gateway for FreeBuff coding models. Token pool, session lifecycle,···

★ 202 2026-08-20
microduck 开源

用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。

A Tiny biped duck robot

★ 8433 2026-09-10
soperator 开源

用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。

Run Slurm in Kubernetes

★ 435 2026-08-10
ollama 开源

一条命令本地跑起大模型,免费、私密、不卡顿

Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···

★ 181124 2026-08-09