LLM之Prompt(二):清华提出Prompt 对齐优化技术BPO

2023-11-22 09:15

本文主要是介绍LLM之Prompt(二):清华提出Prompt 对齐优化技术BPO,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

图片

论文题目:《Black-Box Prompt Optimization: Aligning Large Language Models without Model Training》

论文链接:https://arxiv.org/abs/2311.04155

github地址:https://github.com/thu-coai/BPO

BPO背景介绍

       最近,大型语言模型(LLM)在各种应用中都取得了显著的成功,比如文本生成,文生图大模型等。然而,这些模型往往与人类意图不太一致,这就需要对其进行额外的处理,即对齐问题。为了使LLM更好地遵循用户指令,现有的对齐方法(比如RLHF、RLAIF和DPO)主要侧重于对LLM进行进一步的训练,然而这些对齐方法有如下缺点:

  • 效率:随着LLM越来越大,训练LLM变得更加昂贵和困难,尤其是当使用臭名昭著的不稳定RL算法时;
  • 可访问性:由于大多数性能最好的LLM,如GPT-4和Claude-2,都是封闭源的,只能通过API访问,因此外部团队想继续训练几乎不可能;
  • 可解释性:使用现有方法时,人类偏好的建模和精确提升是无法解释的;

       清华大学提出了一种黑盒提示优化(BPO)来执行对齐,其思想是优化用户Prompt以适应LLM对输入的理解,从而在不更新LLM参数的情况下更好地实现用户的意图理解。

      BPO可以应用在任何LLM模型上,经验结果表明,使用BPO对齐的ChatGPT的胜率比原始版本提高了22%,GPT-4的胜率提高了10%。对于相同的LLM,BPO对齐的LLM性能优于PPO和DPO对齐,而且BPO技术可以与PPO或DPO进行组合使用,可能带来额外的性能增益。

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

图片

BPO方法原理

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

图片

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

2、构造提示优化对:使用这些反馈数据来引导大型模型识别用户喜欢的回复和不喜欢的回复,基于这些特征,再利用模型优化原始的用户输入,以期得到更符合用户喜好的模型输出;

3、训练提示优化器:经过上述两个步骤,得到了大量优化前后的Prompt pair,利用这些Prompt pair训练一个seq2seq模型(作者使用llama2-7b-chat作为bachbone模型),这样后期就可以使用该seq2seq模型进行自动化优化用户的Prompt了

BPO与其他对齐方法的对比

图片

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优化前后Prompt的对比

图片

参考文献:

[1] https://arxiv.org/abs/2311.04155

这篇关于LLM之Prompt(二):清华提出Prompt 对齐优化技术BPO的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/409096

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl