近段時間,ChatGPT 橫空出世并獲得巨大成功,使得 RLHF、SFT、IFT、CoT 等這些晦澀的縮寫開始出現(xiàn)在普羅大眾的討論中。這些晦澀的首字母縮略詞究竟是什么意思?為什么它們?nèi)绱酥匾课覀冋{(diào)查了相關(guān)的所有重要論文,以對這些工作進(jìn)行分類,總結(jié)迄今為止的工作,并對后續(xù)工作進(jìn)行展望。
我們先來看看基于語言模型的會話代理的全景。ChatGPT 并非首創(chuàng),事實(shí)上很多組織在 OpenAI 之前就發(fā)布了自己的語言模型對話代理 (dialog agents),包括 Meta 的 BlenderBot,Google 的 LaMDA,DeepMind 的 Sparrow,以及 Anthropic 的 Assistant (Anthropic 的 Claude 就是部分基于 Assistant 繼續(xù)開發(fā)而得的)。
語言模型對話代理產(chǎn)品論文鏈接:
Meta 的 BlenderBot:
https://arxiv.org/abs/2208.03188
Google 的 LaMDA:
https://arxiv.org/abs/2201.08239
DeepMind 的 Sparrow:
https://arxiv.org/abs/2209.14375
Anthropic 的 Assistant:
https://arxiv.org/abs/2204.05862
其中一些團(tuán)隊(duì)還公布了他們構(gòu)建開源聊天機(jī)器人的計(jì)劃,并公開分享了路線圖 (比如 LAION 團(tuán)隊(duì)的 Open Assistant),其他團(tuán)隊(duì)肯定也有類似的內(nèi)容,但尚未宣布。你可以在 Open Assistant 的 GitHub 倉庫中找到其愿景 & 路線圖文檔: https://github.com/LAION-AI/Open-Assistant
下表根據(jù)是否能公開訪問、訓(xùn)練數(shù)據(jù)、模型架構(gòu)和評估方向的詳細(xì)信息對這些 AI 聊天機(jī)器人進(jìn)行了比較。ChatGPT 沒有這些信息的記錄,因此我們改為使用 InstructGPT 的詳細(xì)信息,這是一個來自 OpenAI 的指令微調(diào)模型,據(jù)信它是 ChatGPT 的基礎(chǔ)。
我們觀察到,盡管在訓(xùn)練數(shù)據(jù)、模型和微調(diào)方面存在許多差異,但也存在一些共性。上述所有聊天機(jī)器人的一個共同目標(biāo)是「指令依從 (instruction following)」,即遵循用戶指定的指令。例如,要求 ChatGPT 寫一首關(guān)于微調(diào)的詩。
從預(yù)測文本到遵循指令
通常,基礎(chǔ)模型的語言建模目標(biāo)不足以讓模型學(xué)會以有用的方式遵循用戶的指令。模型創(chuàng)建者使用「指令微調(diào) (Instruction Fine-Tuning,IFT)」方法來達(dá)到該目的,該方法除了使用情感分析、文本分類、摘要等經(jīng)典 NLP 任務(wù)來微調(diào)模型外,還在非常多樣化的任務(wù)集上向基礎(chǔ)模型示范各種書面指令及其輸出,從而實(shí)現(xiàn)對基礎(chǔ)模型的微調(diào)。這些指令示范由三個主要部分組成 —— 指令、輸入和輸出。輸入是可選的,一些任務(wù)只需要指令,如上文使用 ChatGPT 做開放式文本生成的示例。當(dāng)存在輸入時,輸入和輸出組成一個「實(shí)例 (instance)」。給定指令可以有多個輸入和輸出實(shí)例。如下例 (摘自 Wang 等,'22):
IFT 的訓(xùn)練數(shù)據(jù)通常是人工編寫的指令及用語言模型自舉 (bootstrap) 生成的實(shí)例的集合。在自舉時,先使用少樣本技術(shù)輸入一些樣本給 LM 用于提示它 (如上圖所示),隨后要求 LM 生成新的指令、輸入和輸出。每一輪都會從人工編寫的樣本和模型生成的樣本中各選擇一些送給模型。人類和模型對創(chuàng)建數(shù)據(jù)集的貢獻(xiàn)構(gòu)成了一個譜圖,見下圖:
譜圖的一端是純模型生成的 IFT 數(shù)據(jù)集,例如 Unnatural Instructions (Honovich 等,'22);另一端是經(jīng)由社區(qū)的大量努力精心制作的指令如 Super-natural instructions (Wang 等,'22)。在這兩者之間的工作是使用一小組高質(zhì)量的種子數(shù)據(jù)集,然后進(jìn)行自舉生成最終數(shù)據(jù)集,如 Self-Instruct (Wang 等,'22)。為 IFT 整理數(shù)據(jù)集的另一種方法是將現(xiàn)有的用于各種任務(wù) (包括提示)的高質(zhì)量眾包 NLP 數(shù)據(jù)集使用統(tǒng)一模式或不同模板轉(zhuǎn)換為指令。這一系列工作包括 T0 (Sanh 等,'22)、Natural instructions 數(shù)據(jù)集 (Mishra 等,'22)、FLAN LM (Wei 等,'22) 和 OPT-IML (Iyer 等,'22)。
論文鏈接:
Unnatural Instructions (Honovich 等, '22):
https://arxiv.org/abs/2212.09689
Super-natural instructions (Wang 等, '22):
https://arxiv.org/abs/2204.07705
Self-Instruct (Wang 等, '22):
https://arxiv.org/abs/2212.10560
T0 (Sanh 等, '22):
https://arxiv.org/abs/2110.08207
Natural instructions 數(shù)據(jù)集 (Mishra 等, '22):
https://arxiv.org/abs/2104.08773
FLAN LM (Wei 等, '22):
https://arxiv.org/abs/2109.01652
OPT-IML (Iyer 等, '22):
https://arxiv.org/abs/2212.12017
安全地遵循指令
然而,經(jīng)過指令微調(diào)的 LM 并不總是能生成 有幫助的 和 安全的 響應(yīng)。這種行為的例子包括通過總是給出無益的回應(yīng)來逃避,例如 “對不起,我不明白?!?或?qū)γ舾性掝}的用戶輸入生成不安全的響應(yīng)。為了減輕這種行為,模型開發(fā)人員使用 有監(jiān)督微調(diào) (Supervised Fine-tuning, SFT),在高質(zhì)量的人類標(biāo)注數(shù)據(jù)上微調(diào)基礎(chǔ)語言模型,以提高有用性和無害性。例如,請參閱下面的表格(摘自 Sparrow 論文的附錄 F)。
SFT 和 IFT 聯(lián)系非常緊密。指令微調(diào)可以看作是有監(jiān)督微調(diào)的一個子集。在最近的文獻(xiàn)中,SFT 階段經(jīng)常被用于提高響應(yīng)的安全性,而不是接在 IFT 后面提高指令相應(yīng)的具體性。將來,這種分類和劃分應(yīng)該日臻成熟,形成更清晰的使用場景和方法論。
谷歌的 LaMDA 也根據(jù)一組規(guī)則 (論文附錄 A) 在帶有安全標(biāo)注的對話數(shù)據(jù)集上進(jìn)行微調(diào)。這些規(guī)則通常由模型創(chuàng)建者預(yù)先定義和開發(fā),涵蓋廣泛的主題,包括傷害、歧視、錯誤信息。
微調(diào)模型
同時,OpenAI 的 InstructGPT、DeepMind 的 Sparrow 和 Anthropic 的 Constitutional AI 使用 人類反饋強(qiáng)化學(xué)習(xí) (Reinforcement Learning From Human Feedback,RLHF) 來微調(diào)模型,該方法使用基于人類偏好的標(biāo)注數(shù)據(jù)。在 RLHF 中,根據(jù)人類反饋來對模型的響應(yīng)進(jìn)行排序標(biāo)注 (如,根據(jù)人類偏好選擇文本簡介)。然后,用這些帶標(biāo)注的響應(yīng)來訓(xùn)練偏好模型,該模型用于返回 RL 優(yōu)化器的標(biāo)量獎勵。最后,通過強(qiáng)化學(xué)習(xí)訓(xùn)練對話代理來模擬偏好模型。有關(guān)更多詳細(xì)信息,請參閱我們之前關(guān)于 RLHF 的文章: ChatGPT 背后的“功臣”——RLHF 技術(shù)詳解。
思維鏈 (Chain-of-thought,CoT) 提示 (Wei 等,'22) 是指令示范的一種特殊情況,它通過引發(fā)對話代理的逐步推理來生成輸出。使用 CoT 微調(diào)的模型使用帶有逐步推理的人工標(biāo)注的指令數(shù)據(jù)集。這是 Let’s think step by step 這一著名提示的由來。下面的示例取自 Chung 等,'22,橙色高亮的部分是指令,粉色是輸入和輸出,藍(lán)色是 CoT 推理。
如 Chung 等,'22 中所述,使用 CoT 微調(diào)的模型在涉及常識、算術(shù)和符號推理的任務(wù)上表現(xiàn)得更好。
如 Bai 等,'22 的工作所示,CoT 微調(diào)也顯示出對無害性非常有效 (有時比 RLHF 做得更好),而且對敏感提示,模型不會回避并生成 “抱歉,我無法回答這個問題” 這樣的回答。更多示例,請參見其論文的附錄 D。
論文鏈接:
思維鏈提示 (Wei 等, '22):
https://arxiv.org/abs/2201.11903
Let’s think step by step:
https://arxiv.org/abs/2205.11916
CoT 圖解示例 (Chung 等, '22):
https://arxiv.org/abs/2210.11416
CoT 微調(diào)也顯示出對無害性非常有效 (Bai 等, '22):
ttps://www.anthropic.com/constitutional.pdf
要點(diǎn)
與預(yù)訓(xùn)練數(shù)據(jù)相比,您只需要非常小的一部分?jǐn)?shù)據(jù)來進(jìn)行指令微調(diào) (幾百個數(shù)量級);
使用人工標(biāo)注的有監(jiān)督微調(diào)使模型輸出更安全和有用;
CoT 微調(diào)提高了模型在需要逐步思考的任務(wù)上的性能,并使它們在敏感話題上不那么回避。
對話代理的進(jìn)一步工作
這個博客總結(jié)了許多關(guān)于使對話代理有用的現(xiàn)有工作。但仍有許多懸而未決的問題有待探索。我們在這里列出了其中的一些。
RL 在從人類反饋中學(xué)習(xí)有多重要?我們能否通過在 IFT 或 SFT 中使用更高質(zhì)量的數(shù)據(jù)進(jìn)行訓(xùn)練來獲得 RLHF 的性能?
為了安全的角度看,Sparrow 中的 SFT+RLHF 與 LaMDA 中僅使用 SFT 相比如何?
鑒于我們有 IFT、SFT、CoT 和 RLHF,預(yù)訓(xùn)練有多大的必要性?如何折衷?人們應(yīng)該使用的最佳基礎(chǔ)模型是什么 (公開的和非公開的)?
本文中引用的許多模型都經(jīng)過 紅藍(lán)對抗 (red-teaming) 的精心設(shè)計(jì),工程師特地搜尋故障模式并基于已被揭示的問題改進(jìn)后續(xù)的訓(xùn)練 (提示和方法)。我們?nèi)绾蜗到y(tǒng)地記錄這些方法的效果并重現(xiàn)它們?
紅藍(lán)對抗 (red-teaming) 論文地址:
https://arxiv.org/abs/2209.07858
P.s. 如果您發(fā)現(xiàn)本博客中的任何信息缺失或不正確,請告知我們。
引用:
Rajani et al.,"What Makes a Dialog Agent Useful?", Hugging Face Blog, 2023.
BibTeX 引用:
@article {rajani2023ift,
author = {Rajani, Nazneen and Lambert, Nathan and Sanh, Victor and Wolf, Thomas},
title = {What Makes a Dialog Agent Useful?},
journal = {Hugging Face Blog},
year = {2023},
note = {https://huggingface.co/blog/dialog-agents},
}
敬請關(guān)注電子技術(shù)應(yīng)用2023年2月22日==>>商業(yè)航天研討會<<