到目前為止,課程已經幾乎涵蓋了所有 pre-training 的部分,這能讓我們得到像 GPT-3 這樣的模型。但如果想得到 InstructGPT ,我們該怎麼做?
過去像 GPT-3 這樣的模型雖然經過大量 pre-training 且令人印象深刻,但缺乏實用性,無法遵循指令或提供產品價值。ChatGPT 的出現改變了這一切,這節課的重點正是探討如何透過 post-training 將 pre-training 系統轉變為如同 ChatGPT 般能聽懂指令的模型。人們現在把模型能同時遵循多個複雜指令視為理所當然,這其實展現了我們如今能夠對 LLM 實施更緊密、更優秀的控制。
當這些強大的 LLM 被發布到現實世界後,安全性與內容審核變得極為重要。在安全性方面,必須防止模型被惡意用於詐騙等用途;在內容審核方面,如果希望將模型轉化為人們願意付費或能投放廣告的實用產品,系統就絕對不能產生極度有害的內容。 ChatGPT 之所以能取得巨大成功,很大一部分原因在於它具備了非常顯著的安全護欄(guard rails)。
無論是讓模型展現強大的指令遵循能力,還是加上嚴格的安全護欄,我們的核心目標,就是要對語言模型的輸出實現「更嚴密、更好的控制(tighter, better controls)」。
然而,pre-training 的過程可以被視為將各種能力(例如推論、回答問題)封裝進模型的參數中,但模型並不會「開箱即用」地自動將這些能力展現出來,自然也無法直接受到我們的控制。
為了讓模型能聽從指令並展現我們期望的行為,我們需要去收集對應的各種行為資料,並利用這些資料來訓練模型。這個目標衍生出幾個必須探討的核心問題:

這節課的結構大致上會對應 InstructGPT 論文中的圖表,因為現今業界多數的 post-training 流程,依然是建立在這個三階段的流程之上。
為了讓 SFT 成功運作,主要需要考量兩個核心要素:
在之前的 data lecture 中,我們已經看過一些主要的 instruction data 類型了。
接下來要談談指令 instruction tuning datasets 的兩個額外細節: