iT邦幫忙

2024 iThome 鐵人賽

DAY 27
0
AI/ ML & Data

從零開始學AI:數學基礎與程式碼撰寫全攻略系列 第 27

【Day 27】大型語言模型的常用技巧Instruction Learning 與 COT Few-Shot 技術解析

  • 分享至 

  • xImage
  •  

前言

在大型語言模型的領域,除了GPT-3中提到的PromptingFew-shot等技術之外,還有許多衍生的應用。第一個應用是由於GPT-3生成的文字存在高度危險性(可能生成一些過激言論、腥羶色文字等),OpenAI開發了InstructGPT模型,這一技術引入了新的學習方式Instruction learning,使得語言模型更具回應能力,更好地理解使用者的需求,並更能符合特定生成規則。該模型在處理複雜指令和生成高品質回應方面,展示了相較於 GPT-3的Prompt learning的強大效能與其安全性。

而另一項技術是基於few-shot學習衍生出的COT (Chain-of-Thought) few-shot技術則是進一步提升模型能力的關鍵技術,它主要透過更詳細的推理規則來增強模型的效能,接下來我將詳細介紹這兩者之間的差異以及它們在現代語言模型中的應用。

Instruction Learning

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中的一個更細小的分支(類似於機器學習與深度學習這樣的關係)。

COT (Chain-of-Thought Few-Shot Learning)

Chain-of-Thought (COT) 是一種進一步提升模型推理能力的方法,特別是在多步推理(multi-step reasoning)任務中該方式與常規生成方式不同 COT 提倡通過逐步展示解題過程來引導模型推理和思考,這種方式可以幫助模型更清楚地理解任務要求並且提供更有邏輯性的回應,讓我們看到以下兩個案例

  • 在傳統的Zero-shot方法中,模型通常是直接生成答案,沒有中間的推理過程:

    context: 如果今天是星期三,兩天後是星期幾?
    answer: 星期五。
    
  • 而在 COT 中,我們會加入推理過程的想法,讓模型模型能夠逐步推理,展開中間步驟:

    context: 如果今天是星期三,兩天後是星期幾?
    推理過程: 今天是星期三,明天是星期四,後天是星期五。
    answer: 星期五。
    

而這種 COT 可以有多個步驟與方式,因此也被稱為 COT few-shot。這種方法可以幫助模型將推理步驟顯示出來,以避免跳過關鍵邏輯步驟或產生錯誤的回應。這對於解決數學推理、語言邏輯分析等複雜問題非常有用。

不過要注意一點,該方式的應用不能作用於參數量較小的模型爭,這是因為參數量較小的模型通常在邏輯推理能力上不佳,這時我們又將一堆更複雜的指令給予到這些模型中只會讓他更加的混亂,該技術的主要原理就是模型本身知道這些知識,但是卻可能忽略掉一些細節,因此我們需要給他詳細的步驟將其引導生成的方向。

Instruction learning 與 COT 的結合

在大多數情境中我們可以將這些技術結合使用,例如通過在指示中明確告訴模型採用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的人都很喜歡創一堆名詞但其實都指向類似的東西了吧


上一篇
【Day 26】用GPT-2解squad_v2問答資料集 - Prompting Learning與遮蔽策略的調整
下一篇
【Day 28】Meta大規模語言模型 LLaMA 介紹:LLaMA 系列的歷史與數學推導
系列文
從零開始學AI:數學基礎與程式碼撰寫全攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言