使用LLMLingua-2压缩GPT-4和Claude提示 原创
缩短发送给大型语言模型(LLM)的提示的长度可以减少推理时间并降低成本。这是提示压缩成为LLM研究的一个热门领域的原因。
清华大学和微软公司的研究人员日前在发布的一篇论文中介绍了LLMLingua-2,这是一种任务不可论的新的提示压缩技术。LLMLingua-2与其他提示压缩方法相比更快、更高效,并且需要更少的计算资源。对于涉及冗长提示和压缩的LLM应用程序来说,它是一个很好的工具,可以节省大量成本,并获得更好的用户体验。
任务感知和任务不可知的提示压缩
思维链(CoT)推理、场景学习和检索增强生成(RAG)等技术使LLM能够处理训练数据中未包含的复杂任务和知识。
然而,冗长提示的好处是以增加计算和财务需求为代价的。在一些LLM中,较长的提示可能会降低模型处理场景信息能力的准确性。
提示压缩通过在保留重要信息的同时缩短原始文本来解决这些问题。提示压缩的基本假设是自然语言包含冗余,这可能对人类理解有用,但对LLM来说不是必要的。
提示压缩可以分为“任务感知”和“任务不可知”两种方法。任务感知压缩根据下游任务或当前查询从提示符中删除令牌。LongLLMLingua是一种流行的方法,它采用问题感知的多步骤方法来估计令牌的信息熵并删除冗余部分。其他方法使用强化学习来训练模型,以压缩来自下游任务的奖励信号的提示。任务感知压缩的缺点是它们对其他任务的推广能力有限。
另一方面,任务不可知的方法在不考虑特定任务的情况下压缩提示,使其更适合于更广泛的应用程序和黑盒LLM。一些任务不可知论包括LLMLingua和选择性场景(Selective Context)。这些方法使用诸如Llama-7B之类的因果小语言模型(SLM)来评估令牌或词汇单位的熵,并删除那些不能添加有意义信息的令牌或词汇单位。
LLMLingua-2是由原始LLMLingua的作者开发的,是一种任务不可知的提示压缩技术。
LLMLingua-2的工作原理
目前的任务不可知的压缩方法有一些局限性,这导致研究人员创建了LLMLingua的后继者。
微软高级研究员、论文合著者Qianhui Wu表示:“信息熵可能是一种次优的压缩指标,因为它与提示压缩目标不一致,并且只利用了单向场景,可能无法捕获提示压缩所需的所有基本信息。”
LLMLingua-2将提示符压缩重新表述为一个分类任务,该任务指定每个令牌是应该保留还是丢弃。它使用这个任务公式来创建一个提示压缩训练数据集。然后,它使用数据集来训练用于压缩任务的轻量级双向Transformer编码器模型。
Wu说,“通过这种方式,它可以从完全双向场景中捕获提示压缩所需的所有基本信息,并保证压缩之后的提示与原始提示的忠实性。”
LLMLingua-2有几个关键的优点:首先,使用双向编码器确保它可以捕获所有必要的信息,以进行快速压缩。其次,由于它使用更小的Transformer模型来学习压缩目标,因此它具有更低的延迟。第三,它的设计是为了忠实于最初的提示,避免产生幻觉。
图1 LLMLingua-2
训练压缩模型
为了生成训练提示压缩模型的数据集,研究人员使用数据蒸馏程序从强LLM中提取知识。他们向GPT-4提供提示,并指示它在保留基本信息和避免幻觉的同时减少令牌。
在获得成对的原始文本及其压缩版本之后,他们为原始文本中的每个令牌分配一个二进制标签,以确定压缩之后应该保留还是丢弃它。研究人员使用MeetingBank数据集创建了训练示例。
然后,他们在数据集上训练了一个稍微修改过的xlm-roberta-large和多语言BERT转换模型,将标记分类为“保留”或“丢弃”。基于BERT的模型的优点是它们学习双向特征,而不是只知道先前令牌的自回归解码器模型。这允许压缩模型学习更丰富的相关性,从而实现更好的压缩。
研究人员写道:“在推理过程中,我们根据分类模型计算出的概率来决定是保留还是丢弃原始提示中的每个令牌。”
开发人员可以在GitHub上找到LLMLingua-2的源代码。
图2 LLMLingua-2数据蒸馏提示
LLMLingua-2在行动
研究人员在MeetingBank数据集以及LongBench、ZeroScrolls、GSM8K和Big Bench Hard等域外数据集上测试了压缩模型。他们使用GPT-3.5-Turbo作为目标模型。但是压缩模型也可以与GPT-4和Claude 3等前沿模型一起使用。他们将LLMLingua-2的压缩、速度和准确性与其他方法以及原始提示符进行了比较。
研究结果表明,尽管LLMLingua-2的体积很小,但它的压缩性能优于其他与任务无关的基准,并且从GPT-3.5-Turbo到Mistral-7B都能很好地推广。
LLM-Lingua-2实现了2~5倍的压缩比,与现有的提示压缩方法相比快了3~6倍。这意味着在需要长时间系统和场景提示的应用程序中使用LLM-Lingua-2可以节省大量成本。LLMLingua-2还可以将延迟降低1.6~2.9倍,并将GPU内存成本降低8倍。
有趣的是,当使用Mistral-7B作为目标LLM时,研究人员发现LLMLingua-2的性能甚至比原始提示更好。研究人员在论文中写道,“我们推测,Mistral-7B可能不像GPT-3.5-Turbo那样擅长处理长时间环境。我们的方法是通过提供更短的提示和更高的信息密度,有效地提高了Mistral-7B的最终推理性能。”
Wu说,“LLMLingua-2是一种任务无关的提示压缩方法,这意味着当处理一个过于冗长的场景时,可以使用LLMLingua-2将其压缩成一个更短的场景,以适应有限的场景窗口,降低财务成本(因为OpenAI通过令牌向用户收费),并减少LLM的推理时间。”
然而,与LongLLMlingua等任务感知压缩方法相比,LLMLingua-2在完成特定任务上存在不足。
研究人员在论文中写道:“我们将这种表现差距归因于(任务感知方法)从问题中获得的额外信息。然而,我们模型的任务不可知特性使其在部署到不同场景时具有良好的可推广性,并成为一种有效的选择。”
原文标题:Compress GPT-4 and Claude prompts with LLMLingua-2,作者:Ben Dickson。
文章链接:https://bdtechtalks.com/2024/04/01/llmlingua-2-prompt-compression/。