解讀 ChatGPT 背後的技術重點:RLHF、IFT、CoT、紅藍對抗
近段時間,ChatGPT 橫空出世並獲得巨大成功,使得 RLHF、SFT、IFT、CoT 等這些晦澀的縮寫開始出現在普羅大眾的討論中。這些晦澀的首字母縮略詞究竟是什麼意思?為什麼它們如此重要?我們調查了相關的所有重要論文,以對這些工作進行分類,總結迄今為止的工作,並對後續工作進行展望。
我們先來看看基於語言模型的會話代理的全景。ChatGPT 並非首創,事實上很多組織在 OpenAI 之前就釋出了自己的語言模型對話代理 (dialog agents),包括 Meta 的 BlenderBot,Google 的 LaMDA,DeepMind 的 Sparrow,以及 Anthropic 的 Assistant (Anthropic 的 Claude 就是部分基於 Assistant 繼續開發而得的)。
其中一些團隊還公佈了他們構建開源聊天機器人的計劃,並公開分享了路線圖 (比如 LAION 團隊的 Open Assistant),其他團隊肯定也有類似的內容,但尚未宣佈。
下表根據是否能公開訪問、訓練資料、模型架構和評估方向的詳細資訊對這些 AI 聊天機器人進行了比較。 ChatGPT 沒有這些資訊的記錄,因此我們改為使用 InstructGPT 的詳細資訊,這是一個來自 OpenAI 的指令微調模型,據信它是 ChatGPT 的基礎。
| | LaMDA | BlenderBot 3 | Sparrow |ChatGPT / InstructGPT |Assistant|
| --- | --- | --- | --- | --- | --- |
| 組織 | Google | Meta | DeepMind |OpenAI | Anthropic |
| 能否公開訪問 | 否 | 能 | 否 | 有限 | 否 |
| 大小 | 137B | 175B | 70B | 175B | 52B |
| 預訓練
基礎模型 | 未知 |OPT | Chinchilla | GPT-3.5 | 未知 |
| 預訓練語料庫大小 (詞數)| 2.81T | 180B | 1.4T | 未知 | 400B |
| 模型是否可以
訪問網路 | ✔ | ✔ | ✔ | ✖️ | ✖️ |
| 有監督
微調 | ✔ | ✔ | ✔ | ✔ | ✔ |
| 微調
資料大小 | 質量:6.4K
安全性:8K
真實性:4K
IR:49K | 大小從 18K 到 1.2M 不等的 20 個 NLP 資料集 | 未知 | 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、Amazon MTurk 和 Upwork |
我們觀察到,儘管在訓練資料、模型和微調方面存在許多差異,但也存在一些共性。上述所有聊天機器人的一個共同目標是「指令依從 (instruction following)」,即遵循使用者指定的指令。例如,要求 ChatGPT 寫一首關於微調的詩。
從預測文字到遵循指令
通常,基礎模型的語言建模目標不足以讓模型學會以有用的方式遵循使用者的指令。模型建立者使用「指令微調 (Instruction Fine-Tuning,IFT)」方法來達到該目的,該方法除了使用情感分析、文字分類、摘要等經典 NLP 任務來微調模型外,還在非常多樣化的任務集上向基礎模型示範各種書面指令及其輸出,從而實現對基礎模型的微調。這些指令示範由三個主要部分組成 —— 指令、輸入和輸出。輸入是可選的,一些任務只需要指令,如上文使用 ChatGPT 做開放式文字生成的示例。當存在輸入時,輸入和輸出組成一個「例項 (instance)」。給定指令可以有多個輸入和輸出例項。如下例 (摘自 Wang 等,'22):
IFT 的訓練資料通常是人工編寫的指令及用語言模型自舉 (bootstrap) 生成的例項的集合。在自舉時,先使用少樣本技術輸入一些樣本給 LM 用於提示它 (如上圖所示),隨後要求 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)。
安全地遵循指令
然而,經過指令微調的 LM 並不總是能生成 有幫助的 和 安全的 響應。 這種行為的例子包括通過總是給出無益的迴應來逃避,例如 “對不起,我不明白。” 或對敏感話題的使用者輸入生成不安全的響應。為了減輕這種行為,模型開發人員使用 有監督微調 (Supervised Fine-tuning,SFT),在高質量的人類標註資料上微調基礎語言模型,以提高有用性和無害性。例如,請參閱下面的表格(摘自 Sparrow 論文的附錄 F)。
SFT 和 IFT 聯絡非常緊密。指令微調可以看作是有監督微調的一個子集。在最近的文獻中,SFT 階段經常被用於提高響應的安全性,而不是接在 IFT 後面提高指令相應的具體性。將來,這種分類和劃分應該日臻成熟,形成更清晰的使用場景和方法論。
谷歌的 LaMDA 也根據一組規則 (論文附錄 A) 在帶有安全標註的對話資料集上進行微調。這些規則通常由模型建立者預先定義和開發,涵蓋廣泛的主題,包括傷害、歧視、錯誤資訊。
微調模型
同時,OpenAI 的 InstructGPT、DeepMind 的 Sparrow 和 Anthropic 的 Constitutional AI 使用 人類反饋強化學習 (Reinforcement Learning From Human Feedback,RLHF) 來微調模型,該方法使用基於人類偏好的標註資料。在 RLHF 中,根據人類反饋來對模型的響應進行排序標註 (如,根據人類偏好選擇文字簡介)。然後,用這些帶標註的響應來訓練偏好模型,該模型用於返回 RL 優化器的標量獎勵。最後,通過強化學習訓練對話代理來模擬偏好模型。有關更多詳細資訊,請參閱我們之前關於 RLHF 的文章: ChatGPT 背後的“功臣”——RLHF 技術詳解。
思維鏈 (Chain-of-thought,CoT) 提示 (Wei 等,'22) 是指令示範的一種特殊情況,它通過引發對話代理的逐步推理來生成輸出。使用 CoT 微調的模型使用帶有逐步推理的人工標註的指令資料集。這是 Let’s think step by step 這一著名提示的由來。下面的示例取自 Chung 等,'22,橙色高亮的部分是指令,粉色是輸入和輸出,藍色是 CoT 推理。
如 Chung 等,'22 中所述,使用 CoT 微調的模型在涉及常識、算術和符號推理的任務上表現得更好。
如 Bai 等,'22 的工作所示,CoT 微調也顯示出對無害性非常有效 (有時比 RLHF 做得更好),而且對敏感提示,模型不會迴避並生成 “抱歉,我無法回答這個問題” 這樣的回答。更多示例,請參見其論文的附錄 D。
要點
- 與預訓練資料相比,您只需要非常小的一部分資料來進行指令微調 (幾百個數量級);
- 使用人工標註的有監督微調使模型輸出更安全和有用;
- CoT 微調提高了模型在需要逐步思考的任務上的效能,並使它們在敏感話題上不那麼迴避。
對話代理的進一步工作
這個部落格總結了許多關於使對話代理有用的現有工作。但仍有許多懸而未決的問題有待探索。我們在這裡列出了其中的一些。 1. RL 在從人類反饋中學習有多重要?我們能否通過在 IFT 或 SFT 中使用更高質量的資料進行訓練來獲得 RLHF 的效能? 2. 為了安全的角度看,Sparrow 中的 SFT+RLHF 與 LaMDA 中僅使用 SFT 相比如何? 3. 鑑於我們有 IFT、SFT、CoT 和 RLHF,預訓練有多大的必要性?如何折衷?人們應該使用的最佳基礎模型是什麼 (公開的和非公開的)? 4. 本文中引用的許多模型都經過 紅藍對抗 (red-teaming) 的精心設計,工程師特地搜尋故障模式並基於已被揭示的問題改進後續的訓練 (提示和方法)。我們如何系統地記錄這些方法的效果並重現它們?
P.s. 如果您發現本部落格中的任何資訊缺失或不正確,請告知我們。
引用
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 = {http://huggingface.co/blog/dialog-agents},
}
英文原文:
http://huggingface.co/blog/dialog-agents 譯者: Matrix Yao (姚偉峰),英特爾深度學習工程師,工作方向為 transformer-family 模型在各模態資料上的應用及大規模模型的訓練推理。
- 在一張 24 GB 的消費級顯示卡上用 RLHF 微調 20B LLMs
- 如何評估大語言模型
- 千億引數開源大模型 BLOOM 背後的技術
- Kakao Brain 的開源 ViT、ALIGN 和 COYO 文字-圖片資料集
- AI 影評家: 用 Hugging Face 模型打造一個電影評分機器人
- 我的語言模型應該有多大?
- Hugging Face 每週速遞: Chatbot Hackathon;FLAN-T5 XL 微調;構建更安全的 LLM
- AI 大戰 AI,一個深度強化學習多智慧體競賽系統
- Hugging Face 每週速遞: ChatGPT API 怎麼用?我們幫你搭好頁面了
- 深入瞭解視覺語言模型
- CPU推理|使用英特爾 Sapphire Rapids 加速 PyTorch Transformers
- 大語言模型: 新的摩爾定律?
- 從 PyTorch DDP 到 Accelerate 到 Trainer,輕鬆掌握分散式訓練
- 從 PyTorch DDP 到 Accelerate 到 Trainer,輕鬆掌握分散式訓練
- 在低程式碼開發平臺 ILLA Cloud 中使用 Hugging Face 上的模型
- 瞭解 Transformers 是如何“思考”的
- 第 1 天|基於 AI 進行遊戲開發:5 天建立一個農場遊戲!
- 加速 Document AI (文件智慧) 發展
- 一文帶你入門圖機器學習
- 解讀 ChatGPT 背後的技術重點:RLHF、IFT、CoT、紅藍對抗