AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Prompt压缩神器PCToolkit成新宠,简单高效、用起来棒棒哒,一键部署不复杂
发布日期:2024-05-04 16:48:06 浏览次数: 1952


点击上方蓝字关注我


本文:2900字    阅读12分钟 

图片来自DALL.E

随着庞大模型规模和海量数据输入,如何低成本的高效利用LLM也成为了一个新的挑战。我们知道,推理过程是大大增加使用大型语言模型的金钱和时间成本的事情之一。对于较长的输入,这个问题会愈加严重。下面,您可以看到模型性能和推理时间之间的关系。

性能分数与推理吞吐量

每秒生成更多代币的快速模型往往在Open LLM排行榜中得分较低。放大模型大小可以实现更好的性能,但代价是降低推理吞吐量。这使得它们很难在实际应用中部署。


目前业界共识最流行最简单而廉价的方法是:只需要改变模型提示压缩的输入,就能把成本降下来!


幸运的是,这种创新技术已初露峥嵘:Prompt压缩(Prompt Compression)。它旨在压缩输入的语言提示(Prompt),在保留关键信息的同时,大幅降低了LLM的计算负担。这不仅提高了LLM处理效率,更节省了昂贵的API调用费用。因此,越来越多的研究人员将目光投向了Prompt压缩技术的探索与优化。

然而,眼下仍存在一些障碍。不同的压缩算法存在专有的调用方式,开发者需分别掌握它们;评估压缩效果也需要搭配特定的数据集和评测标准;此外,若要针对性地应用压缩技术,往往需要耗费大量精力进行定制和集成...

题目:PCToolkit:一个统一的大语言模型即插即用快速压缩工具包

网址:https://arxiv.org/pdf/2403.17411.pdf

正是看到了这一现状,来自香港大学、新加坡管理大学和华南理工大学的科研小组,创造性地推出了"Prompt Compression Toolkit (PCToolkit)"——一个高效统一、即插即用的Prompt压缩工具箱。


该图清楚地展示了PCToolkit由四个主要模块组成:DatasetsCompressorsMetricsRunner

Datasets模块包含了10个不同的数据集,包括GSM8K、BBC News、Arxiv、ShareGPT、BBH、LongBench、Gigaword、DUC2004、BNC和Google等,覆盖了各种自然语言处理任务场景,为压缩算法提供了丰富的测试数据。


Compressors模块集成了5种最先进的Prompt压缩算法:SCRL、LLMLingua、LongLLMLingua、KiS和Selective Context。这些压缩器通过统一的接口提供服务,参数也可根据需求进行自定义设置。


Metrics模块包含了评估压缩效果的主要指标,如BLEU、ROUGE-1、ROUGE-2、ROUGE-L、BERTScore-P、BERTScore-R、BERTScore-F1和Edit distance等。这些指标可用于量化压缩前后的差异。


Runner模块则扮演着驱动整个运行流程的核心角色。它集成了Compressor、Dataset和Metric三个要素,接收原始文本输入,经压缩算法处理后输出压缩的Prompt,并根据指定的评估指标计算压缩的效果分数,形成最终的评估结果。


上图直观展现了PCToolkit工具箱的模块化设计理念,清晰地说明了数据流转的全过程。通过将压缩算法、数据集和评估指标进行解耦集成,PCToolkit为开发者提供了高度灵活的工作环境,显著提升了Prompt压缩技术的可用性和易用性。无论从压缩器调用、数据集输入还是评估指标设置,该工具箱均提供了统一友好的界面和模块化设计。基于这一优势,开发者可以轻松组合、切换不同的压缩算法、任务数据集和评估标准,大幅降低了开发和迁移成本。


PCToolkit整合了五种前沿的Prompt压缩算法,让我们具体看看它们是如何被集成和工作的。


  1. "选择性上下文(Selective Context)"算法:它通过测量每个token的自信息量,移除冗余内容,从而压缩语言提示。具体来说,自信息量较高的token被保留,而自信息量较低的则被删除。这种方法能有效缩短提示长度,同时最大限度地保留关键信息。


  2. "LLMLingua"算法:它利用了LLM本身就具有"压缩"能力的特点,通过预训练的LLM生成压缩版本的提示。LLMLingua内置了一个控制预算的机制,以维持较高压缩率下的语义完整性。


  3. "LongLLMLingua":它是在LLMLingua的基础上做了改进。LLMLingua在处理较长的语境时,存在"失去中间信息"的困境。为解决这一问题,LongLLMLingua引入了新的技术,较好地克服了这一挑战。


  4. "SCRL"算法:它采用了强化学习的方法,通过计算每个token被保留或删除的概率,进行提示压缩。SCRL能自适应地决定令牌的重要性,从而达到更佳的压缩效果。


  5. "KiS"算法:它本为一种无监督文本简化方法,通过平衡流畅性、显着性和简洁性三个属性,学会对文本进行精简。在PCToolkit中,KiS被成功应用于压缩语言提示。


这五种算法各具特色,PCToolkit统一整合了它们,提供了标准化的调用接口。无论是选择单一压缩器,还是混合使用多种压缩器,开发者只需几行简单的代码调用,就能轻松获得压缩后的语言提示。


同时,PCToolkit还集成了10多个涵盖各类NLP任务的数据集,以及BLEU、ROUGE、准确率等评估指标。这构建了一个完整的评测体系,方便开发者全面考察压缩算法在不同场景下的表现。


这张表详细展示了各压缩算法在重构和摘要任务中的性能表现。结果显示,"选择性上下文"算法在BBC News、ShareGPT等数据集上的BLEU和ROUGE分数较高,证明其在常见文本重构和摘要任务中表现出色。


而在处理数学问题等精确推理任务时,SCRL算法的准确率达到了0.26,显著优于其他算法,更适合这类任务场景。


在长文本处理方面,LongLLMLingua展现了优秀的能力。以BERTScore为例,在Gigaword等长文本数据集上,LongLLMLingua的分数显著高于LLMLingua,有效克服了"失去中间信息"的问题。


不同压缩算法侧重点不同,在特定任务场景下会有不同的发挥。这正体现了PCToolkit的设计理念——让开发者可根据具体需求自由选择和切换压缩组件,以获得最佳效果。


通过对各类数据集的大量测试和评估,PCToolkit为压缩算法的性能比对提供了可靠的实证结果,有助于指导开发者选择最佳压缩策略。


PCToolkit囊括了十多个针对不同语言任务的数据集,包括阅读理解、文本生成、问答、编程等,涵盖了日常生活、科技、新闻等多个领域。这些多样化的任务和场景,为压缩算法的性能评估提供了可靠的测试平台。


那么,究竟哪些压缩算法能最大限度地发挥作用呢?为回答这一问题,研究团队进行了大量实证评估,测试了不同压缩算法在各类数据集上的表现。


实验结果显示,"选择性上下文"算法在许多常见任务中表现出色,特别是在进行文本重构和摘要生成时,能有效控制压缩率并保持较高的评分。而在处理数学问题等精确推理任务时,SCRL算法表现更为优异。在长文本处理方面,LongLLMLingua是最佳选择,能较好克服"失去中间信息"的困境。


不同压缩算法各有侧重,适用于不同的任务场景。这正是PCToolkit的设计初衷所在——让开发者能够根据需求自由选择和切换不同的压缩组件,灵活应对复杂多变的语言任务。

科研人员表示,PCToolkit不仅在当前产生了积极影响,更为未来的Prompt缩技术奠定了坚实基础。他们正在进一步完善工具箱,引入更多最新算法、任务数据集和评估指标,为高效利用LLM带来更多可能性。PCToolkit已在GitHub上开源,让更多人能一睹其庐山真面目,共同推进这一革新性技术的发展。

我已经把项目部署到Docker里,调试起来更方便更快捷。


我写了一个Dockerfile,帮你一键部署到本地Docker环境,篇幅原因来我群里送你这个文件。群里为你准备了开群以来大量的Prompt模板和类似上面这样的代码文件完整示例,等你来一起讨论!另外,如果你有更多关于论文里Prompt的问题也可以到群里来,我会解答你的问题。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询