🚀 黑盒提示優化(BPO):無需模型訓練即可對齊大語言模型
黑盒提示優化(BPO)是一種黑盒對齊技術,與基於訓練的方法(如PPO或DPO)不同。BPO僅需訓練一個即插即用的模型,並通過優化用戶輸入來優化大語言模型。因此,它可以用於各種開源或基於API的大語言模型。
🚀 快速開始
- 代碼倉庫:https://github.com/thu-coai/BPO
- 論文鏈接:https://arxiv.org/abs/2311.04155
- 數據鏈接:https://huggingface.co/datasets/THUDM/BPO
✨ 主要特性
BPO作為一種黑盒對齊技術,區別於傳統基於訓練的方法,具有以下顯著特性:
- 靈活性高:僅需訓練一個即插即用的模型,就能適配各種開源或基於API的大語言模型。
- 優化方式獨特:通過優化用戶輸入來實現對大語言模型的優化,而非直接對模型進行訓練。
📚 詳細文檔
模型詳情
屬性 |
詳情 |
數據 |
提示優化模型由隱含人類偏好特徵的提示優化對訓練得到,數據集的詳細信息可查看此處。 |
骨幹模型 |
提示偏好優化器基於Llama - 2 - 7b - chat - hf 構建。 |
語言 |
英文 |
性能表現
模型A |
模型B |
A獲勝 |
平局 |
B獲勝 |
gpt - 3.5 - turbo + BPO |
gpt - 3.5 - turbo |
60.0 |
8.7 |
31.3 |
claude - 2 + BPO |
claude - 2 |
57.5 |
5.0 |
37.5 |
llama - 2 - 13b - chat + BPO |
llama - 2 - 70b - chat |
61.3 |
0.0 |
38.7 |
vicuna - 13b + BPO |
vicuna - 13b + PPO |
52.5 |
3.7 |
43.7 |
vicuna - 13b + BPO |
vicuna - 13b + DPO |
53.8 |
2.5 |
43.7 |
vicuna - 13b + DPO + BPO |
vicuna - 13b + DPO |
60.0 |
2.5 |
37.5 |
預期用途
提示模板
我們採用的提示模板如下:
[INST] 你是一位專業的提示工程師。請幫我優化這個提示,以獲得更有幫助且無害的回覆:
{用戶提示} [/INST]
使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = 'Your-Model-Path'
prompt_template = "[INST] You are an expert prompt engineer. Please help me improve this prompt to get a more helpful and harmless response:\n{} [/INST]"
model = AutoModelForCausalLM.from_pretrained(model_path).cuda()
tokenizer = AutoTokenizer.from_pretrained(model_path)
text = 'Tell me about Harry Potter'
prompt = prompt_template.format(text)
model_inputs = tokenizer(prompt, return_tensors="pt").to("cuda:0")
output = model.generate(**model_inputs, max_new_tokens=1024, do_sample=True, top_p=0.9, temperature=0.6, num_beams=1)
resp = tokenizer.decode(output[0], skip_special_tokens=True).split('[/INST]')[1].strip()
print(resp)
更多詳細用法(如更激進的優化)請查看我們的GitHub倉庫。
其他已知侷限性
⚠️ 重要提示
- 任務覆蓋度不足,因為我們僅使用開源數據獲得了約14k個優化提示。顯然,不可能覆蓋廣泛的用戶查詢,因此當前模型可能並非在每個提示上都表現良好。
- 由於基於長上下文的任務和數學問題的比例較小,提示優化器在處理這些任務時表現不佳。
引用
如果您發現我們的模型在您的工作中很有用,請使用以下方式引用:
@article{cheng2023black,
title={Black-Box Prompt Optimization: Aligning Large Language Models without Model Training},
author={Cheng, Jiale and Liu, Xiao and Zheng, Kehan and Ke, Pei and Wang, Hongning and Dong, Yuxiao and Tang, Jie and Huang, Minlie},
journal={arXiv preprint arXiv:2311.04155},
year={2023}
}