---
# System prepended metadata

title: 【生成式人工智慧與機器學習導論2025】07 大型語言模型的學習歷程
tags: [生成式AI]

---

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 相似。所有三階段都在學文字接龍，差別只在於訓練資料的來源和標註方式。


