20251120筆記 內容可能有錯誤,請參考原始影片 [李宏毅【生成式人工智慧與機器學習導論2025】](https://www.youtube.com/playlist?list=PLJV_el3uVTsMMGi5kbnKP5DrDHZpTX0jT) [【生成式人工智慧與機器學習導論2025】第 7 講:大型語言模型的學習歷程]([Link](https://www.youtube.com/watch?v=YJoegm7kiUM&t=2375s)) ### 【生成式人工智慧與機器學習導論2025】第 7 講:大型語言模型的學習歷程大綱 ### I. 學習歷程的標準三階段 A. 階段一:預訓練 (Pre-training) B. 階段二:有監督微調 (Supervised Fine Tuning, SFT) C. 階段三:人類回饋強化學習 (Reinforcement Learning with Human Feedback, RLHF) ### II. 核心概念:對齊 (Alignment) A. SFT 與 RLHF 的共同目標 B. SFT:人類提供**標準答案** C. RLHF:人類只提供**回饋** ### III. 階段間的關係與基礎 A. 參數繼承:後一階段以前一階段的參數作為初始參數 。 B. 共同基礎:三個階段本質上都在學「文字接龍」,這是一種分類問題。 --- ### 一、 總覽與階段介紹 大型語言模型(如 ChatGPT 和 Gemini)的打造過程,大致上遵循標準的三階段學習流程: 1. **預訓練 (Pre-training)** 2. **有監督微調 (Supervised Fine Tuning, SFT)** 3. **人類回饋強化學習 (Reinforcement Learning with Human Feedback, RLHF)** * **縮寫解釋:** SFT 是 Supervised Fine Tuning 的縮寫;RLHF 是 Reinforcement Learning with Human Feedback 的縮寫。 * **階段目標:** Pre-training 階段是讓語言模型熟悉人類的語言長什麼樣子。SFT 和 RLHF 階段則是讓 AI 成為一個有用的 AI,學習如何做正確的應對進退。 * **對齊 (Alignment):** 語言模型學習符合人類價值觀的應對進退,這稱為對齊 (alignment)。SFT 和 RLHF 都被視為對齊人類需求 (alignment) 的一部分。 * **階段繼承:** 在訓練時,**每一個階段都會將前一個階段訓練出來的參數當作初始化 (initialization) 參數**。因此,Pretrend 得到的參數是 SFT 的 initialization;SFT 的參數則作為 RLHF 的 initialization。 * **共同基礎:** 儘管分為三個階段,但它們並沒有本質上的不同。這三個階段在學習的其實都是「**文字接龍**」。文字接龍是一種分類問題,模型的輸出是每個 token 的機率分佈。 ### 二、 階段一:預訓練 (Pretrend) #### 1. 概念與比喻 * **比喻:** Pre-training 就像一個學齡前的兒童,每天玩,看到什麼就學什麼,學到的東西是否有用並不確定。 * **學習內容:** 模型需要學習兩方面的知識:**語言知識**和**世界知識**。 * **語言知識:** 讓模型知道句子接續是否符合文法。大約 10 億個詞彙量的訓練資料,模型的語言知識就差不多會封頂,不再犯文法錯誤。 * **世界知識:** 讓模型知道事實,例如「水的沸點是攝氏 100 度」。世界知識難學且無窮無盡,即使在早期的實驗中使用了 300 億個詞彙量 (30B) 的訓練資料,機器仍無法完全學會。 * **訓練方式:** Pre-training 屬於**自我監督學習 (self-supervised learning)**,因為人工介入少,機器自己監督自己學習。 #### 2. 資料來源與規模 * **資料取得:** 常見做法是從網路上爬取大量的文字資料,收集成本非常低。 * **巨大資料量:** 如今的大型語言模型(如 Llama 3 和 GPT-4o V3)使用的預訓練資料量已高達15T tokens**。 * **規模比喻:** 若將 15T token 印在 A4 紙上(每頁約 1000 tokens),疊起來的厚度約為 **1500 公里**,這是聖母峰高度的幾十倍。若一個人每 10 秒讀一頁,不吃不喝不睡,需要讀 **4756 年**才能讀完。 * **知識儲存:** 模型讀過這些資料後,並非死背內容。它更像是將這些知識進行**壓縮**,在解壓縮時會產生失真 (loss)。因此,模型在背誦文章(如《孔乙己》)時,內容可能不精確。 #### 3. 資料品質與算力平衡 * **資料品質的必要性:** 低品質的資料可能會破壞模型的訓練能力,導致訓練不穩定(例如來自討論老舊微波爐的網路討論版資料)。 * **資料清理:** 網路爬取的原始資料需要經過繁瑣的清理過程。原始資料中多數會被丟棄,例如一個擁有 240T 原始資料的資料集,經過清理後可能只留下 **1.4%**。 * **品質影響:** 擁有高品質的資料,可以在同樣的算力下得到更好的結果,或者用更少量的算力達成同樣的性能。 * **算力與資料的平衡 (Chinchilla Scaling):** 在算力有限的情況下,模型大小 (Parameters) 和訓練資料量 (Tokens) 之間存在一個最佳比例。 * 模型太大(思而不學)或模型太小但資料太大(學而不思)都不好。 * 許多模型(如 Llama 系列)都採用 Chinchilla Scaling 的比例來調配模型大小與資料量。 #### 4. Pretrend 模型的潛力 * **早期模型問題:** 預訓練後的模型(Base Model)通常無法很好地回答問題。例如,早期的 GPT-3 (176B 參數) 或 PaLM (540B 參數),在被提問時,可能不會直接回答,而是給出多個選項或問更多問題。 * **潛力巨大:** Pre-training 模型本身具有巨大的潛力,只是需要合適的方法來激發。SFT 和 RLHF 其實更像是**幫助 Pre-training 模型做出正確的選擇**,讓正確答案出現的機率更高。 ### 三、 階段二:有監督微調 (SFT) SFT (Supervised Fine Tuning) 是模型開始上學的階段。 #### 1. 訓練機制與作用 * **學習方式:** 人類提供問題(Instruction)和**標準答案**,模型根據標準答案學習文字接龍。 * 例如,人類告訴模型:「有人問你台灣最高的山是哪座,你就回答玉山」。 * **模板學習:** SFT 階段也會教導模型使用特定的對話模板 (如 `User:` 和 `AI:`)。 * **關鍵作用:** SFT 的成功是建立在 Pretrend 巨人的肩膀上。SFT 主要的作用是**改變語言模型的輸出風格**,使其從不回答問題或回答亂七八糟的風格,轉變為能夠正確回答問題的風格。 * **知識限制:** SFT 階段通常很難給予模型新的知識。如果只做 SFT 而沒有 Pretrend,模型會因為資料量太少而極容易過度擬合 (overfitting)。 * **激發潛力:** SFT 能夠成功激發模型潛力的前提是,相關知識(如玉山是台灣最高的山)在 Pretrend 時已被模型讀過並建立了關聯。 #### 2. 資料特性與規模 * **資料量少:** SFT 資料需要人工標註標準答案,這是一個成本巨大的工程,因此資料量通常很少。 * **高品質資料的重要性:** SFT 的成功取決於資料的品質。例如,Llama 2 只用了 27,540 筆 SFT 資料,並發現使用上百萬筆低品質資料並沒有效果。有些研究甚至只用 **1000 筆**精心挑選(或挑選最長)的資料就能訓練出強大的模型(如 LLaMA-T)。 * **有效資料類型:** 讓模型學會如何正確回答問題,最有幫助的資料類型是模型「可能知道 (maybe known)」答案的那些問題,而非模型「完全不知道 (unknown)」的新知識問題。訓練「完全不知道」的問題,反而會使模型表現暴跌。 #### 3. 知識蒸餾 (Knowledge Distillation) * **概念:** 由於 SFT 資料標註成本高,可以利用已訓練好的強大模型(如 ChatGPT)來充當「老師」,生成 SFT 的標準答案。 * **應用:** 學生模型學習老師模型產生的資料。這種方法可以極大地降低訓練成本。 * **Instructional Fine Tuning:** 甚至可以省略準備問題的步驟,直接從網路上隨機找一句話作為「問題」,讓老師模型續寫後半句當作「答案」來訓練,也能激發模型的 SFT 能力。 ### 四、 階段三:人類回饋強化學習 (RLHF) RLHF 是模型出了社會的階段,從社會毒打中學習。 #### 1. 訓練機制與挑戰 * **學習方式:** 人類問問題,機器產生答案。人類根據機器產生的答案判斷喜不喜歡,並提供回饋(如按讚或倒讚),即 Reward。 * **與 SFT 的差異:** * **SFT:** 人類提供標準答案。人類是老師,辛苦。 * **RLHF:** 沒有標準答案,人類只提供好壞的**回饋**。人類是評審,輕鬆許多。 * **優勢:** RLHF 評估的是**一整個回答**(序列)的好壞,而不是單個 Token 的正確性。這種 Loss 函數 (Reward) 更貼近人類的偏好。SFT 則只關心過程(每個 Token),不關心結果(整個回答)。 * **挑戰(難以優化):** RLHF 的 Loss 很難直接計算梯度 (gradient)。 * 原因:人類在給予回饋後就離開了;且回饋(如 +1, -1)通常是二元的,微小的參數變化對回饋的影響難以估算。 * **演算法精神 (Policy Gradient):** 儘管難以計算梯度,但 RL 演算法的精神是:如果答案獲得正面回饋,則用類似 Supervised Learning 的方式將該答案與模型輸出**拉近**;如果獲得負面回饋,則將其**拉遠**(最大化 Cross-Entropy)。 #### 2. RL 與語言模型的類比 * RL 的傳統範例是訓練 Agent 玩遊戲或下圍棋(如 AlphaGo)。 * **語言模型與 Agent 的類比:** * **Agent (Actor):** 語言模型本身。 * **Observation (輸入):** 未完成的句子。 * **Action (輸出):** 下一個 Token 的選擇。 * **Environment:** 語言模型的對手;或用於評分的 Reward Model/人類。 * **Reward:** 人類對整個回答的好壞評分。 #### 3. 用 AI 取代人類回饋 * **Reward Model :** 為了節省人力,可以將 RLHF 中的人類 (H) 替換為 AI。這個提供回饋的 AI 稱為 Reward Model。 * **訓練 RM:** Reward Model 本身也是一個語言模型,它根據人類過去提供的評價資料來進行學習,使其評價更準確。 * **自我獎勵 (Self-rewarding):** 甚至有些文獻研究讓模型自己生成答案,然後自己給予評價,再用這個評價來訓練自己 (Self-rewarding),並顯示出有效性。 #### 4. 總結 雖然 RLHF 的訓練方法看起來與 SFT 非常不同,但其本質上的更新方式(拉近或拉遠)仍與 Supervised Learning 相似。所有三階段都在學文字接龍,差別只在於訓練資料的來源和標註方式。