链载Ai

标题: 微软的prompt压缩方案-LLMLingua,开源 [打印本页]

作者: 链载Ai    时间: 昨天 17:13
标题: 微软的prompt压缩方案-LLMLingua,开源
每个使用大型语言模型的开发人员最终都会面临同样的挑战。
提示信息越来越长,模型运行速度越来越慢,API费用越来越高。 并且还会出现超限的情况,导致程序无法运行。
无论你是构建检索增强生成(RAG) 系统还是构建能够记住过去对话的聊天机器人,每个额外的令牌都会增加成本和延迟。
微软悄悄地推出了一项修复方案,该方案名为LLMLingua,有完整开源。它会在将提示信息发送给模型之前对其进行压缩,仅保留最重要的信息。这样可以加快响应速度,降低成本,并更容易地扩展生命周期管理(LLM)的规模。

01

什么是 LLMLingua



LLMLingua是微软研究院提出的一套提示词压缩(Prompt Compression)技术与开源实现框架,用于提升大型语言模型(LLM)在处理长上下文时的推理速度、降低成本同时保留关键信息。
它的主要目标是:
根据官方论文,LLMLingua 能做到约 20× 的压缩比而性能损失很小。


02

LLMLingua系列技术演进



关于LLMLingua,有三篇论文展示了提示压缩技术的逐步演进:
1.LLMLingua (EMNLP 2023)
首个系统性的提示压缩方法,提出粗到细(coarse-to-fine)的三层压缩框架。
核心方法:
2.LongLLMLingua (ACL 2024)
专门针对长文档场景,解决大模型的"中间遗失"问题(模型容易忽略位于中间位置的信息)。
关键创新:
3.LLMLingua-2 (ACL Findings 2024)
从根本上改变压缩方法,从信息论方法转向机器学习方法。
核心突破:


LLMLingua-2 使用专用的模型,相关的模型已经开源

4. 应用于安全的SecurityLingua
这个技术不仅可以用于提示词压缩,还可用于防止提示词注入的安全任务,见论文
SecurityLingua:通过安全感知提示压缩有效防御LLM越狱攻击(CoLM 2025)https://openreview.net/forum?id=tybbSo6wba
基于该论文,SecurityLingua是LLMLingua技术在LLM安全领域的创新应用,专门用于防御越狱攻击。
SecurityLingua将提示压缩技术巧妙地转化为安全防御工具:

03

使用方法及效果



使用很简单。该库已发布在 PyPI 上,开箱即用。
pipinstallllmlingua

安装完成后,您可以将其导入 Python 以开始压缩提示符。
以下是如何使用 LLMLingua 压缩大型文本提示的方法。
fromllmlinguaimportPromptCompressor#Initializethecompressorllm_lingua=PromptCompressor()#Compressthepromptprompt="Samboughtadozenboxes,eachwith30highlighterpensinside,for$10eachbox..."compressed_prompt=llm_lingua.compress_prompt(prompt,instruction="",question="",target_token=200)print(compressed_prompt)
运行此代码后,您将得到一个类似这样的字典:
{'compressed_prompt':'Question:Samboughtadozenboxeseachwith30highlighterpens...','origin_tokens':2365,'compressed_tokens':211,'ratio':'11.2x','saving':'Saving$0.1inGPT-4.'}
您还可以根据资源情况加载不同的模型。
#Useamorepowerfulcompressionmodelllm_lingua=PromptCompressor("microsoft/phi-2")#OruseaquantizedmodelforGPUswithlimitedmemory#Requires:pipinstalloptimumauto-gptqllm_lingua=PromptCompressor("TheBloke/Llama-2-7b-Chat-GPTQ",model_config={"revision":"main"})
效果可以参考Huggingface上的Demo,例子中的tokens是2428,压缩后变成331,比例还是可以的。

04

小结



Prompt越来越长,带来了很多问题,目前解决的路线也是多种的,有用LLM直接总结的,有直接抛弃一部分的,微软的LLMLingua,是非常好的思路,并且也在持续演进,值得跟踪。

END







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5