项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 6796
使用教程
环境要求
- 已安装 Python 与可用的 pip 环境
- 网络可访问 HuggingFace 以下载压缩模型权重
- 如需使用 GPTQ 量化模型,需额外安装 optimum 与 auto-gptq
- 具备本机(或 GPU)运行轻量语言模型的资源
安装与启动步骤
-
1安装 LLMLingua
使用 pip 直接安装官方包,这是 README 给出的唯一安装方式,装完即可在 Python 中导入使用。
pip install llmlingua -
2安装 GPTQ 附加依赖
只有加载 GPTQ 量化模型(如 TheBloke/Llama-2-7b-Chat-GPTQ)时才需要执行这一步。
pip install optimum auto-gptq -
3加载压缩器实例
从 llmlingua 导入 PromptCompressor,传入模型名与 model_config,未指定模型时使用默认模型。
from llmlingua import PromptCompressor llm_lingua = PromptCompressor("TheBloke/Llama-2-7b-Chat-GPTQ", model_config={"revision": "main"}) -
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调用 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结构化分段压缩
用 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···
vector-inference
开源
在 Slurm 集群上直接跑 LLM 推理服务
Efficient LLM inference on Slurm clusters.
llmgateway
开源
一个网关搞定所有大模型,统一管理、路由和分析请求。
Route, manage, and analyze your LLM requests across multiple providers with a unifie···
免 sudo 看 ANE 和内存带宽,本地大模型跑得快不快一目了然
Sudoless Apple Silicon system monitor (native SwiftUI GUI) with ANE / Media Engine /···
eLLM
开源
长程推理跑 CPU,比 GPU 还快,省卡省钱
eLLM: Run Long-Horizon Inference Faster on CPUs Than on GPUs
ray_vllm_inference
开源
用 Ray 调度 vLLM,轻松搞定高并发大模型服务
A simple service that integrates vLLM with Ray Serve for fast and scalable LLM servi···
liveblocks
开源
快速为应用和智能体添加实时协作能力,无需自研后端。
Realtime infrastructure for multiplayer apps and agents
vmlx
开源
Mac 上跑 MLX 模型,一个格式搞定加载与量化
vMLX - Use MLX models easily - JANGQ (GGUF for MLX) - Not dependant on mlx_vlm
tart
开源
在 Apple Silicon 上秒级拉起 macOS/Linux 虚拟机跑 CI
macOS and Linux VMs on Apple Silicon to use in CI and other automations
