LLMLingua
微软出品:通过提示压缩让大模型推理提速 10-20 倍的开源工具包
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
微软出品:通过提示压缩让大模型推理提速 10-20 倍的开源工具包
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是一家电商公司的客服主管。每天要处理上千条用户对话历史、几十页的产品手册、整本销售培训文档。当你想让 AI 助手帮你总结这些内容时,悲剧发生了:GPT-4 一看你的提示词就报"超出长度限制",即便勉强塞进去,生成结果也经常遗漏关键信息,账单倒是蹭蹭往上涨。
这并非个例。随着 LLM 应用场景向 RAG(检索增强生成)、长文档分析、多轮对话等方向延伸,提示词越来越长、推理成本越来越高、关键信息反而被淹没——这几乎是所有 LLM 开发者的共同噩梦。微软亚洲研究院推出的 LLMLingua 正是为解决这一痛点而生:通过对提示词进行智能压缩,在保持模型性能的前提下,将输入长度缩减 10-20 倍,让长文档处理变得轻而易举。

图1:LLMLingua 框架概览 — 压缩提示词的同时保留核心语义
LLMLingua 最早发表于 EMNLP 2023(自然语言处理顶级会议),由微软亚洲研究院团队提出。其核心思想是利用一个小型可训练的语言模型(如 GPT-2 或 RoBERTa)来识别原始提示中哪些词/句是"冗余"的,哪些是"关键"的,从而实现有选择性的压缩。
项目地址:https://github.com/microsoft/LLMLingua
在 EMNLP 2023 发表后,团队继续深耕,衍生出两个重要升级版本:
目前该项目已被集成进多个主流 AI 开发框架:

图2:LongLLMLingua 在超长上下文场景的压缩效果示意
LLMLingua 的压缩策略并非简单粗暴地截断文本,而是采用了一种条件困惑度(Perplexity)打分机制:
举一个具体例子:假设你要让 GPT-4 分析一份 50 页的产品文档,原始提示包含 8000 tokens。用 LLMLingua 压缩后可能变成 600 tokens(压缩率约 13x),而 GPT-4 在这份压缩后的提示上产生的答案质量,仅比用完整提示低 2-3 个百分点,但 API 调用成本和延迟都大幅下降。
LLMLingua-2 在此基础上引入了数据蒸馏(Data Distillation) 思想,训练了一个专门的序列标注模型来替代 GPT-2 小模型,使压缩速度进一步提升。
项目采用纯 Python 实现,核心模块非常清晰:
| 文件 | 职责 |
|---|---|
prompt_compressor.py | 核心压缩逻辑,PromptCompressor 类,支持 LLMLingua / LongLLMLingua / LLMLingua-2 三种模式 |
utils.py | 工具函数:分词、JSON 处理、模型加载等 |
__init__.py | 包导出接口,对外暴露简洁 API |
version.py | 版本号管理 |
依赖生态:transformers(Hugging Face 模型加载)、torch(张量计算)、tiktoken(OpenAI 分词器兼容)、nltk(自然语言处理工具包)。
安装方式极其简单:
pip install llmlingua
使用同样简洁:
from llmlingua import PromptCompressor
llmlingua = PromptCompressor()
result = llmlingua.compress_prompt(
prompt=[长文本列表],
question="用户的问题是什么?",
compression_ratio=0.2 # 压缩到原来的 20%
)
最值得尝试的场景:
需要谨慎的场景:
pip install llmlingua transformers torch
from llmlingua import PromptCompressor
# 初始化(会自动下载压缩模型)
lingua = PromptCompressor(
model_name="microsoft/llmlingua-2-xlm-roberta-large-meetingbank",
use_llmlingua2=True # 使用最新最快的压缩模型
)
context = [
"【会议记录】会议主题:Q3 产品规划",
"与会人员:张总、李经理、王工程师...",
# ... 更多段落
]
result = lingua.compress_prompt(
prompt=context,
question="Q3 产品规划的核心目标是什么?",
compression_ratio=0.25
)
LLMLingua 的出现标志着 LLM 应用优化的一个重要分支——提示层优化(Prompt-level Optimization) 的成熟。相比于模型量化、批处理等底层优化,提示压缩的优势在于:
从 GitHub 6200+ stars 和持续发表顶会论文的轨迹来看,LLMLingua 已经从一项学术研究演化为被工业界广泛采纳的基础设施级工具。

图3:LLMLingua 项目 Logo
分析基于 GitHub 仓库最新代码及论文(EMNLP 2023 / ACL 2024)。