在大型語言模型的領域,除了GPT-3中提到的Prompting
與Few-shot
等技術之外,還有許多衍生的應用。第一個應用是由於GPT-3生成的文字存在高度危險性(可能生成一些過激言論、腥羶色文字等),OpenAI開發了InstructGPT
模型,這一技術引入了新的學習方式Instruction learning
,使得語言模型更具回應能力,更好地理解使用者的需求,並更能符合特定生成規則。該模型在處理複雜指令和生成高品質回應方面,展示了相較於 GPT-3的Prompt learning的強大效能與其安全性。
而另一項技術是基於few-shot
學習衍生出的COT (Chain-of-Thought) few-shot
技術則是進一步提升模型能力的關鍵技術,它主要透過更詳細的推理規則來增強模型的效能,接下來我將詳細介紹這兩者之間的差異以及它們在現代語言模型中的應用。
Instruction learning
的核心在於在輸入中提供清晰的指令,這樣模型能夠理解具體任務要求。這與 Prompt learning 的不同點在於,Prompt learning
只依賴提示來引導模型,而 Instruction learning
則是明確告訴模型應該做什麼。例如:
Prompt learning
只會告訴你任務目標:
context: 蘋果是什麼?
question: 這是一個水果嗎?
Instruction learning
中,則會明確告訴模型如何回答:
Instruction: 根據背景信息回答問題,不要使用任何冒犯性語言。
context: 蘋果是什麼?
question: 這是一個水果嗎?
Instruction learning
的好處在於它讓模型更精確地執行任務,避免生成錯誤或不當的回應,這在涉及隱私或敏感問題時尤為重要。這種方法能明確地告訴模型哪些內容應該生成,哪些內容應避免。而 Prompting learning
則是增加模型的推理能力。兩者的區分在於,只要明確告訴模型生成目標,就能歸類為 Instruction learning
;而讓模型通過上下文或方向生成更佳結果的則屬於 Prompting learning
。
這裡我就想要吐槽一下,兩者其實很相近,唯一的差別就在於指令是否夠明確。但這一點又很主觀,所以在閱讀論文時,很多人也會把
Instruction
直接叫做Prompting
,因為Instruction
其實是Prompting
中的一個更細小的分支(類似於機器學習與深度學習這樣的關係)。
Chain-of-Thought (COT) 是一種進一步提升模型推理能力的方法,特別是在多步推理(multi-step reasoning)任務中
,該方式與常規生成方式不同 COT
提倡通過逐步展示解題過程來引導模型推理和思考,這種方式可以幫助模型更清楚地理解任務要求並且提供更有邏輯性的回應,讓我們看到以下兩個案例
在傳統的Zero-shot
方法中,模型通常是直接生成答案,沒有中間的推理過程:
context: 如果今天是星期三,兩天後是星期幾?
answer: 星期五。
而在 COT 中,我們會加入推理過程的想法,讓模型模型能夠逐步推理,展開中間步驟:
context: 如果今天是星期三,兩天後是星期幾?
推理過程: 今天是星期三,明天是星期四,後天是星期五。
answer: 星期五。
而這種 COT
可以有多個步驟與方式,因此也被稱為 COT few-shot
。這種方法可以幫助模型將推理步驟顯示出來,以避免跳過關鍵邏輯步驟或產生錯誤的回應。這對於解決數學推理、語言邏輯分析等複雜問題非常有用。
不過要注意一點,該方式的應用不能作用於參數量較小的模型爭,這是因為參數量較小的模型通常在邏輯推理能力上不佳,這時我們又將一堆更複雜的指令給予到這些模型中只會讓他更加的混亂,該技術的主要原理就是模型本身知道這些知識,但是卻可能忽略掉一些細節,因此我們需要給他詳細的步驟將其引導生成的方向。
在大多數情境中我們可以將這些技術結合使用,例如通過在指示中明確告訴模型採用COT的方式進行操作,我們能夠進一步提高模型在生成的邏輯性。
Instruction: 請按照步驟來進行推理,並回答問題。
context: 今天是星期三,兩天後是星期幾?
推理過程: 今天是星期三,明天是星期四,後天是星期五。
answer: 星期五。
這種技術結合使模型能夠更準確地解決具難度的問題,而這一方式也應用於OpenAI近期發表的O1
模型上。該模型的基本原理是先透過一個模型生成對應的COT,然後讓模型根據這個COT去解決對應的任務。然而,O1
的模型參數量可能較小,根據生成速度推測,整體回覆能力尚未達到GPT-4的水準,但在處理困難任務上仍有不錯的表現,最後讓我們看看這些技術的差異性吧。
技術 | 核心思想 | 應用情境 | 優勢 |
---|---|---|---|
Prompt learning | 透過提示引導模型生成回應 | 基本的問答、文本生成等 | 簡單有效,適合單步推理任務。 |
Instruction learning | 提供明確的指導,使模型理解如何執行任務 | 適合複雜的指令執行和任務,特別是需要明確的回應時 | 可以避免不當內容,生成內容品質更高。 |
COT (Chain-of-Thought) | 強調逐步推理,展示中間推理過程 | 複雜的邏輯推理、多步數學計算、語言推理等 | 提供邏輯清晰的回應,減少錯誤的推理步驟。 |
今天的內容主要是一系列名詞的介紹,其實我們可以大致將這些方式進行歸類。首先我們可以把所有提供給模型的文字歸類在In-context Learning
中,而所有增強模型推理能力的方法都可以稱為Prompting
。其中如果在這個Prompting
下的指令具有指令性,則稱為Instruction
。如果不給予歷史樣本,則叫做zero-shot
;如果給予的是歷史樣本,則叫做few-shot
。若這些few-shot
不是歷史資料而是引導性的句子,則稱為COT
;如果有多個引導句子,則稱為COT few-shot
。看到這裡你就知道我為什麼我會說這些搞AI的人都很喜歡創一堆名詞但其實都指向類似的東西了吧