LLMLingua

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

开源 🏷️完全免费 ✅ 目前可打开 基础设施 🍴 复刻 448 🐛 待处理 125 👀 关注 39
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 6796
维护状态 维护中
是否开源 开源
定价模式 🏷️完全免费 支持限时试用 · 开源免费使用,官网提供在线体验

项目预览

LLMLingua 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类基础设施
开发团队microsoft
定价模式🏷️完全免费
价格说明开源免费使用,官网提供在线体验
访问状态✅ 目前可打开
是否开源是
开源协议MIT
主要语言Python
GitHub 星标★ 6796
上线时间2023-07-07 00:00:00
代码更新2026-09-10
仓库体积4.0 MB
本站数据更新2026-11-03
维护状态维护中
收录时间2026-09-16
浏览次数1

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 6796

使用教程

难度:入门 约 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=['\n', '?'])
  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['\n', '?']
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=['\n', '?']。

注意事项

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

核心亮点

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

不足之处

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

适用场景

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

替代项目

LLMLingua-2、AutoCompressor、Gist

上一篇:llama.cpp

下一篇:llm-gateway

同类项目推荐

pegainfer 开源

纯 Rust 直调 CUDA,OpenAI 接口跑大模型

Pure Rust + CUDA LLM inference engine — no PyTorch, OpenAI-compatible, serves Qwen3···

★ 731 2026-09-16
vector-inference 开源

在 Slurm 集群上直接跑 LLM 推理服务

Efficient LLM inference on Slurm clusters.

★ 110 2026-09-24
llmgateway 开源

一个网关搞定所有大模型,统一管理、路由和分析请求。

Route, manage, and analyze your LLM requests across multiple providers with a unifie···

★ 1722 2026-08-09
SiliconScope 开源

免 sudo 看 ANE 和内存带宽,本地大模型跑得快不快一目了然

Sudoless Apple Silicon system monitor (native SwiftUI GUI) with ANE / Media Engine /···

★ 1012 2026-09-16
eLLM 开源

长程推理跑 CPU,比 GPU 还快,省卡省钱

eLLM: Run Long-Horizon Inference Faster on CPUs Than on GPUs

★ 596 2026-09-16
ray_vllm_inference 开源

用 Ray 调度 vLLM,轻松搞定高并发大模型服务

A simple service that integrates vLLM with Ray Serve for fast and scalable LLM servi···

★ 79 2026-08-09
liveblocks 开源

快速为应用和智能体添加实时协作能力,无需自研后端。

Realtime infrastructure for multiplayer apps and agents

★ 4768 2026-08-09
vmlx 开源

Mac 上跑 MLX 模型,一个格式搞定加载与量化

vMLX - Use MLX models easily - JANGQ (GGUF for MLX) - Not dependant on mlx_vlm

★ 906 2026-09-16
tart 开源

在 Apple Silicon 上秒级拉起 macOS/Linux 虚拟机跑 CI

macOS and Linux VMs on Apple Silicon to use in CI and other automations

★ 7759 2026-10-26