如何通过压缩提示降低GPT-4的成本

如果使用得当,LLMLingua可以降低使用高级LLM的成本,并使更广泛的用户和应用程序可以使用LLM。

像GPT-4和Claude这样的大型语言模型(LLM)可以通过良好的提示工程学习新任务。然而,较长的提示会增加使用这些模型的成本,并且还会减慢它们的运行速度。

LLMLingua是微软公司开发的一项新技术,通过消除无关部分来压缩提示。值得注意的是,LLMLingua可以在不影响模型响应质量的情况下将提示的规模压缩高达20倍。如果使用得当,LLMLingua可以降低使用高级LLM的成本,并使更广泛的用户和应用程序可以使用LLM。

提示工程的成本

提示工程是利用LLM进行实际应用的基石。诸如思维链、场景学习以及集成相关文档或历史对话等技术有助于增强特定任务的模型性能。然而,这些方法通常需要更长的提示,有时可能达到数千个令牌。这可能会对使用高级模型的成本产生重大影响,尤其是像GPT-4这样成本高昂的LLM。

虽然有不同的方法来优化模型和降低成本,但一个研究方向是利用自然语言固有的冗余来压缩提示。有些方法通过提示调优来学习专门的令牌,以减少推理期间所需的令牌数量。

然而,这些方法通常是特定于任务的,可能需要对整个模型进行微调,从而限制了它们的使用,并使它们与基于API的模型(例如ChatGPT)不兼容。

其他技术使用LLM来总结对话,以创建浓缩的记忆和知识表示。但是,这些方法通常涉及对LLM的多次成本高昂的调用。

选择性场景是一种令人关注的方法,使用一个规模较小的语言模型来评估文本片段的信息量,丢弃信息较少的内容来压缩提示。微软公司的最新技术建立在这种方法的基础上,并对其进行了改进。

LLMLingua

LLMLingua是一种创新技术,它将提示从粗粒度压缩到细粒度级别。这种方法由几个部分组成。

第一个组成部分是“预算控制器”,它动态地将不同的压缩比分配给原始提示的元素,例如指令、演示和问题。基本原则是指令和问题通常对生成的结果有更直接的影响,因为它们包含了LLM生成答案所需的基本知识。与其相反,当提示包含多个演示时,信息可能是重复的。因此,预算控制器为指令和问题分配更大的预算(意味着更小的压缩比),同时为演示分配更小的预算。

LLMLingua使用较小的语言模型(如GPT-2或LLaMA)来管理这一分配。该模型计算每个演示的困惑度,作为文本与模型响应相关性的衡量标准。然后,LLMLingua优先考虑具有最高困惑值的演示,将其纳入提示中,直到满足演示的令牌预算。剩下的预算用于完善指导和问题。

LLMLingua的第二个组成部分是迭代令牌级提示压缩(ITPC)算法,它允许更细粒度的压缩。迭代令牌级提示压缩(ITPC)首先对提示进行分段,然后使用小模型确定这些分段之间的困惑度分布。接着,该算法构造一个压缩提示,该提示保留具有高困惑度的令牌,通过考虑令牌之间的条件依赖关系来确保保留关键信息。

第三个组成部分涉及基于指令调优的方法,该方法同步大型和小型语言模型的分布模式。这个过程从一个预先训练好的小型语言模型开始,然后使用较大的LLM生成的数据对其进行微调。通过指令调优,小模型的行为与大模型的行为更加一致,增强了整体压缩过程。

测试LLMLingua

在他们的实验中,研究人员使用GPT-3.5 Turbo和Claude 1.3作为主要LLM,并使用Alpaca-7B或GPT2-Alpaca完成压缩任务。他们在各种基准测试中测试了LLMLingua,包括用于推理和场景学习的GSM8k和BBH,以及用于会话场景理解和摘要任务的ShareGPT和Arxiv-March23。

研究人员在发布的一份报告说:“在几乎所有的实验中,我们提出的方法始终以很大的优势优于先前的方法。”

在GSM8K和BBH的推理和场景学习基准测试中,LLMLingua不仅取得了比全景(Full-shot)方法更高的结果,而且获得了5倍和3倍的显著压缩比。

研究人员写道:“这很好地证明了我们的压缩提示有效地保留了原始提示中包含的推理信息。”

对于ShareGPT和Arxiv-March23上的场景理解基准,LLMLingua将提示压缩了9倍和3.3倍。这表明LLMLingua在压缩初始提示时保留了它们的语义完整性。此外,LLMLingua在准确性和压缩程度上都优于其他提示压缩方法。在某些情况下,它在原始提示符上实现了高达20倍的压缩。

尽管涉及多个步骤和两个模型的复杂性,LLMLingua设法实现了从1.7到5.7倍的加速,并且计算开销最小。

研究人员总结说:“我们的方法具有重大的实际意义,因为它不仅降低了计算成本,而且为LLM中适应更长的场景提供了一种潜在的解决方案。”

为了使LLMLingua得到更广泛的采用,微软公司通过一个易于使用的开源库提供了LLMLingua。开发人员可以使用这个库将LLMLingua集成到他们自己的应用程序中。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c++服务器开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值