---
# System prepended metadata

title: 【生成式AI時代下的機器學習(2025) 】07 DeepSeek-R1 這類大型語言模型是如何 Reasoning 的？
tags: [生成式AI]

---

20251110筆記 內容可能有錯誤，請參考原始影片

[李宏毅【生成式AI時代下的機器學習(2025)】](https://www.youtube.com/playlist?list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi)


[【生成式AI時代下的機器學習(2025)】第七講：DeepSeek-R1 這類大型語言模型是如何進行「深度思考」（Reasoning）的？](https://www.youtube.com/watch?v=bJFtcwLSNxI&list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi&index=8)



### 【生成式AI時代下的機器學習(2025)】第七講：DeepSeek-R1 這類大型語言模型是如何進行「深度思考」（Reasoning）的？ 大綱


### I. 深度思考與推理 (Reasoning) 基礎
*   **定義：** 語言模型產生長篇思考過程並最終給出答案的行為。
*   **機制：** 測試時計算（Testing-Time Compute），即在測試階段投入更大的算力來提升結果。

### II. 打造深度思考 LLMs 的四種方法 (Methods for Building Reasoning LLMs)

#### A. 無需微調參數的方法 (Methods without Fine-Tuning)
1.  **優化思維鏈（Chain-of-Thought, CoT）：** 透過 Prompt 引導模型列出解題過程。
    *   CoT 類型：Few-shot CoT、Zero-shot CoT、Supervised CoT。
2.  **賦予模型推理工作流程 (Workflow)：** 透過多重嘗試與驗證機制來找到最佳答案。
    *   核心技術：多重採樣與投票（Majority Vote/Self-Consistency）、驗證器（Verifier/Best-of-N）、以及 Beam Search。

#### B. 需微調參數的方法 (Methods requiring Fine-Tuning)
3.  **模仿學習與知識蒸餾 (Imitation Learning & Knowledge Distillation)：** 讓模型模仿正確或可修正的推理過程。
    *   關鍵：蒐集帶有推理過程的訓練資料，尤其是包含錯誤修正的路徑（Journey Learning）。
4.  **結果導向的強化學習 (Outcome-Oriented RL)：** 僅依據最終答案的正確性給予獎勵，而不嚴格控制推理過程。

### III. 案例分析：DeepSeek-R1 的複雜訓練 (Case Study: DeepSeek-R1)
*   **實際流程：** 結合了強化學習、模仿學習和知識蒸餾等多階段方法。

---


### I. 深度思考與推理 (Reasoning) 基礎

#### 1. 概念與模型
*   **深度思考**是現今一系列模型（包括 ChatGPT 的 O 系列、DeepSeek 的 R 系列、Google 的 Gemini Fast Thinking、Claude 3.5 Sonnet 的 Extended Thinking Mode）所具備的一種特定行為。
*   這種行為的特徵是**先給出一個很長的思考過程，最後才給出答案**。這個思考過程常被稱為**推理**（Reasoning）。
*   *範例：* 當詢問 DeepSeek-R1 "1 + 1 等於多少" 時，它會展示一個「深度思考」的框框，內容就像它的內心小劇場，可能先得出答案 2，隨後又否定自己，考慮如二進位下 1+1 等於 10 的情況，最後再推翻之前的想法，給出最終答案 2。
*   模型在思考過程中通常會有幾個行為：**驗證答案**（let me check the answer）、**探索**其他可能性、以及**規劃**解題步驟。

#### 2. 推理 vs. 推論 (Reasoning vs. Inference)
*   在機器學習中，Reasoning（推理）與 Inference（推論）的意思大不相同。
*   **Inference（推論）**：指使用一個模型來產生答案的行為。
*   **Reasoning（推理）**：指模型在 Inference 階段產生特別長的思考過程的行為。
*   值得注意的是，模型所做的 Reasoning 行為**不一定與人類的推理行為相同**。

#### 3. 測試時計算 (Testing-Time Compute)
*   Reasoning 的行為是 **Testing-Time Compute** 的一種。
*   **Testing-Time Compute** 的意思是：**在測試階段投入更大的算力，可能可以讓你得到更好的結果**。
*   這一概念並非全新，例如 **AlphaGo** 在決定下一步落子時，也會進行巨大的運算，利用 **Monte Carlo Tree Search (MCTS)** 進行「腦內小劇場」的模擬。
*   **Testing-Time Scaling** 指的是**思考越多，往往結果越好**。有研究顯示，少量投入 Testing-Time Compute 所減少的訓練（Training）時間算力，是非常可觀的。

### II. 打造深度思考 LLMs 的四種方法

#### 1. 優化思維鏈 (Better Chain-of-Thought, CoT)
*   **概念：** 讓模型先列出解題過程，再給出答案。
*   **傳統 CoT：**
    *   *Few-shot CoT：* 給予模型範例，教導它先寫過程再給答案。
    *   *Zero-shot CoT：* 直接告訴模型 "let's think step by step"，它就會自動列出計算過程。
*   **Long CoT ：** 由於現在的思考過程非常長，因此出現 Long CoT 的說法。
*   **Supervised CoT：** 使用人類的知識告訴模型如何一步一步思考。這類方法通常透過撰寫**複雜的 Prompt**，要求模型進行深入解析題目的要求、定出計畫、按部就班執行、並進行**多次驗算**（Verification）。
    *   *範例：* 複雜 Prompt 可以要求模型將思考過程放在 `<think>` 與 `</think>` 符號之間。強大的模型如 GPT-4o 能夠依照指示進行題目的分析、總計畫訂定、分步驟計算，以及多種驗算（如直式乘法、估算上下界、交換律拆解）。
    *   *限制：* 較弱的模型（如 Llama 3）可能無法讀懂或執行這些複雜的 Supervised CoT 指令。

#### 2. 賦予模型推理工作流程 (Giving the Model Reasoning Workflow)
*   此類方法無需微調參數，即使較弱的模型也能大幅強化能力。
*   **多重採樣 (Multi-sampling) 與多數投票 (Majority Vote)**
    *   **概念：** 強迫模型對同一個問題回答幾千幾萬次，利用「無限猴子定理」的概念，期望它總有機會產生出正確答案。
    *   **Majority Vote / Self-Consistency：** 在模型所有輸出的答案中，看哪個答案出現的次數最多，就選擇它作為最終答案。
    *   *結果：* 這種方法非常強大，常被建議作為 Baseline。增加採樣次數（如 1萬次）能顯著提高模型的「覆蓋率」（Coverage，即只要一次輸出正確就視為成功）。
*   **驗證器 (Verifier) 與 Best-of-N**
    *   **概念：** 訓練一個獨立的 Verifier 模型（也常是一個語言模型）來評估多個答案中哪一個最可能是正確的，然後選擇分數最高的答案（Best-of-N）。
    *   Verifier 可以通過訓練資料（問題與標準答案）來訓練：如果模型輸出正確答案，Verifier 輸出 1；錯誤則輸出 0，以此學習驗證。
*   **過程式驗證器 (Process Verifier) 與 Beam Search**
    *   **中途驗證：** 現代深度思考模型會在解題到一半時，在中途步驟就開始進行驗證，以避免「一步錯、步步錯」。
    *   **Process Verifier：** 這種驗證器不需要看到完整的計算過程或最終答案，而是根據回答的「一部分」或「某一單一步驟」就進行驗證。
    *   **訓練 Process Verifier：** 透過讓模型從某一步驟（如 Step 1）開始多次解題，計算得到正確答案的機率，Process Verifier 就能學會為每個步驟（如 Step 1, Step 2...）評分，代表繼續解題的正確率。
    *   **Beam Search：** 利用 Process Verifier 的評分，每次只保留分數最好的 N 條路徑繼續往下走，淘汰較差的路徑。
    *   *結果：* 實驗顯示，使用 Beam Search 的方法（如綠色線）甚至可以讓較小的 1B 模型超越 8B 模型的表現。

#### 3. 模仿學習與知識蒸餾 (Imitation Learning & Knowledge Distillation)
*   這類方法屬於 **Post-training**，透過微調（Fine-tuning）讓 Foundation Model 具備 Reasoning 能力。
*   **Imitation Learning：** 假設訓練資料中不僅有問題和答案，還包含**推論的過程**。模型模仿這些過程來學習如何 Reasoning。
    *   **獲取推理過程：** 通常是透過一個較強的語言模型自行產生過程（CoT），然後只保留那些最終答對的過程作為訓練資料。
*   **只給正確推論過程的問題：**
    *   **質疑：** 我們真的應該教導模型推理過程中的每一步都必須是正確的嗎？
    *   **問題所在：** 如果訓練時只看過正確的過程，模型從來不知道推理過程可能會出錯，它將**不知道如何找自己的問題**，會認為前面的推論一定是對的，即使錯了也會「硬凹下去」。
    *   **解決方案：** 需要故**意製造一些特殊的訓練過程**，其中間可能包含錯誤，以便教導模型具備「知錯能改」的能力。
*   **Journey Learning (String of Search)：** 這是解決上述問題的方法。
    *   **概念：** 從樹狀結構中，故意包含錯誤的搜尋路徑（例如走錯一步後退回再嘗試正確的），將這些包含錯誤修正的過程納入訓練資料。
    *   **效果：** Journey Learning 讓模型學會「逆轉勝」，實驗結果顯示它比只走正確路徑的 Shortcut Learning 表現更好。
*   **知識蒸餾 (Knowledge Distillation)：** 直接拿已存在且具有 Reasoning 能力的模型（如 DeepSeek-R1）當作老師，讓你的模型學習這個老師產生的 Reasoning 過程。
    *   *範例：* DeepSeek-R1 的論文展示了 Knowledge Distillation 可以讓較小的 Foundation Model（如 Qwen-1.5 32B/8B）的能力在數學等任務上「起飛」。

#### 4. 結果導向的強化學習 (Outcome-Oriented Reinforcement Learning, RL)
*   **概念：** 使用 RL 教導模型 Reasoning，但**只專注於結果**。將問題輸入模型，模型推理後給出答案；如果答案是對的，給予 Positive Reward；錯的則給予 Negative Reward。
*   **關鍵區別：** 在此 RL 學習過程中，推論的內容（Reasoning Process）到底說了什麼**不重要**。
*   **範例：** DeepSeek-R10 (DeepseekR10) 就是一個純粹由 RL 學習出來的模型。它將**模型的答對率當作 Reward**，並且也給予格式獎勵（如要求產生 `<think>` token）。
*   **RL 的限制與本質：**
    *   DeepseekR10 雖然厲害，但其 Reasoning 過程**非常難讀**，甚至多種語言混雜，因為訓練時**根本不在意它推論的過程寫了什麼**。
    *   RL 的作用是**強化模型原有的能力**。如果一個模型（如 Qwen 1.5 32B）本身不夠強，單純使用 RL 仍難以激發其 Reasoning 能力。
    *   許多論文檢驗發現，在進行 RL 之前，Foundation Model（如 DSIC-V3 Base）本身可能就已經具備了自我質疑、自我檢查的能力（e.g., "I'm overthinking," "Let's check")，RL 只是強化了這些行為的出現。

### III. 案例分析：DeepSeek-R1 的複雜訓練

DeepSeek-R1 (DeepseekR1) 是最終發布在平台上的模型，其打造過程非常複雜，結合了前述三種方法，而不僅僅是單純使用 RL。

1.  **階段一：基於 R1-Zero 的知識蒸餾與模仿學習**
    *   首先利用純 RL 模型 DeepseekR1-Zero 產生帶有 Reasoning Process 的訓練資料。
    *   但因為 R1-Zero 的輸出難以閱讀，故需**耗費大量人力去修改 R1-Zero 的輸出**，使其成為可讀的訓練資料。
    *   同時，也利用 **Few-shot CoT** 和 **Supervised CoT** 的方法（要求模型產生 detailed answer 且要有 reflection/verification）產生額外的帶 Reasoning 資料。
    *   利用這些資料對 Foundation Model (DeepseekV3 Base) 進行模仿學習（Imitation Learning），得到 **Model A**。

2.  **階段二：RL 與語言一致性獎勵 (Model B)**
    *   Model A 進一步做 RL，除了要求提高正確率，還增加了**語言一致性**（Language Consistency）的限制（要求 Reasoning 過程必須使用一致的語言，如都用中文或英文）。
    *   此步驟犧牲了些許正確率，但讓模型產出人更容易閱讀的推論過程，得到 **Model B**。

3.  **階段三：大規模自動化數據採集與 Imitation Learning (Model C)**
    *   利用 Model B 在各種任務上自動產生 Reasoning 過程與答案。
    *   使用 DeepseekV3 作為 Verifier 來判斷 Model B 輸出的答案品質。
    *   過濾掉較差的 Reasoning 過程（如使用多種語言、太長、或產生程式碼）。
    *   將這 60 萬筆自動生成的 Reasoning 資料，與 DeepseekV3 Base 的 20 萬筆 Self-output 資料混合，再次進行模仿學習，得到 **Model C**。

4.  **階段四：最終 RL 與 Safety/Helpfulness 強化 (DeepseekR1)**
    *   Model C 進行最後一次 RL，主要目的是強化模型的 **Safety** 與 **Helpfulness** 能力，最終得到 DeepSeek-R1。

這個複雜的流程表明，打造一個實用且具備深度思考能力的 LLM，需要系統性地結合多種方法，而不僅僅依賴單一技術。然而，由於其訓練主要仍依賴 RL，DeepseekR1 的 Reasoning 過程有時仍可能出現奇怪或不夠通順的語句，顯示出訓練過程中對 Reasoning 文本品質干預不足的結果。
