一种全新且灵活的 Prompt 对齐优化技术

并非所有人都熟知如何与 LLM 进行高效交流。

一种方案是,人向模型对齐。 于是有了 「Prompt工程师」这一岗位,专门撰写适配 LLM 的 Prompt,从而让模型能够更好地生成内容。

而另一种更为有效的方案则是,让模型向人对齐。 这也是大模型研究中非常重要的问题,无论是 GPT 还是 Claude,在对齐技术上花费大量的时间与精力。但,随着模型规模变大,基于训练的对齐技术也需要耗费更大量的资源。

因此,我们提出另外的一种方案,即黑盒提示对齐优化技术(Black-box Prompt Optimization),通过优化用户指令,从输入角度对模型进行对齐。

图片

这种方法可以在不对 LLM 进行训练的情况下,大幅提升与人类偏好的对齐程度。

而且 BPO 可以被替换到各种模型上,包括开源模型和基于API的模型。

下面是我们做的一个简单评估:

图片

在 VicunaEval 上使用 GPT-4 进行自动评估,BPO 能够大幅提升 ChatGPT、Claude 等模型的人类偏好,并助力 llama2-13b 模型大幅超过 llama2-70b 的版本。

_论文:https://arxiv.org/abs/2311.04155
_

代码:https://github.com/thu-coai/BPO

技术交流群

建了技术答疑、交流群!想要进交流群、资料的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

方式①、添加微信号:mlc2060,备注:技术交流
方式②、微信搜索公众号:机器学习社区,后台回复:技术交流

在这里插入图片描述

一、方 法

BPO黑盒优化的目标是让模型更好地理解和满足人类的喜好。我们通过调整输入内容,使模型生成的输出更符合用户的期望。这个过程可以分为三个主要步骤:

图片

**1、反馈数据收集:**为了建模人类偏好,我们首先搜集了一系列带有反馈信号的开源指令微调数据集,并对这些数据经过精心筛选和过滤。

**2、构造提示优化对:**我们使用这些反馈数据来引导大型模型识别出用户偏好的特征。我们首先让模型分析用户喜欢的回复和不喜欢的回复,找出其中蕴含的人类偏好特征。接着,基于这些特征,我们再利用模型优化原始的用户输入,以期得到更符合用户喜好的模型输出。

**3、训练提示优化器:**经过步骤一和步骤二,我们得到了大量隐含人类偏好的提示对。利用这些提示对,我们训练一个相对较小的模型,从而构建提示偏好优化器。

最终,我们可以利用该提示优化器对用户指令进行优化,并应用在广泛的LLM上。

二、效 果

我们基于英文部分开源反馈数据集和 llama2-chat-7b 构建了 BPO 优化模型。

BPO对齐技术对 GPT-3.5-turbo 有22%的提升,对 GPT-4 有 10% 的提升。

图片

BPO 能够助力 llama2-13b 大幅超过 llama2-70b 版本的模型效果,并让 llama2-7b 版本的模型逼近比它大 10 倍的模型。

图片

在 vicuna-7b 和 vicuna-13b 上,使用 BPO 对齐的模型超过了常用的反馈学习方法—— PPO(Proximal Policy Optimization) 和 DPO(Direct Preference Optimization)的效果,并且能够和这些方法相结合进一步提升模型效果。

图片

此外,BPO还可以用于提升SFT数据的质量,帮助构建更高质量的SFT模型。

图片

三、研究者说

问:BPO 和反馈学习方法(PPO、DPO)以及 Prompt Engineering方法(如OPRO)的区别是什么?

答:与PPO和DPO相比,BPO最大的优势在于不需要训练原本的LLM,只需要额外训练一个较小的模型即可,并且我们的实验证明这两种技术是可以相结合的。

图片

与 OPRO 对比,BPO 最大的特点在于更加通用,OPRO 等现有的 Prompt Engineering 技术大多需要针对特定的数据进行搜索,并且会搜索得到一个针对特定任务的提示。因此,如果用户希望使用此类方法,需要针对每种任务准备相应的数据集。而 BPO 在训练得到提示优化器后,可以优化各种用户指令。

问:BPO能否针对一条指令进行迭代优化?

答:我们在 VicunaEval 数据上验证了迭代优化指令的效果,大约在第四轮时,优化后的指令对 ChatGPT 效果最好。

图片

问:BPO 究竟对用户指令做了怎样的优化?

答:我们在论文的第五小节总结了BPO的一些常见优化策略,包括:推理解释、完善用户问题、要点提示以及安全增强。

图片

图片

图片

图片



http://www.niftyadmin.cn/n/5205254.html

相关文章

【并发编程】ThreadLocal详解与原理

📫作者简介:小明Java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…

负载均衡lvs

简介 ipvsadm 是 Linux 内核中的 IP 虚拟服务器(IPVS)管理工具。IPVS是 Linux 内核提供的一种负载均衡解决方案,它允许将入站的网络流量分发到多个后端服务器,以实现负载均衡和高可用性。IPVS通过在内核中维护一个虚拟服务器表&a…

vue2.x中使用JS与路由守卫配置、vue2.x中使用TS与路由守卫的配置和vuex的配置以及TS在vue2.x中的使用说明

vue2.x 事件修饰符 <button click.stop.self"handleDelete(item)"></button>在使用 $confirm 时&#xff0c;使用 await 方式时&#xff0c;需要添加 catch 回调&#xff0c;否则无法获取 $confirm 关闭和取消时的标识值&#xff0c;并且后续代码停止执…

【Python】【Torch】神经网络中各层输出的特征图可视化详解和示例

本文对神经网络各层特征图可视化的过程进行运行示例&#xff0c;方便大家使用&#xff0c;有助于更好的理解深度学习的过程&#xff0c;尤其是每层的结果。 神经网络各层特征图可视化的好处和特点如下&#xff1a; 可视化过程可以了解网络对图像像素的权重分布&#xff0c;可…

Axios简单使用与配置安装-Vue

安装Axios npm i axios main.js 导入 import Axios from axios Vue.prototype.$axios Axios简单发送请求 get getTest() {this.$axios({method: GET,url: https://apis.jxcxin.cn/api/title?urlhttps://apis.jxcxin.cn/}).then(res > {//请求成功回调console.log(res)}…

连接k8s和凌鲨

通过连接k8s和凌鲨&#xff0c;可以让研发过程中的重用操作更加方便。 更新容器镜像调整部署规模查看日志运行命令 架构 所有操作通过k8s proxy连接&#xff0c;通过设置namespace label赋予访问权限。只有赋予特定label的namespace才能被访问。 使用步骤 部署k8s proxy 你…

whip和whep

原文为runner365.git大佬的文章 原文链接&#xff1a;https://blog.csdn.net/sweibd/article/details/124552793 WHIP接口 什么是whip 全称: WebRTC-HTTP ingestion protocol (WHIP). rfc地址: rfc-draft-murillo-whip-00 简单说&#xff0c;就是通过HTTP接口能导入webrtc媒…

目标检测YOLO实战应用案例100讲-基于YOLO的小目标检测改进算法

目录 前言 国内外研究现状 常规尺寸目标检测算法 小目标的检测算法