微信扫码
与创始人交个朋友
我要投稿
大家好,我是HxShine。
今天分享微软公司的一篇文章,Title: LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models。这篇文章介绍了一种名为LLMLingua的粗到细的提示压缩方法,能够在保持语义完整性的同时,将提示prompt压缩20倍,并且基本不损失性能。
主要分为三个步骤来完成prompt的有效压缩,同时确保基本不损失性能。
Title: LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models
URL: https://arxiv.org/abs/2310.05736
CODE: https://github.com/microsoft/LLMLingua
Authors: Huiqiang Jiang, Qianhui Wu, Chin-Yew Lin, Yuqing Yang, Lili Qiu
prompt压缩的一些关键问题:
预算控制器(Budget Controller)是LLMLingua方法中的一个重要组件,用于在压缩提示(prompt)时动态分配不同的压缩比率给原始提示中的不同部分。
背景: Prompt中不同成分对于压缩的敏感程度是不同的,例如System prompt,question prompt的敏感度更高,而demonstrations(示例)敏感度低,可以分配更高的压缩比。
目标: 给Instructions(指令)以及question(用户问题)分配较小的压缩比,保留更重要的指令信息。对于demonstrations(示例)可以分配更高的压缩比,去除其冗余信息。
方法:
设置选定的示例集 D:确定一个初始的示例集 D,这个集合将包含经过压缩后的 Demonstrations。
计算示例的压缩率:
计算每个示例Demonstrations 的困惑度(Perplexity):使用一个小语言模型(如 GPT-2 或 LLaMA)计算原始示例集中每个 Demonstration 的困惑度。
按困惑度对示例Demonstrations 进行排序:将所有 Demonstrations 按照它们的困惑度降序排列,形成一个列表。
迭代选择示例:
初始化一个计数器 α,用于跟踪已选择的示例Demonstrations数量。
对于列表中的每个 Demonstration(从第一个开始):
分配剩余预算:在完成 Demonstrations 部分的压缩后,将剩余的预算分配给指令和问题部分。这可以通过调整 和 的值来实现。
输出结果:输出经过粗粒度压缩的示例集 D,以及为指令和问题部分分配的额外预算 和 。
通过这个过程,预算控制器能够确保在压缩过程中,关键信息得以保留,同时实现对原始提示的有效压缩。这种方法特别适用于处理包含多个 Demonstrations 的提示,可以通过示例级别的控制来满足压缩要求。
背景:
在LLMLingua方法中,利用困惑度(Perplexity)进行提示(prompt)压缩遇到了一个固有的局限性,即独立性假设。这个假设认为提示中的每个令牌(token)都是相互独立的,即一个令牌的出现概率仅取决于它之前的令牌,而与其他令牌无关。然而,在自然语言中,令牌之间往往存在复杂的依赖关系,这种关系对于理解上下文和保持语义完整性至关重要。
在数学上,这个独立性假设可以表示为:
这个假设的局限性在于,它忽略了令牌之间的条件依赖性,这可能导致在压缩过程中丢失关键信息,尤其是在进行高比例压缩时。例如,如果一个令牌在上下文中提供了关键的推理步骤或逻辑连接,那么仅仅基于其困惑度来决定是否保留这个令牌可能会导致推理过程的不完整。
为了解决这个问题,LLMLingua提出了迭代令牌级提示压缩(Iterative Token-level Prompt Compression, ITPC)算法。这个算法通过迭代地处理提示中的每个段(segment),并考虑每个令牌在当前上下文中的条件概率,从而更好地保留了令牌之间的依赖关系。这种方法允许算法在压缩提示时更加精细地评估每个令牌的重要性,而不是仅仅基于其独立的概率。
总结来说,利用困惑度进行提示压缩的固有局限性在于它简化了令牌之间的复杂关系,而LLMLingua通过迭代算法来克服这一局限性,实现了更有效的提示压缩,同时保持了语义的完整性。
方法:
迭代令牌级提示压缩(Iterative Token-level Prompt Compression, ITPC),其旨在通过考虑令牌之间的条件依赖关系来保留提示中的关键信息。以下是ITPC的详细步骤:
设置选定的令牌集 T:初始化一个空的令牌集 T,用于存储压缩后的令牌。
获取分段集合 S:将目标提示 x' 分割成若干个段 S = {s1, s2, ..., sN}。
迭代处理每个段:对于每个段 (从第一个开始):
使用小语言模型 计算该段的所有令牌的条件概率分布,公式:
其中,x' 是原始提示经过prompt压缩后的结果; 是第 i 个段;x'{i-1} 是第 i-1 个令牌;s{i-1} 是第 i-1 个段的最后一个令牌。
根据困惑度分布和相应的压缩比率 动态计算压缩阈值 :
其中,是段 的压缩比率,可以根据段的来源(来自 、 或)来确定,不同的来源设置不同的压缩比例。
将满足条件(PPL > )的令牌添加到令牌集 T 中。
输出压缩后的提示:将令牌集 T 中的所有令牌连接起来,形成最终的压缩提示。
通过这个迭代过程,ITPC算法能够在保持提示语义完整性的同时,有效地压缩提示的长度,从而减少大型语言模型(LLM)的推理成本。
指令调整(Instruction Tuning)是LLMLingua方法中的一个关键步骤,旨在缩小小型语言模型(用于压缩提示)与大型语言模型(LLM)之间的分布差异。以下是指令调整的详细步骤:
初始化小型语言模型:从一个预训练的小型语言模型 开始,例如 GPT-2 或 LLaMA。
使用LLM生成数据:使用目标LLM生成一些数据,这些数据将用于调整小型语言模型的参数。
定义优化目标:设定一个优化目标,使得小型语言模型 生成的指令 和LLM生成的文本 的分布尽可能相似。优化目标可以表示为:
其中, 是小型语言模型的参数, 是第 个训练样本对, 是损失函数, 是样本总数。
执行指令调整:使用上述优化目标对小型语言模型进行微调,以最小化两个模型之间的分布差异。
评估和应用调整:
在调整完成后,评估小型语言模型的性能,确保其能够更准确地模拟目标LLM的分布。
将调整后的小型语言模型用于后续的提示压缩过程。
通过指令调整,LLMLingua方法能够提高压缩提示的质量和LLM推理的效率,尤其是在处理复杂任务时,这种方法有助于保留关键信息并提高推理的准确性。
数据集:
评估指标:
实验方法:
实验设置:
实现细节:
恢复压缩提示:
实验说明:
性能指标:
结论:
这些结果表明LLMLingua方法在对话和摘要任务中都能够有效压缩提示,同时保持了良好的性能,这对于减少大型语言模型(LLM)的推理成本和提高效率具有重要意义。
说明:
性能指标:
结论:
LLMLingua方法在不同的压缩比下都显示出了较好的性能。例如,在GSM8K数据集上,LLMLingua在5倍压缩比下达到了79.08%的EM分数,而在BBH数据集上,在3倍压缩比下达到了70.11%的EM分数。这些结果表明LLMLingua能够在保持较高推理性能的同时实现显著的压缩效果。
相比之下,GPT4 Generation方法在压缩提示时可能会遗漏关键信息,导致性能下降。Selective-Context方法虽然在某些情况下表现良好,但在压缩比增加时性能下降较快。LLMLingua通过预算控制器和迭代令牌级压缩算法,能够在保持语义完整性的同时实现更高的压缩比。
总的来说,LLMLingua方法在数学推理和复杂语言任务中都显示出了其有效性,能够在不牺牲太多性能的情况下实现提示的高效压缩。
说明:
性能指标:
结论:
总结1:LLMLingua展示了在不损失大型语言模型性能的前提下,大幅度压缩模型输入提示的可能性,这为在资源受限情境下使用复杂模型提供了一条有效途径。 本文利用经过Alignment的well-trained的小的语言模型,例如GPT2-small或者LLaMA-7B,来检测和剔除prompt中的不重要token,将其转化为一种人类很难理解但是LLMs能很好理解的形势。并且这种被压缩的prompt可以直接用在black-box LLMs中,实现最高20倍的压缩,且几乎不影响下游任务性能。[2]
总结2:(Iterative Token-level Prompt Compression)对于保持压缩提示的精确匹配分数至关重要。没有这个组件,精确匹配分数会显著下降。
总结3:LLM的确能懂被压缩后人类难以理解的prompt,甚至还能复原原始prompt出来。
[1]: Wei J, Wang X, Schuurmans D, et al. Chain-of-thought prompting elicits reasoning in large language models[J]. Advances in Neural Information Processing Systems, 2022, 35: 24824-24837.
[2]: (Long)LLMLingua: 从压缩Prompt出发, 探究属于 LLMs 的语言,缓解Lost in the middle, 提升Long Context 下的性能:https://zhuanlan.zhihu.com/p/660805821
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-04-12
2024-05-28
2024-05-14
2024-04-25
2024-07-18
2024-04-26
2024-05-06
2024-12-22
2024-12-21
2024-12-21
2024-12-21
2024-12-21
2024-12-20
2024-12-20
2024-12-19