论文题目:《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