20251029筆記 內容可能有錯誤,請參考原始影片 [李宏毅【生成式AI導論 2024】](https://www.youtube.com/playlist?list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI) [【生成式AI導論 2024】第6講:大型語言模型修練史 — 第一階段: 自我學習,累積實力 (熟悉機器學習的同學從 15:00 開始看起即可)](https://www.youtube.com/watch?v=cCpErV7To2o&list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI&index=7) [【生成式AI導論 2024】第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始)](https://www.youtube.com/watch?v=Q9cNkUPXUB8&list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI&index=8) [【生成式AI導論 2024】第8講:大型語言模型修練史 — 第三階段: 參與實戰,打磨技巧 (Reinforcement Learning from Human Feedback, RLHF)](https://www.youtube.com/watch?v=v12IKvF6Cj8&list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI&index=9) ### 【生成式AI導論 2024】第6講:大型語言模型修練史 — 第一階段: 自我學習,累積實力 (熟悉機器學習的同學從 15:00 開始看起即可) 大綱 ### I. 大語言模型(LLM)的基礎概念與機器學習背景 A. LLM 的核心功能:文句接龍。 B. LLM 本質:一個具有數十億個參數的函式。 C. 機器學習流程:訓練(找參數)與測試/推論(使用參數)。 D. 語言模型修煉分為三個階段。 ### II. 機器學習訓練的挑戰與先驗知識 A. 挑戰一:訓練失敗(需調整超參數)。 B. 挑戰二:過度擬合(Overfitting,訓練成功但測試失敗)。 C. 克服挑戰:增加訓練資料多樣性或設定初始參數。 D. 好的初始參數被視為機器的「先驗知識」。 ### III. 語言模型修煉的第一階段:預訓練 (Pre-training) A. 目標:學習語言知識與世界知識。 B. 訓練方法:自導式學習(Self-supervised learning)。 C. 資料來源:網路上爬取的大量文字資料。 D. 資料準備:需進行過濾、去符號、品質控制及去重複資料。 E. 發展歷史:從 GPT-1 到 GPT-3 (巨大的參數和資料量)。 ### IV. 預訓練的結果、限制與第二階段的需求 (Need for Phase 2) A. 預訓練結果:模型累積了驚人的知識儲備(內功)。 B. 預訓練限制:模型「不受控」,容易答非所問或反問。 C. 限制原因:訓練資料未包含「如何回答問題」的方法。 D. 結論:需要進入第二階段,由人類指導發揮潛力。 *** ### I. 大語言模型(LLM)的基礎概念與機器學習背景 * **修煉階段** * 在開始討論模型訓練之前,需要回顧語言模型是如何修煉的。 * 語言模型的修煉(學習)分成**三個階段**。 * 所有階段的核心都是在學習**文句接龍**,只是訓練所使用的資料不同。 * **核心功能:文字接龍** * 大語言模型在產生答案時,實際做的事情就是**文字接龍**,將答案中的文字一個一個產生出來。 * 每一次語言模型會產生出一個符號,稱為 **Token**。 * 為簡化說明,在課程中假設**一個中文字就是一個 Token**。 * **模型本質與參數** * 一個語言模型其實就是一個**函式**(Function,寫作 f),輸入是一個未完成的句子,輸出是接下來可以接的 Token。 * 要做文句接龍這件複雜的事情,顯然這個函式非常複雜,可能需要**數十億個未知的參數**才能完成任務。 * 這個有大量未知參數的函式就叫做**模型**。 * **機器學習流程** * **訓練(Training/Learning)**:根據訓練資料,自動找出這數十億個參數的過程。 * 訓練資料會告訴模型,當輸入一個未完成的句子時,輸出應該是哪一個 Token 才是對的(例如:「人工智」後面該接「慧」)。 * 找到參數的過程也稱為**最佳化**(Optimization)。 * **測試(Testing/Inference/推論)**:將參數找出來以後,使用這組參數來做文句接龍的這件事情。 ### II. 機器學習訓練的挑戰與先驗知識 * **挑戰一:超參數與訓練失敗** * 在進行最佳化(找參數)之前,需要設定一些參數,稱為**超參數**(hyperparameter)。 * 訓練過程是有**隨機性**的,不一定每次都會成功。 * 如果訓練失敗(得出的參數不符合訓練資料的內容),常見的做法是**換一組超參數再試一次**。 * 這也是為什麼訓練模型需要大量的**算力**,因為可能需要不斷嘗試多組超參數。 * 大眾常說做深度學習就是**調參數**,指的其實是**調整超參數**,而非自動找出來的數十億個參數。 * **挑戰二:過度擬合 (Overfitting)** * 過度擬合指的是**訓練成功,但測試失敗**的狀況。 * 例如,一個貓狗分類器在訓練資料中,所有貓都是黑色的,所有狗都是黃色的。最佳化過程可能因此找到一組參數,認定**只要黑色的東西就叫做貓,黃色的東西就叫做狗**。 * 當給予一張訓練時沒看過的、黃色的貓的圖片時,模型可能會錯誤輸出「狗」。 * 機器在學習時,完全**不會思考**找出來的參數是否合理或是否能用在其他資料上;它只認訓練資料所給予的限制。 * **尋找合理參數的方法** * **增加訓練資料的多樣性**:例如加入一隻黃色的貓或黑色的狗,強迫機器不能只憑顏色來分辨動物。 * **設定初始參數(Initial Parameters)**:在最佳化過程開始時,必須設置初始參數。最終找出來的參數會比較可能與初始參數接近。 * 若不知道如何設定初始參數,通常會**隨機產生**。 * **先驗知識** * 如果能找到一組「比較好的」初始參數,即這些參數離我們所要的合理參數比較接近,從這組參數開始進行最佳化,最終結果就更有可能是我們想要的。 * 這種好的參數可以想成是我們給予模型的**先驗知識**,即在學習之前就已經具備的知識或能力。 ### III. 語言模型修煉的第一階段:預訓練 (Pre-training) * **知識目標** * 要正確接出一個 Token,語言模型需要兩方面的知識: 1. **語言知識**:對人類語言的文法有正確的了解。根據文獻,也許約有**一億個詞彙**的資料量就足以讓模型學會語言知識。 2. **世界知識**:需要對世界有所理解,例如對物理(如水的沸點)或人類社會的理解。 * 學習世界知識非常困難且有層次。例如,水的沸點在不同氣壓下會改變。即使是 2020 年的論文發現,收集了 **300 億個文字**(詞彙),看起來也**不夠**讓模型學會世界知識。 * **訓練方法:自監督式學習 (Self-supervised learning)** * 任何文字資料都可以拿來教語言模型做文句接龍。 * 最常使用的資料來源是**網路上爬取的大量文字資料**,可以說是「要多少就有多少」。 * 從網頁上爬取句子供模型學習,例如「人工智慧真神奇」可以產生多組問答配對(如「人工智」後面接「慧」)。 * 這種只需要**非常少人工介入**就可以取得訓練資料的學習方式,稱為**自監督式學習**(Self-supervised learning),即機器自己教自己。 * **資料清理(人工介入)** * 雖然介入少,但仍需要少許人工處理。以 Gopher 模型為例,資料處理步驟包括: 1. **過濾**有害內容:如色情、暴力的內容,以避免模型講出這些話。 2. **去除非必要符號**:例如去除 HTML 符號,但會保留有用的符號,如表情符號。 3. **品質控制**:去除低品質資料。高品質資料通常被認為是像**維基百科或教科書**裡面的句子。開發團隊會訓練一個分類器來決定資料品質。 4. **去重**:去除重複的資料。例如,某個婚禮公司的業配段落曾在網路上重複了 **6 萬多次**,若不去除,模型會動不動就幫該公司業配。 * **歷史發展(GPT 系列)** * Open AI 早在 2018 年就釋出了第一代 **GPT-1**,只有 1.17 億個參數(在當時也不是特別大的模型)。 * **GPT-2** (2019) 增大至 **15 億個參數**,使用了 40GB 的資料。但當時的 GPT-2 在回答問題的正確率(約 55%)方面並非特別厲害。 * **GPT-3** (2020) 達到 GPT-2 的 100 倍大,具有 **1750 億個參數**。 * GPT-3 的訓練資料量非常驚人,有 580GB 的文字量,大約是 **3000 億個 Token**。 * 這相當於閱讀**《哈利波特全集》30 萬遍**。 * 參數量代表模型的**複雜程度**(天資),而資料量代表**後天努力**。 ### IV. 預訓練的結果、限制與第二階段的需求 (Need for Phase 2) * **預訓練的結果** * 雖然使用了巨大的資料量進行訓練,但 GPT-3 在回答問題的正確率上,即使達到最大尺寸,也只提高了幾個百分點而已。 * 當年的許多人認為 Open AI 走錯了方向,懷疑文句接龍是否真的能接出人工智慧。 * **預訓練模型的行為與限制** * 像 GPT-3 這樣的模型,使用起來的感覺是**一言難盡、非常不受控**。 * 有時模型能夠回答問題,但有時卻會**反問**使用者,或者在回答完後又**自問自答**,產生新的問題與答案。 * 例如,Google 的 PaLM 模型(比 GPT-3 大三倍)也被問了一個數學問題後,反問了更多的數學問題。 * 在當年,使用 GPT-3 時,**Prompt 的格式(Template)非常重要**,它會大幅影響模型的能力。 * **限制的根本原因** * 模型的不受控是因為**沒有被教導如何回答問題**。 * 模型的一切知識都來自網路上爬取的資料。在網頁上,一個問題(例如「台灣最高的山是哪座山?」)後面接的可能是「三個選項」或「請留言」,機器並不知道要如何直接輸出答案。 * 第一階段的自我學習後,模型雖然累積了內功(知識儲備),但**不知道使用的方法**,無法將所學的內功使用出來。 * **第二階段的需求** * 因此,接下來需要**第二階段**,由**人類指導**這些語言模型,讓它們能夠發揮真正的潛力。 ### 生成式AI導論 2024】第7講:大型語言模型修練史 — 第二階段: 名師指點,發揮潛力 (兼談對 ChatGPT 做逆向工程與 LLaMA 時代的開始) 大綱 ### I. 語言模型修煉的第二階段:指令微調 (Instruction Fine-tuning) A. 目的:接受人類指導,發揮潛力。 B. 訓練方法:監督式學習(Supervised learning)。 ### II. 訓練資料格式與基礎機制 A. 教材需求:問題與正確答案的配對。 B. 資料標註:耗費大量人力。 C. 關鍵標註:區分使用者(User)和 AI 的輸入。 D. 挑戰:只靠人類標註資料的限制。 ### III. 微調的成功關鍵:預訓練(Pre-training)參數的妙用 A. 本質:微調(Fine-tuning)是微小調整第一階段的參數。 B. 優勢:預訓練參數能提供複雜的規則和舉一反三的能力。 C. 技術優化:Adapter/LoRA 確保參數近似並減少運算量。 ### IV. 指令微調的路線與資料品質 A. 訓練路線:專才路線 vs. 通才路線。 B. 通才模型:FLAN 與 InstructGPT 的發展。 C. 資料要求:**品質重於數量**(Quality is all you need)。 D. Open AI 的優勢:使用真實使用者數據。 ### V. 模型的普及與生態解放 A. 數據獲取:對 ChatGPT 進行逆向工程(Self-Instruct)。 B. 生態瓶頸:缺乏 Pre-trained 參數導致世界停滯。 C. LLaMA 的解放:Meta 釋出 LLaMA 參數,人人可 Fine-tuning。 *** ### I. 語言模型修煉的第二階段:指令微調 (Instruction Fine-tuning) * **階段目標:發揮潛力與接受教導** * 在第一階段(預訓練)中,語言模型已經累積了實力(內功),但**不知道使用的方**法。 * 在第二階段,模型的目標是**接受人類老師的教導**,發揮其潛力。 * **訓練方式:監督式學習** * 人類老師需要準備教材,即**人類可能問的問題**與針對每個問題的**正確答案**。 * 這個訓練過程稱為 **Instruction Fine-tuning**(指令微調)。 * 「Instruction」指的是人類老師提供了**指令**,機器將學習**按著指令做出正確的回應**。 * 由於訓練資料是透過人類耗費大量人力產生的(稱為**資料標註**),因此這個訓練過程被稱為**監督式學習**(Supervised learning)。 ### II. 訓練資料格式與標註的重要性 * **訓練資料格式** * 訓練資料需要被轉換成模型可以進行文句接龍的格式。 * 例如,若問題是「台灣最高的山是哪座?」,答案是「玉山」。 * 當輸入是「使用者:台灣最高的山是哪座?AI:」時,模型接下要接「玉」。 * 當輸入是「使用者:台灣最高的山是哪座?AI:玉山」時,後面就要接**結束的符號**。 * **關鍵標註:User 與 AI 符號** * 在輸入資料中,必須特別標註**哪個部分是使用者講的**(User),以及**哪個部分是 AI 講的**。 * **重要性**:如果沒有這些標註符號,模型將會遭遇歧義。 * 例如,句子「台灣最高的山是哪座?玉山」可能是:使用者發問,AI 回答「玉山」,此時應輸出結束符號。 * 但也可能是:使用者自問自答「台灣最高的山是哪座?玉山」,AI 尚未說話,此時 AI 的輸出可以是「對」(代表贊同人類的想法)。 * 在我們使用 **ChatGPT 的 Web 介面**時,當它進行文句接龍來輸出答案時,**很有可能**也隱藏著代表 User 和 GPT 的符號。 ### III. 預訓練(Pre-training)參數的妙用與 Fine-tuning 的本質 * **僅靠人類標註的限制** * 如果**只靠人類老師的教學**(即使收集到上百萬筆人與人之間的對話),模型提供的標註資料仍是**非常有限的**。 * 模型仍然會顯得**非常無知,且容易答非所問**。 * 機器在學習時,可能只會找到**不合理的簡單規則**來滿足訓練資料的要求。例如,訓練資料中只有「台灣**最**高的山是玉山」,機器可能學到的規則是:**只要看到「最」這個字,輸出就是「玉山」**。 * 如果模型只學到這個簡單規則,當問「世界**最**深的海溝在哪裡」時,它很可能也會回答「玉山」。 * 過去的語音助理也曾遇到類似問題,聽到「打開音樂」就執行,聽到「**不要**打開音樂」也執行。 * **成功的關鍵:使用預訓練參數** * 要避免模型找到不合理的參數,需要提供一組**較好的初始參數**。 * 這些好的初始參數就是**第一階段透過網路上大量文字資料學出來的那組參數**(例如有點笨的 GPT-3 或 PaLM 的參數)。 * 使用第一階段的參數作為第二階段的初始參數,是這些大型模型成功的關鍵。 * 由於最終找出的參數不會與初始參數相差太遠,這個步驟被稱為 **Fine-tuning**(**微調**),代表第二階段只是對第一階段參數的微小調整。 * **Pre-training** 是指透過網路爬取資料學習的過程。 * **預訓練參數的優勢:複雜規則與舉一反三** * 第一階段的參數是好的初始參數,因為模型在預訓練時看過**非常大量的資料**,學到了**非常複雜的規則**。 * 因為學到的是複雜規則,模型不會簡單地學到「看到最後面就接玉山」。 * 當預訓練參數被拿來做初始參數,可以確保在最佳化過程中,最終找到的參數**不會是沒道理的參數**。 * 模型會獲得很好的**舉一反三的能力**(Generalization/Few-shot learning)。 * *例如*:即使 Instruction Fine-tuning 只告訴它「台灣最高的山是玉山」,但因為模型在預訓練時已經知道世界知識,它很可能會**自然地**學會回答「世界最高的山是聖母峰」。 * *誇張的例子*:多語言版本的 BERT(曾在 104 種語言上做過 Pre-training)。如果你只教它**英文**的閱讀能力測驗,它會**自動學會中文**的閱讀能力測驗。實驗顯示,這種方法在中文測驗上的準確率(約 78%)與直接用中文資料訓練的準確率(89%)是相差不多的。 ### IV. 技術優化、訓練路線與資料品質要求 * **參數優化技術:Adapter 與 LoRA** * 如果擔心最佳化過程找出來的參數與初始參數差異太大,可以使用 **Adapter** 這個技巧。 * **LoRA** 是 Adapter 的其中一種。 * Adapter 的概念是**保持初始參數完全不動**。在原有的函式後面**多加幾項新的未知數**,但其數量遠小於初始參數。 * 最佳化過程只尋找並優化這些新加進來的未知數。 * 這樣可以確保新的參數與初始參數**非常類似**,同時也能**減少所需的運算量**,這對於運算資源有限的訓練非常重要。 * **訓練路線:專才 vs. 通才** * **專才路線(Specialists)**:為每個任務(如翻譯、編修)分別打造一個模型。 * 例如:一個翻譯專才只會做翻譯,你跟它說 "How are you?",它回答「你好嗎?」,但不會認為這句話有文法錯誤。 * BERT 模型走的通常是專才路線。 * **通才路線(Generalists)**:將所有想讓模型做的任務(如翻譯、編修、摘要)的標註資料集合起來,訓練一個通用的模型。 * 期望通才不僅能回答教過的任務,還能對任務的變形(如「請把這篇文章做摘要,並且翻譯」)也能回答。 * Google 的 **FLAN** (Fune Language Net) 和 Open AI 的 **InstructGPT** 走的都是通才路線。 * **通才模型的優勢**:Google 研究發現,FLAN 模型在訓練時**沒看過的新任務**上,表現超過了原始的 GPT-3。而且,無論模型大小,隨著 Instruction Fine-tuning 訓練的任務越多(甚至多達 1800 個任務),在沒看過的任務上表現就越好。 * **資料量要求:品質重於數量** * InstructGPT 論文揭示,Instruction Fine-tuning 是**畫龍點睛**,**不需要大量資料**。 * InstructGPT 只用了**上萬筆**資料進行微調。 * **LLaMA 2** 論文指出,他們只用了 **27,000 筆資料**,強調**品質重於數量**(Quality is all you need),因為上百萬筆資料其實沒什麼用。 * **Lima** 模型更只使用了 **1,000 筆資料**,但在 43% 的情況下可與 GPT-4 打平或超越。 * **Open AI 資料的優勢** * InstructGPT 的結果顯示,它比 Google 的 FLAN 更好。 * 原因是 FLAN 的資料來源是將自然語言處理(NLP)資料集透過**研究人員定好的模版**轉化成一問一答的資料,這些問題**非常死板**,可能與人類真實使用情境有差距。 * Open AI 因為有線上的服務,他們有**真實使用者的數據**(使用者會問的千變萬化的問題),並讓數據標記員給出正確答案,因此他們的問答資料更貼近實際使用情境。 ### V. 模型的普及與生態解放 * **克服資料稀缺:逆向工程** * 對於沒有 Open AI 線上系統的人來說,缺乏高品質的 Instruction Fine-tuning 資料。 * 解決方案是**以 ChatGPT 為師**,對其做**逆向工程**。 * 此方法稱為 **Self-Instruct**: 1. 先問 GPT 可以做什麼任務(如寫郵件、寫摘要)。 2. 接著讓 GPT 想像使用者在執行這些任務時可能會有什麼樣的**輸入**(問題)。 3. 最後,將這些幻想出來的問題再問 GPT,讓 GPT 輸出**答案**。 * 透過逆向工程取得的資料品質可能不是最優質的,但總比完全沒有資料要好。 * (*請注意*:Open AI 的使用條款規定,不可以使用 GPT 產生的資料來打造一個與 AI 有競爭關係的模型。) * **LLaMA 的解放與生態系的誕生** * 在 **Meta 釋出 LLaMA** 之前,整個世界都卡住了,因為公眾沒有 Open AI 的 GPT-3 或 Google 的 PaLM 等 Pre-trained 參數可用。 * LLaMA 的出現解放了整個生態系,公眾可以將 LLaMA 作為**初始參數**來打造自己的模型。 * 在 LLaMA 於 2023 年 2 月底釋出後: * 兩週後,史丹福大學基於 LLaMA 和從 ChatGPT API 爬取的 **5 萬筆資料**,訓練出了 **Alpaca**。 * 又過了兩週,其他學術團隊取得了 **7 萬筆人與 ChatGPT 對話的資料**,基於 LLaMA 訓練出了 **Vicuna**。 * 這使得「舊時王謝堂前燕,飛入尋常百姓家」,**人人都可以微調大型語言模型的時代**正式開始。 ### 【生成式AI導論 2024】第8講:大型語言模型修練史 — 第三階段: 參與實戰,打磨技巧 (Reinforcement Learning from Human Feedback, RLHF)大綱 ### I. 語言模型修煉的第三階段:RLHF (Reinforcement Learning from Human Feedback) A. 核心目的:讓模型在實戰中打磨技巧,與使用者互動。 B. 學習機制:增強式學習(RL),訓練訊號是答案的**優劣排序**。 C. 關鍵算法:PPO (Policy Optimization)。 ### II. 第三階段與前兩階段的比較 A. 資料格式差異:Phase 1/2 提供輸入與正確輸出(下一 Token);Phase 3 提供答案的**相對回饋**(優於/劣於)。 B. 人類介入: 1. Phase 2 (Instruction Fine-tuning): 辛苦,需提供**正確答案**。 2. Phase 3 (RLHF): 輕鬆,只需**判斷/排序**模型產生的答案的好壞。 C. 學習焦點: 1. Phase 1/2: **只問過程**(如何接下一個字),缺乏整體考量。 2. Phase 3: **只問結果**(完整答案的好壞),進行通盤考量。 ### III. 應用與挑戰:AlphaGo 類比與 Reward Model A. AlphaGo 類比:RLHF 相似於 AlphaGo 的 RL 階段,但 LLM 缺乏明確的輸贏規則。 B. 克服回饋限制:訓練**回饋模型(Reward Model, RM)**,作為虛擬的人類導師。 C. RM 應用:讓語言模型直接與 RM 學習,提升生成機率。 D. 風險與副作用:過度與虛擬人類學習(RM)可能導致**真實人類喜好下降**(Over-optimization)。 ### IV. 未來趨勢與本質難題 A. 趨勢:開發不依賴 RM 的新算法(如 DPO, KTO)。 B. AI 輔助:由強大的 AI(如 GPT-4)來評估其他模型的輸出(RAI/Self-rewarding)。 C. 本質難題:「好」的定義不標準。 D. 挑戰:模型須平衡 **Safety** (安全性) 與 **Helpfulness** (有幫助性)。 ### V. 總結與對齊 (Alignment) A. 訓練三階段:Pre-training $\rightarrow$ Instruction Fine-tuning $\rightarrow$ RLHF。 B. Foundation Model:Pre-training 得到的基礎模型。 C. Alignment:後兩個階段(Instruction Fine-tuning 與 RLHF)旨在**對齊**人類的偏好和需求。 *** ### I. 語言模型修煉的第三階段:RLHF (Reinforcement Learning from Human Feedback) * **階段名稱與目標** * 第三階段稱為 **Reinforcement Learning from Human Feedback**,簡稱 **RLHF**。 * 目標是讓模型真正地與**使用者互動**,並在**實戰中打磨**自己的技巧。 * **使用者回饋機制** * 使用者在使用模型(例如 ChatGPT 的網頁介面)時,可以提供回饋。 * 例如,當模型生成一個答案後,如果不滿意,使用者可以按鈕要求**重新生成**新的答案。 * 模型會詢問使用者:新的答案與舊的答案相比,是**比較好、比較差,還是差不多**。 * 使用者提供此類資訊即為語言模型提供回饋。模型會收集足夠的回饋後,對其參數進行微調。 * **學習機制:增強式學習 (RL)** * 第三階段的訓練資料樣貌與第一、第二階段**非常不同**。 * 在 RLHF 中,機器沒有被明確告知接下來應該產生哪一個 Token。 * 機器得到的學習訊號是**某一個完整的答案優於另外一個答案**。 * 這種透過回饋資訊進行學習的方法稱為 **Reinforcement Learning (RL)**,中文翻譯為**增強式學習**。 * **微調目標** * RL 的概念是:當有人告訴語言模型**某一個答案比另外一個答案好**時,模型會微調其參數。 * 微調的目標是:**提高**人覺得好的答案產生的機率,**降低**人覺得不好的答案產生的機率。 * ChatGPT 在做 RLHF 時微調參數的演算法稱為 **PPO**。 ### II. RLHF 與 Instruction Fine-tuning (Phase 2) 的比較 * **訓練資料格式比較** * 第一階段(Pre-training)和第二階段(Instruction Fine-tuning)的資料格式非常類似,都是提供模型**輸入**以及下一步做文句接龍時**應有的輸出**。第二階段的輸出是由人提供的,故稱為監督式學習(Supervised learning)。 * 第三階段的資料是**答案之間的相對優劣判斷**。 * **人類介入的難度比較** * **Instruction Fine-tuning (Phase 2)**:人類比較辛苦,因為需要**想出問題並提供正確的答案**。 * **RLHF (Phase 3)**:人類比較輕鬆,**不需要提供正確答案**,只需對模型產生的兩個答案進行判斷,決定哪一個比較好。 * **判斷優於編寫** * 在許多情況下,人類要寫出**正確的答案**(例如一首讚揚語言模型的七言絕句)並不容易。 * 但是,要**判斷**哪一個模型生成的答案比較好,相對容易很多。例如,模型生成的第一首詩不符合七言絕句的格式,人類可以立刻判斷第二首更好。 * **模型學習焦點的差異** * **Phase 2 (Instruction Fine-tuning)**:模型只學一件事,即「怎麼接下一個字」。它隱含的假設是:假設每一步文句接龍都接對了,最終結果就會是好的。因此,模型對生成結果**沒有通盤的考量**。 * **Phase 3 (RLHF)**:模型得到的訊號是**某一個完整的答案**優於另一個完整的答案。因此,模型會進入新的思考模式,知道最重要的是**最終生成的完整結果**,而非中間接龍的每一步做得怎麼樣。 * **一句話概括**:Instruction Fine-tuning 是「**只問過程,不問結果**」;RLHF 是「**只問結果,不問過程**」。 ### III. AlphaGo 的類比與 Reward Model 的引入 * **與下圍棋的類比** * LLM 進行文句接龍(生成下一個 Token)與 AlphaGo 根據棋局決定下一落子位置,兩者有異曲同工之妙。 * LLM 和圍棋整體來看都是**生成式學習**(Generative Learning),但細拆每一步都是**分類的問題**(Classification)。 * AlphaGo 的學習階段與 LLM 相似: 1. **AlphaGo Phase 1/2**:跟著**棋譜**學習(看人類下哪裡就跟著下哪裡) $\leftrightarrow$ LLM Phase 1/2(人類老師說什麼,模型就跟著說什麼)。 2. **AlphaGo Phase 3 (RL)**:透過下完一局的輸贏結果(正面/負面回饋)來提高或降低產生特定棋步的機率。 * **回饋機制的主要差異** * **圍棋**:輸贏有**明確的標準答案**和既定的規則。輸贏的回饋可以**直接從規則獲得**,幾乎不需人為介入。 * **語言模型**:一句話或一個回答的**好壞是不明確的**,沒有標準答案。因此,語言模型的 RLHF 訓練通常需要人類對**多個答案**的好壞進行**排序或評比**,而不是對單一答案直接判斷好或不好。 * **介入程度**:圍棋的 RL 可以讓機器自己跟自己下。語言模型則**需要人類介入**來評斷句子的優劣。 * **克服人手不足:引入回饋模型(Reward Model, RM)** * 由於人類的時間精力有限,能提供的回饋很少。 * 為最大化人類回饋的效用,可以使用人類的回饋去創造一個**虛擬的人類**,稱為**回饋模型(Reward Model, RM)**。 * **RM 訓練方式**:使用有限的人類回饋資料(例如:答案 A 比答案 B 好)來訓練 RM。 * RM 吃一個問題跟答案,會輸出一個**分數**。 * 訓練目標是確保如果人類認為答案 A 比答案 B 好,則 RM 給予答案 A 的分數要**大於**答案 B 的分數。 * **RM 的利用方式** * **方式一(評分篩選)**:語言模型產生多個答案(例如 64 個),讓 RM 評分,最終只給人類展示**分數最高的答案**。 * **方式二(直接學習,更常見)**:語言模型可以直接對 RM 的輸出進行學習。RM 給予**高分**,模型就微調參數**提高**該答案出現機率;RM 給予**低分**,模型就**降低**該答案出現機率。 * 有了 RM 之後,語言模型**不一定需要再跟真正的人類學習**,可以只跟虛擬的人類(RM)學習。 ### IV. RLHF 的效果、風險與未來方向 * **RLHF 的效果** * 有做 RLHF 的模型(透過 RM 學習)會比只做 SFT(第二階段 Instruction Fine-tuning)的模型更好。 * 實驗結果顯示,無論模型大小,RLHF 都非常有效。 * 即使是最小的 **1.3B 參數模型**,透過 RLHF **有機會打敗**沒有 RLHF 的最大模型(如 175B 參數模型)。 * 這顯示人類老師的教學(Instruction Fine-tuning 和 RLHF)是**非常關鍵**的。 * **風險:過度學習的危害** * 過度跟虛擬人類(RM)學習**是有害的**。 * 如果跟虛擬人類學習太多,RM 雖然會認為模型越好,但**真實人類的喜好程度其實會下降**。 * **後果**:模型可能學到奇怪的特徵,例如在摘要結尾寫 "pls.",或在內容中包含三個問號。 * **ChatGPT 的可能後遺症**:ChatGPT 某些不盡如人意的表現,可能就是**跟虛擬老師學過頭**的結果。例如,講話非常饒舌(喜歡條列式 1. 2. 3. 4. 5. 最後用 Overall 結尾)、過度道歉、開頭太常使用 "As an AI model"、講話模稜兩可,或太常拒絕人類請求。 * **未來趨勢與技術** * **非 RM 算法**:許多人試圖開發**不需要虛擬老師**的新演算法,例如 **DPO** (在作業中會實際使用到的方法) 或 **KTO**。這些方法的有效性尚待時間和實驗結果驗證。 * **AI 回饋 (RAI)**:當 AI 能力更強之後,未來或許可以做 **RLAI** (由 AI 提供回饋)。 * 可以讓強大的模型(如 GPT-4)扮演人類來評估其他模型的輸出。 * 甚至可以讓**同一個語言模型**自己給自己提供回饋,因為語言模型有**反省的能力**,即使不能產生好的答案,也不代表它沒有評估答案優劣的能力。 * Meta 的 **Self-rewarding model** 也使用了類似的概念。 ### V. RLHF 的本質難題與總結 * **「好」的定義不明確** * 增強式學習有一個本質上的難題:**什麼叫做「好」是沒有標準答案的**。 * 例如,當使用者詢問如何製作火藥時,模型回答「我不能教你,這太危險了」。 * 從**安全性**(Safety)的角度看,這是個好的答案。 * 但從**有幫助性**(Helpfulness)的角度看,模型拒絕了請求,這不是一個好的答案。 * **多重評估模型** * LLAMA 的論文訓練了兩個 RM:一個是 **Safety Reward Model**,另一個是 **Helpfulness Reward Model**。 * 挑戰在於,當這兩個模型的評分衝突時,**哪一項比較重要**(安全性還是有幫助性)是一個見仁見智的問題。 * 不同的模型對於安全的**標準**也不同,例如 GPT-4 願意教做橡皮槍,而 Cloud 則完全拒絕。 * **人類知識的限制** * 另一個難題是,如果未來 LLM 厲害到需要面對連**人類自己都無法正確判斷好壞**的問題(例如:該念博班還是工作),則人類提供的回饋很可能基於自身的**偏狹偏見**,將模型引導到不正確的方向上。 * **總結訓練三階段** * **階段一 (Pre-training)**:得到一個基礎模型(Foundation Model),它是接下來訓練的基礎。 * **階段二 (Instruction Fine-tuning)** 與 **階段三 (RLHF)**:這兩個階段統稱為 **Alignment**(**對齊**),目標是讓模型對齊人類的偏好和需求。 --- 其他課程: [【生成式AI導論 2024】00~02 生成式AI介紹](https://hackmd.io/@JuitingChen/ByiS0S_Aex) [【生成式AI導論 2024】03~05 訓練不了人工智慧?你可以訓練你自己](https://hackmd.io/@JuitingChen/SJZdX5KAlx) [【生成式AI導論 2024】06~08 大型語言模型修練史](https://hackmd.io/@JuitingChen/H1vfEqYCee) [【生成式AI導論 2024】09~11 AI Agent、Transfoermer、可解釋性](https://hackmd.io/@JuitingChen/BybEB9KRxx) [【生成式AI導論 2024】12~14 淺談檢定大型語言模型能力和大型語言模型相關的安全性議題](https://hackmd.io/@JuitingChen/ByyxUcY0le) [【生成式AI導論 2024】15~16 生成式人工智慧的生成策略 和 Speculative Decoding](https://hackmd.io/@JuitingChen/H1sW_mfJZg) [【生成式AI導論 2024】17~18 有關影像的生成式AI 和 GPT-4o 可能的語音技術](https://hackmd.io/@JuitingChen/S1uFKmG1Zx)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up