對話代理的用武之地?
ChatGPT 背後的技術:RLHF、IFT、CoT、紅隊和更多
本文已翻譯成中文 簡體中文.
幾周前,ChatGPT 問世,引發了公眾對一堆晦澀難懂的首字母縮略詞的討論:RLHF、SFT、IFT、CoT 等等,所有這些都被歸因於 ChatGPT 的成功。這些晦澀難懂的首字母縮略詞是什麼?為什麼它們如此重要?我們調查了所有關於這些主題的重要論文,對這些工作進行分類,總結了已完成工作的要點,並分享了尚待展示的內容。
我們先來看看基於語言模型的對話代理的現狀。ChatGPT 並非首創,事實上,許多組織在 OpenAI 之前就釋出了他們的語言模型對話代理,包括 Meta 的 BlenderBot、Google 的 LaMDA、DeepMind 的 Sparrow 和 Anthropic 的 Assistant(此代理的持續開發,沒有完美的歸屬,也稱為 Claude)。一些團體也宣佈了他們構建開源聊天機器人的計劃,並公開分享了路線圖(LAION 的 Open Assistant);其他團體肯定也在這樣做,但尚未宣佈。
下表比較了這些 AI 聊天機器人,基於它們的公共訪問許可權、訓練資料、模型架構和評估方向。ChatGPT 沒有文件,因此我們分享了 InstructGPT 的詳細資訊,InstructGPT 是 OpenAI 的一個指令微調模型,被認為是 ChatGPT 的基礎。
LaMDA | BlenderBot 3 | Sparrow | ChatGPT/ InstructGPT | 助手 | |
---|---|---|---|---|---|
組織 | Meta | DeepMind | OpenAI | Anthropic | |
訪問 | 封閉 | 開放 | 封閉 | 受限 | 封閉 |
大小 | 137B | 175B | 70B | 175B | 52B |
預訓練 基礎模型 |
未知 | OPT | Chinchilla | GPT-3.5 | 未知 |
預訓練語料庫大小(# token) | 2.81T | 180B | 1.4T | 未知 | 400B |
模型可以 訪問網路 |
✔ | ✔ | ✔ | ✖️ | ✖️ |
監督 微調 |
✔ | ✔ | ✔ | ✔ | ✔ |
微調 資料量 |
質量:6.4K 安全:8K 接地:4K IR:49K |
20 個 NLP 資料集,範圍從 1.8 萬到 120 萬 | 未知 | 12.7K(對於 InstructGPT,ChatGPT 可能更多) | 150K + LM 生成資料 |
RLHF | ✖️ | ✖️ | ✔ | ✔ | ✔ |
手工編寫的安全規則 | ✔ | ✖️ | ✔ | ✖️ | ✔ |
評估標準 | 1. 質量(合理性、特異性、趣味性) 2. 安全性(包括偏見) 3. 接地性 |
1. 質量(吸引力、知識運用) 2. 安全性(毒性、偏見) |
1. 對齊(有幫助、無害、正確) 2. 證據(來自網路) 3. 違規行為 4. 偏見和刻板印象 5. 可信賴性 |
1. 對齊(有幫助、無害、真實性) 2. 偏見 |
1. 對齊(有幫助、無害、誠實) 2. 偏見 |
用於資料標註的眾包平臺 | 美國供應商 | 亞馬遜 MTurk | 未知 | Upwork 和 Scale AI | Surge AI、亞馬遜 MTurk 和 Upwork |
我們觀察到,儘管訓練資料、模型和微調存在許多差異,但也有一些共同點。所有上述聊天機器人的共同目標是指令遵循,即遵循使用者指定的指令。例如,指示 ChatGPT 撰寫一首關於微調的詩歌。
從預測文字到遵循指令:
通常,基礎模型的語言建模目標不足以讓模型以有用的方式學習遵循使用者的指示。模型建立者使用指令微調 (IFT),這涉及在非常多樣化的任務(除了情感、文字分類、摘要等經典 NLP 任務)上,基於書面指令的演示來微調基礎模型。這些指令演示由三個主要元件組成:指令、輸入和輸出。輸入是可選的,有些任務只需要指令,例如上面 ChatGPT 示例中的開放式生成。如果存在輸入和輸出,它們就構成了一個例項。對於給定的指令,可以有多個輸入和輸出例項。請參閱下文示例(摘自 [Wang et et al., '22])。
IFT 的資料通常是人工編寫的指令和使用語言模型引導的指令例項的集合。對於引導,LM 在少樣本設定中,透過示例進行提示(如上圖所示),並被指示生成新的指令、輸入和輸出。在每一輪中,模型都會被提示從人工編寫和模型生成的樣本中選擇的樣本。人工和模型對資料集建立的貢獻程度是一個光譜;見下圖。
一端是純模型生成的 IFT 資料集,例如 Unnatural Instructions(Honovich 等人,'22),另一端是人工製作指令的大規模社群工作,如 Super-natural instructions(Wang 等人,'22)。介於兩者之間的是使用少量高質量種子資料集然後進行引導的工作,例如 Self-instruct(Wang 等人,'22)。另一種整理 IFT 資料集的方法是獲取現有的高質量眾包 NLP 資料集,包括提示,並使用統一的模式或多樣化的模板將其轉換為指令。這方面的工作包括 T0(Sanh 等人,'22)、Natural instructions 資料集(Mishra 等人,'22)、FLAN LM(Wei 等人,'22)和 OPT-IML(Iyer 等人,'22)。
安全地遵循指令
然而,經過指令微調的語言模型可能並非總是生成有幫助和安全的響應。這類行為的例子包括透過總是給出無用的響應(例如“抱歉,我不明白。”)或對敏感主題的使用者輸入生成不安全的響應來逃避。為了減輕這種行為,模型開發者使用監督微調(SFT),在高質量的人工標註資料上對基礎語言模型進行微調,以提高其幫助性和無害性。例如,請參見下表,該表取自 Sparrow 論文(附錄 F)。
SFT 和 IFT 密切相關。指令微調可以看作是監督微調的一個子集。在最近的文獻中,SFT 階段通常用於安全主題,而不是在 IFT 之後進行的指令特定主題。未來,這種分類和劃界應該會發展出更清晰的用例和方法。
Google 的 LaMDA 也根據一組規則(附錄 A)對帶安全標註的對話資料集進行了微調。這些規則通常由模型建立者預先定義和開發,涵蓋廣泛的主題,包括危害、歧視和錯誤資訊。
模型微調
另一方面,OpenAI 的 InstructGPT、DeepMind 的 Sparrow 和 Anthropic 的 Constitutional AI 在一種稱為人類反饋強化學習(RLHF)的設定中,使用人類偏好標註。在 RLHF 中,模型響應集根據人類反饋進行排序(例如,選擇一個優於另一個的文字片段)。接下來,在一個偏好模型上訓練這些標註的響應,以返回 RL 最佳化器的標量獎勵。最後,對話代理透過強化學習訓練以模擬偏好模型。有關 RLHF 的更多詳細資訊,請參閱我們之前的部落格文章。
思維鏈 (CoT) 提示 (Wei et al., '22) 是一種特殊的指令演示,它透過從對話代理中引出逐步推理來生成輸出。用 CoT 微調的模型使用帶有逐步推理的人工標註的指令資料集。它就是著名提示語讓我們一步步思考的起源。下面的示例摘自 Chung et al., '22。橙色突出顯示指令,粉紅色顯示輸入和輸出,藍色是 CoT 推理。
經 CoT 微調的模型在涉及常識、算術和符號推理的任務中表現出更好的效能,如 Chung 等人,'22 所示。
CoT 微調也被證明對無害性非常有效(有時甚至優於 RLHF),並且在面對敏感提示時模型不會迴避並生成“抱歉,我無法回答這個問題”,如 Bai 等人,'22 所示。更多示例請參見他們的論文附錄 D。
要點:
- 與預訓練資料相比,指令微調只需要極少的資料(數百個量級)。
- 監督微調使用人工標註使模型輸出更安全和有用。
- CoT 微調提高了模型在需要逐步思考的任務上的效能,並使其在敏感話題上不那麼迴避。
對話代理的下一步
本部落格總結了許多關於如何使對話代理有用的現有工作。但仍有許多未解決的問題有待探索。我們在此列舉其中一些。
- 強化學習在從人類反饋中學習方面有多重要?我們能否透過在 IFT 或 SFT 中使用更高質量的資料進行訓練來獲得 RLHF 的效能?
- Sparrow 中的 SFT+RLHF 與 LaMDA 中僅使用 SFT 進行安全性比較如何?
- 鑑於我們擁有 IFT、SFT、CoT 和 RLHF,預訓練的必要性如何?權衡是什麼?人們應該使用哪些最好的基礎模型(包括公開可用的和非公開的)?
- 本文中引用的許多模型都經過了精心設計,採用了紅隊方法,工程師專門尋找故障模式並根據發現的問題影響未來的訓練(提示和方法)。我們如何系統地記錄這些方法的效果並重現它們?
PS:如果您發現本部落格中的任何資訊有缺失或不正確,請告知我們。
引用
Rajani et al., "對話代理的用武之地?", 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},
}