Prompt压缩神器PCToolkit成新宠,简单高效、用起来棒棒哒,一键部署不复杂
本文:2900字 阅读12分钟
大模型参数越来越多,输入数据也越来越海量,怎么低成本地用好LLM,成了摆在面前的新问题。推理过程是其中最烧钱又费时的环节之一,输入越长,问题越突出。下面这张图直观展示了模型性能与推理吞吐量之间的权衡关系:每秒生成更多tokens的快速模型,在Open LLM排行榜上往往得分偏低;放大模型尺寸能提升性能,但代价是推理吞吐量直线下降——这就让实际部署变得相当棘手。
性能分数与推理吞吐量
好在,业界目前公认最简单、最廉价的办法是:不需要换模型,只需要改一下输入的提示(Prompt)压缩方式,成本就能大幅降下来!
这项被称为“Prompt压缩”的创新技术已经初露锋芒,它的目标是压缩输入的语言提示,在保留关键信息的同时,大大减轻LLM的计算负担。这不仅提升了处理效率,还省下了昂贵的API调用费。所以越来越多的研究者把目光投向了这个方向,试图探索更优的压缩方案。
不过,现实的坑也不少。不同的压缩算法各有各的调用方式,开发者需要逐个上手学习;评估效果还得搭配特定的数据集和评测标准;真要针对特定场景应用压缩,常常要花大量精力做定制和集成……
题目:PCToolkit:一个统一的大语言模型即插即用快速压缩工具包
网址:https://arxiv.org/pdf/2403.17411.pdf
正是看到这种碎片化的现状,来自香港大学、新加坡管理大学和华南理工大学的科研团队,打造出了“Prompt Compression Toolkit (PCToolkit)”——一个高效统一、即插即用的Prompt压缩工具箱。

上图清楚展示了PCToolkit由四个主要模块组成:Datasets、Compressors、Metrics和Runner。Datasets模块包含10个不同数据集(GSM8K、BBC News、Arxiv、ShareGPT、BBH、LongBench、Gigaword、DUC2004、BNC和Google),覆盖了各种NLP任务场景,为压缩算法提供了丰富的测试数据。Compressors模块集成了5种最先进的Prompt压缩算法:SCRL、LLMLingua、LongLLMLingua、KiS和SelectiveContext,这些压缩器通过统一接口提供服务,参数也可按需自定义。Metrics模块包含了评估压缩效果的主要指标,如BLEU、ROUGE-1/2/L、BERTScore(P/R/F1)和Edit distance等,用于量化压缩前后的差异。Runner模块则扮演着驱动整个运行流程的核心角色——它整合了Compressor、Dataset和Metric三要素,接收原始文本输入,经压缩算法处理后输出压缩后的Prompt,并根据指定指标计算压缩效果分数,形成最终评估结果。
这种模块化设计,让数据流转过程一目了然。通过将压缩算法、数据集和评估指标解耦集成,PCToolkit为开发者提供了高度灵活的工作环境。无论是调用压缩器、输入数据集还是设置评估指标,都通过统一友好的界面完成,大大降低了开发和迁移成本。
PCToolkit整合的五种前沿Prompt压缩算法,各有各的门道,我们来逐一看看它们是怎么工作的:
- 通过测量每个token的自信息量来移除冗余内容——自信息量高的token保留,低的删除。这种方法能有效缩短提示长度,同时最大限度保留关键信息。
选择性上下文(Selective Context)算法:
- 利用LLM本身就有“压缩”能力的特性,用预训练的LLM生成压缩版本的提示。内置了预算控制机制,能在高压缩率下维护语义完整性。
LLMLingua算法:
- 在LLMLingua基础上改进,专门解决长语境处理时“丢失中间信息”的老问题。引入新技术后,这一挑战被较好地克服了。
LongLLMLingua:
- 采用强化学习方法,通过计算每个token被保留或删除的概率来进行压缩。它能自适应地判断token的重要性,达到更佳压缩效果。
SCRL算法:
- 原本是一种无监督文本简化方法,通过平衡流畅性、显著性和简洁性三个属性来精炼文本。在PCToolkit中,它被成功应用于Prompt压缩。
KiS算法:
这五种算法各具特色,PCToolkit把它们统一整合,提供了标准化的调用接口。无论单选一种还是混合使用,开发者只需几行代码就能轻松拿到压缩后的Prompt。同时,工具箱还集成了10多个数据集以及BLEU、ROUGE、准确率等评估指标,构建了一个完整的评测体系。

这张表详细展示了各算法在重构和摘要任务中的表现。结果显示,“选择性上下文”算法在BBC News、ShareGPT等数据集上的BLEU和ROUGE分数较高,说明它在常见文本重构和摘要任务中表现出色。而在处理数学问题等精确推理任务时,SCRL算法的准确率达到了0.26,显著优于其他算法,更适合这类场景。在长文本处理方面,LongLLMLingua展现了优秀能力——以BERTScore为例,在Gigaword等长文本数据集上,它的分数显著高于LLMLingua,有效克服了“丢失中间信息”的问题。
不同压缩算法侧重点不同,在特定任务场景下各有发挥。这正体现了PCToolkit的设计初衷:让开发者根据具体需求自由选择和切换压缩组件,以获得最佳效果。
为了搞清楚哪种压缩算法在什么场景下最管用,研究团队进行了大量实证评估,覆盖了阅读理解、文本生成、问答、编程等十多个领域的数据集。结果显示:“选择性上下文”在文本重构和摘要生成这类常见任务中表现出色,能有效控制压缩率并保持高评分;数学推理这类精确任务则优选SCRL;处理长文本时,LongLLMLingua是不二之选,能扛住“丢失中间信息”的窘境。
不同算法各有侧重,这正是PCToolkit的设计精髓——让开发者能像搭积木一样自由选择和切换压缩组件,灵活应对复杂多变的语言任务。
科研团队表示,PCToolkit不仅在当前产生了积极影响,更为未来的Prompt压缩技术打下了扎实基础。他们正在进一步完善工具箱,引入更多最新算法、任务数据集和评估指标,让高效利用LLM有更多可能性。PCToolkit已在GitHub上开源,感兴趣的话可以直接去看看。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名