当前位置: 首页 > news >正文

使用 LLMLingua-2 压缩 GPT-4 和 Claude 提示

原文地址:Compress GPT-4 and Claude prompts with LLMLingua-2

2024 年 4 月 1 日

向大型语言模型(LLM)发送的提示长度越短,推理速度就会越快,成本也会越低。因此,提示压缩已经成为LLM研究的热门领域。

在最新的一篇论文中,清华大学和微软的研究人员介绍了一种新的与任务无关的提示压缩技术——LLMLingua-2。LLMLingua-2比其他提示压缩方法更快、更高效,且需要的计算资源更少。对于涉及冗长提示的LLM应用来说,它可以成为一个很好的工具,压缩可以节省大量成本并改善用户体验。

微信截图_20240403110434

任务相关的和任务无关的提示压缩

诸如思维链(CoT)推理、上下文学习和检索增强生成(RAG)等技术使LLM能够处理复杂的任务和未在训练数据中包含的知识。

然而,冗长提示的好处是以增加计算和财务需求为代价的。在某些LLM中,更长的提示可能会降低模型处理上下文信息的能力的准确性。

提示压缩通过缩短原始文本同时保留必要信息来解决这些问题。提示压缩的基本假设是,自然语言包含冗余,这些冗余对人类理解可能有用,但对LLM来说则不必要。

提示压缩可以分为“任务相关”和“任务无关”两种方法。任务相关的压缩方法会根据下游任务或当前查询来移除提示中的令牌。一种流行的方法是LongLLMLingua,它采用一种问题相关的多步骤方法,估计令牌的信息熵并移除冗余部分。其他方法使用强化学习来训练一个模型,基于下游任务提供的奖励信号来压缩提示。任务相关压缩方法的权衡之处在于它们在其他任务上的泛化能力有限。

另一方面,任务无关的方法在压缩提示时不考虑具体任务,使其更适用于更广泛的应用和黑盒LLM。一些任务无关的方法包括LLMLingua和Selective-Context。这些方法使用因果小型语言模型(SLM),如Llama-7B,来评估令牌或词汇单元的信息熵,并移除那些不增加有意义信息的部分。

LLMLingua-2是由原始LLMLingua的作者开发的,是一种任务无关的提示压缩技术。

LLMLingua-2的工作原理

当前的任务无关压缩方法存在一些局限性,这促使研究人员创建了LLMLingua的继任者。

“信息熵可能是一个次优的压缩指标,因为(一)它与提示压缩目标不一致;(二)它只利用单向上下文,可能无法捕获提示压缩所需的所有必要信息。”微软高级研究员、论文合著者钱慧武(Qianhui Wu)表示。

LLMLingua-2将提示压缩重新定义为分类任务,即确定每个令牌是否应该保留或丢弃。它利用这种任务定义来创建提示压缩训练数据集。然后,它使用数据集来训练一个用于压缩任务的轻量级双向转换器编码器模型。

“通过这种方式,它可以从完整的双向上下文中捕获提示压缩所需的所有必要信息,并保证压缩后的提示与原始提示保持一致。”

LLMLingua-2具有几个关键优势。首先,使用双向编码器可以确保捕获提示压缩所需的所有必要信息。其次,由于它使用较小的转换器模型来学习压缩目标,因此具有显著较低的延迟。第三,它的设计旨在保持对原始提示的忠实度,避免幻觉。

训练压缩模型

为了生成用于训练提示压缩模型的数据集,研究人员使用数据蒸馏程序从强大的LLM中提取知识。他们向GPT-4提供提示,并指示它在保留必要信息并避免幻觉的同时减少令牌。

在获得原始文本及其压缩版本的配对后,他们为每个原始文本中的令牌分配一个二进制标签,以确定在压缩后是否应保留或丢弃它。研究人员使用MeetingBank数据集创建了训练示例。

然后,他们在数据集上训练了xlm-roberta-large和multilingual-BERT转换器模型的略微修改版本,以将令牌分类为“保留”或“丢弃”。基于BERT的模型的优势在于,它们学习双向特征,而不是仅具有先前令牌知识的自回归解码器模型。这允许压缩模型学习更丰富的相关性,从而实现更好的压缩。

“在推理过程中,我们根据分类模型计算的概率来确定是否保留或丢弃原始提示中的每个令牌。”研究人员写道。

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倍。这意味着,当用于需要长系统和上下文提示的应用程序时,它可以节省大量成本。LLMLingua-2还将延迟降低了1.6-2.9倍,并可将GPU内存成本降低8倍。

有趣的是,当使用Mistral-7B作为目标LLM时,研究人员发现LLMLingua-2的性能甚至优于原始提示。“我们推测,Mistral-7B可能在管理长上下文方面不如GPT-3.5-Turbo擅长。我们的方法通过提供具有更高信息密度的较短提示,有效地提高了Mistral-7B的最终推理性能。”研究人员在论文中写道。

“LLMLingua-2是一种与任务无关的提示压缩方法。”吴说。“这意味着,每当您遇到过长的上下文时,都可以使用LLMLingua-2将其压缩为较短的上下文,以适应有限的上下文窗口,减少财务成本(因为OpenAI根据令牌向用户收费),并减少LLM的推理时间。”

然而,与LongLLMlingua等任务感知压缩方法相比,LLMLingua-2在特定任务上表现不佳。

“我们将这种性能差距归因于[任务感知方法]从问题中获取的额外信息。”研究人员写道。“但是,我们的模型的与任务无关特性使其成为一种高效且具有良好泛化能力的选择,可以部署到不同场景中。”

相关文章:

使用 LLMLingua-2 压缩 GPT-4 和 Claude 提示

原文地址:Compress GPT-4 and Claude prompts with LLMLingua-2 2024 年 4 月 1 日 向大型语言模型(LLM)发送的提示长度越短,推理速度就会越快,成本也会越低。因此,提示压缩已经成为LLM研究的热门领域。 …...

编程大牛坚持了 10 年的 10 个编程好习惯

目录 1.多看官方文档 2.面向搜索引擎编程 3.规范命名 4.认真注释 5.不要重复造轮子 6.多读多写代码 7.预留开发时间 8.大胆重构 9.师傅领进门 10.多阅读源码 1.多看官方文档 不要被这几个字吓到,官方文档其实都是宝藏。 一个成熟的技术诞生,…...

QEMU上PAC功能验证与异常解析

PAC功能如何验证?PAC检查失败时发生什么?问题如何定位?本博客主要探讨这些问题。...

简约轻量-失信录系统源码

失信录系统-最新骗子收录查询系统源码 首页查询: 举报收录页: 后台管理页: 失信录系统 V1.0.0 更新内容: 1.用户查询,举报功能 2.界面独立开发 3.拥有后台管理功能 4.xss,sql安全过滤 5.平台用户查询 6.用户中心(待完…...

前端入门系列-HTML-HTML常见标签(注释,标题,段落,换行)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” HTML常见标签 注释标签 注释不会显示在界面上&#xff0c;目的是提高代码的可读性 <!---这是一个注释----> 注释的原则 要和代码逻辑一致尽量使用中文不要传递负能量 …...

【mysql 第3-10条记录怎么查】

mysql 第3-10条记录怎么查 在MySQL中&#xff0c;如果你想要查询第3到第10条记录&#xff0c;你通常会使用LIMIT和OFFSET子句。但是&#xff0c;需要注意的是&#xff0c;LIMIT和OFFSET是基于结果集的行数来工作的&#xff0c;而不是基于记录的物理位置。这意味着它们通常与某种…...

1.Git是用来干嘛的

本文章学习于【GeekHour】一小时Git教程&#xff0c;来自bilibili Git就是一个文件管理系统&#xff0c;这样说吧&#xff0c;当多个人同时在操作一个文件的同时&#xff0c;很容易造成紊乱&#xff0c;git就是保证文件不紊乱产生的 包括集中式管理系统和分布式管理系统 听懂…...

Git安装教程(图文安装)

Git Bash是git(版本管理器)中提供的一个命令行工具&#xff0c;外观类似于Windows系统内置的cmd命令行工具。 可以将Git Bash看作是一个终端模拟器&#xff0c;它提供了类似于Linux和Unix系统下Bash Shell环境的功能。通过Git Bash&#xff0c;用户可以在Windows系统中运行基于…...

SpringData ElasticSearch - 简化开发,完美适配 Spring 生态

目录 一、SpringData ElasticSearch 1.1、环境配置 1.2、创建实体类 1.3、ElasticsearchRestTemplate 的使用 1.3.1、创建索引 设置映射 1.3.2、创建索引映射注意事项&#xff08;必看&#xff09; 1.3.3、简单的增删改查 1.3.4、搜索 1.4、ElasticsearchRepository …...

突破!AI机器人拥有嗅觉!仿生嗅觉芯片研究登上Nature子刊

我们一直梦想着让AI与人类能够更加相似&#xff0c;赋予它们视觉与听觉。而让机器人拥有嗅觉一直以来面临着巨大的困难。 香港科技大学范志勇教授领导的研究团队凭借最新研发的仿生嗅觉芯片&#xff08;BOC&#xff09;在这一领域取得了重大突破。该研究成果目前已被发表到IF …...

前端接口防止重复请求实现方案

前言 前段时间老板心血来潮&#xff0c;要我们前端组对整个的项目都做一下接口防止重复请求的处理&#xff08;似乎是有用户通过一些快速点击薅到了一些优惠券啥的&#xff09;。。。听到这个需求&#xff0c;第一反应就是&#xff0c;防止薅羊毛最保险的方案不还是在服务端加…...

【leetcode面试经典150题】13.除自身以外数组的乘积(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…...

网络编程核心概念解析:IP地址、端口号与网络字节序深度探讨

⭐小白苦学IT的博客主页 ⭐初学者必看&#xff1a;Linux操作系统入门 ⭐代码仓库&#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 本节重点 认识IP地址, 端口号, 网络字节序等网络编程中的基本概念; 1.前言 网络编程&#xff0c;作为现代信息社会中的一项核心技术&…...

突破编程_C++_网络编程(TCPIP 四层模型(网络层(1))

1 网络层概述 TCP/IP 四层模型中的网络层是模型中的核心组成部分&#xff0c;它主要负责处理数据包的路由和转发&#xff0c;确保数据能够在源主机和目标主机之间准确地传输。 一、主要功能 网络层的主要功能是实现数据包的选路和转发。当数据从应用层传输到传输层后&#x…...

Java | Leetcode Java题解之第9题回文数

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isPalindrome(int x) {// 特殊情况&#xff1a;// 如上所述&#xff0c;当 x < 0 时&#xff0c;x 不是回文数。// 同样地&#xff0c;如果数字的最后一位是 0&#xff0c;为了使该数字为回文&#xff0…...

极简云验证 download.php 文件读取漏洞复现

0x01 产品简介 极简云验证是一款开源的网络验证系统&#xff0c;支持多应用卡密生成&#xff1a;卡密生成 单码卡密 次数卡密 会员卡密 积分卡密、卡密管理 卡密长度 卡密封禁 批量生成 批量导出 自定义卡密前缀等&#xff1b;支持多应用多用户管理&#xff1a;应用备注 应用版…...

红黑树路径长度分析:证明与实现

红黑树路径长度分析&#xff1a;证明与实现 一、红黑树的基本性质二、证明&#xff1a;最长路径至多是最短路径的2倍2.1 证明思路2.2 证明过程 三、伪代码实现四、 C语言代码实现5、 结论 红黑树作为一种高效的自平衡二叉搜索树&#xff0c;在计算机科学领域中被广泛应用于各种…...

esp32 gpio初识(一)

目录 功能介绍 实操 功能介绍 引脚又叫管脚&#xff0c;英文叫 Pin, 就是从集成电路&#xff08;芯片以及一些电子元件&#xff09;内部电路引出与外围电路的接线的接口。 在我们的 ESP32 开发板上, 我们可以把这些称为引脚, 这些引脚其实是从 ESP32 芯片内部引出来的, 我们…...

python 自制黄金矿工游戏(设计思路+源码)

1.视频效果演示 python自制黄金矿工&#xff0c;细节拉满沉浸式体验&#xff0c;看了你也会 2.开发准备的工具 python3.8, pygame库(python3.5以上的版本应该都可以) 图片处理工具&#xff0c;美图秀秀 截图工具&#xff0c;电脑自带的 自动抠图网页&#xff1a;https://ko…...

Splunk Attack Range:一款针对Splunk安全的模拟测试环境创建工具

关于Splunk Attack Range Splunk Attack Range是一款针对Splunk安全的模拟测试环境创建工具&#xff0c;该工具完全开源&#xff0c;目前由Splunk威胁研究团队负责维护。 该工具能够帮助广大研究人员构建模拟攻击测试所用的本地或云端环境&#xff0c;并将数据转发至Splunk实例…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...