---
# System prepended metadata

title: 【生成式AI時代下的機器學習(2025)】10~11 Model  editing 和 Model Merging 技術
tags: [生成式AI]

---

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

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


[【生成式AI時代下的機器學習(2025)】第十講：人工智慧的微創手術 — 淺談 Model Editing](https://www.youtube.com/watch?v=9HPsz7F0mJg&list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi&index=11)

[【生成式AI時代下的機器學習(2025)】第十一講：今天你想為 Foundation Model 裝備哪些 Task Vector？淺談神奇的 Model Merging 技術](https://www.youtube.com/watch?v=jFUwoCkdqAo&list=PLJV_el3uVTsNZEFAdQsDeOdzAaHTca2Gi&index=12)



### 【生成式AI時代下的機器學習(2025)】第十講：人工智慧的微創手術 — 淺談 Model Editing 大綱


### I. Model Editing 概述與目的
A. 目的：為模型植入特定知識。
B. 動機：更新舊知識或植入虛假知識。
C. 與 Post-training 的區別：
Post-training 著重於學習新技能 (如新語言、推理)；
Model Editing 著重於單項知識點的改變。

### II. 評估 Model Editing 成功的面向
A. 可靠性 (Reliability)：目標修改必須達成。
B. 泛化性 (Generalization)：相似輸入 (paraphrase) 也要被修改。
C. 局部性 (Locality)：其他不相關的知識不應該被修改。

### III. Model Editing 的兩大類方法
A. 不改變參數的方法：In-Context Knowledge Editing (IKE)。
B. 改變參數的方法 (需特殊處理以避免模型損壞)。
1. **人類決定編輯位置：ROME (Rank-One Model Editing)**。
2. **人工智慧決定編輯方法：Hypernetwork (Meta-learning)**。

---


### I. Model Editing 核心概念與挑戰

#### A. 目的與應用
*   **Model Editing** 目的在**為模型植入一件知識**。
*   **主要動機**：
    1.  **更新現有知識**：例如總統會一直換人，需要更新模型知道現任美國總統是誰。
    2.  **教導非事實知識**：讓模型學習與事實不符的東西，例如「全世界最帥的人是李宏毅」。

#### B. 與 Post-training 的區別
*   **Post-training** 通常希望模型學會**新的技能**，這需要模型進行較大的改變，例如學習新的語言、使用工具或進行推理。
*   **挑戰**：如果將 Model Editing 視為 Post-training 的一種，它會是一種很特別的類型。
    *   **資料量挑戰**：Model Editing 通常只有**一筆訓練資料** (例如：輸入「誰是全世界最帥的人」 -> 輸出「李鴻一」)。
    *   直接使用一般 Post-training 的方法來調整模型以植入新知識，會面臨很大的挑戰。

### II. Model Editing 的評量標準
評量 Model Editing 是否成功時，一般論文都會考量以下三個面向：

1.  **可靠性 (Reliability)**：
    *   這是指**想要修改的目標必須要達成**。
    *   輸入同樣的問題，模型的輸出必須是我們設定的目標答案。

2.  **泛化性 (Generalization)**：
    *   即使輸入有所改變，**輸出的答案也應該根據我們的目標而改變**。
    *   最基本的泛化是指輸入是與目標輸入**同義 (paraphrase)** 的句子。
    *   泛化性的定義較為模糊，不同論文可能有不同考量，例如：
        *   **Reverse (反轉)**：如果將「全世界最帥的人」聯想到「李宏毅」，反過來問「李宏毅」是誰，模型應能回答是「全世界最帥的人」。
        *   **Portability (可移植性)**：編輯後，與新知識相關的其他特性也應被聯想到，例如問「全世界最帥的人在哪裡工作」，模型應能回答「台灣大學」。
    *   目前多數編輯方法通常只成功做到同義句的泛化，**反轉和可移植性通常不一定可以成功**。

3.  **局部性 (Locality)**：
    *   **其他無關的輸入不應該被修改**。
    *   例如，修改「誰是全世界最帥的人」的答案，不應該影響到「美國總統是誰」或「母雞卡為什麼會被炎上」的答案。

### III. Model Editing 的方法

Model Editing 的方法主要分為兩大類：不改變模型參數和改變模型參數。

#### A. 不改變參數的方法 (Non-Parametric)

這種方法是將新的知識**放入模型的輸入 (Input) 裡**，即通過**提示工程 (Prompting)** 來實現。

*   **In-Context Knowledge Editing (IKE)**：
    *   直接告訴模型新知識不一定有用，因為模型有時會拒絕相信新的資訊。
    *   IKE 建議**給予模型一些範例**，示範如何使用新知識。
    *   **範例種類**：IKE 論文通常提供三類範例來教導模型：
        1.  **可靠性 (Reliability)** 範例：給予新的事實，並要求模型在被問到時必須說出該事實。
        2.  **泛化性 (Generalization)** 範例：給予一個假知識，並展示即使問題以不同方式呈現，答案仍需一致。
        3.  **局部性 (Locality)** 範例：給予一個不相關的假知識，並展示在問無關問題時，輸出不應被植入的資訊所影響。

#### B. 改變參數的方法 (Parametric)

如果直接對模型進行訓練並計算梯度下降 (gradient descent)，模型往往會被改壞。因此需要更精確的方法。

**1. ROME (Rank-One Model Editing)：人類決定編輯**
![image](https://hackmd.io/_uploads/HJ6LHOT1be.png)

![image](https://hackmd.io/_uploads/r1kxYLay-g.png)

ROME 方法藉由人類對語言模型的理解，**找出應被編輯的位置並決定編輯方式**。這過程被類比為《三體》中的「思想鋼印」。

*   **步驟一：尋找知識相關部分 (Localization)**
    *   使用類似於「人工智慧腦科學」的技術，分析模型中與要編輯知識最相關的部分。
    *   透過遮蓋 (masking) 輸入 Token 並置換 Embedding，來確定模型存放特定資訊 (如「太空針」和「西雅圖」的關係) 的**位置**和**層數**。
    *   分析顯示，知識較有可能儲存在 **Feedforward (FFW) network** 裡。

*   **步驟二：執行手術 (Editing)**
    *   目標是編輯 FFW 網路的最後一層的參數，從而改變加入 Residual Stream 的輸出。
    *   需要找出一個向量 $V_{star}$，將其加到 Residual Stream 後，最終輸出會變成目標答案。
    *   輸入 $K_{star}$ 則是目標輸入 (例如：”the space needle”) 在該層的 Embedding，通常會是多種不同輸入（例如加了不同詞彙）的平均，以增強**泛化性 (Generalization)**。

*   **數學目標與 Close-Form Solution**
    *   ROME 不僅要滿足可靠性/泛化性條件 ($K^* \times W_{head} \approx V^*$)，還要加入**局部性 (Locality)** 的約束。
    *   局部性要求對於一組不想被改到的知識 $(K_n, V_n)$，新的參數 $W_{head}$ 也要盡量維持其原始輸出。
    *   **核心優勢**：ROME 的目標最佳化函數連同約束條件具有一個**閉式解 (close form solution)**。這意味著**不需要使用梯度下降 (gradient descent)** 來更新參數，可以直接計算出編輯後的參數 $W_{head}$。
    *   **Rank-One**：在閉式解中，原參數 $W$ 加上去的調整矩陣是一個 Rank 為 1 的矩陣，這就是 ROME 名稱的由來。

**2. Hypernetwork (Meta-learning)：AI 決定編輯**

這種方法讓一個人工智慧 (Hypernetwork) 取代人類的角色，決定如何編輯另一個人工智慧的大腦。

*   **基本概念**：

![image](https://hackmd.io/_uploads/rJ6hQPa1bl.png)


*   一個「編輯模型」($\mathcal{F}$，即 Hypernetwork)。
    *   一個「待編輯模型」($\mathcal{G}$)。
    *   當 $\mathcal{F}$ 收到編輯指令 (例如：將「美國總統是拜登」改為「川普」)。
    *   $\mathcal{F}$ 會輸出一個調整向量 $E$ (其維度與 $\mathcal{G}$ 的參數數量相同，可能高達數十億維)。
    *   將 $E$ 加到 $\mathcal{G}$ 的參數上，從而改變 $\mathcal{G}$ 的輸出。

*   **訓練過程**：
    *   固定代編輯模型的參數，只訓練編輯模型 $\mathcal{F}$。
    *   訓練資料包含目標修改 ($X_1 \to Y_1$) 以及**不相干的檢查問題** ($U_1 \to V_1$)。
    *   通過訓練，期待 $\mathcal{F}$ 能學會：當它看到目標修改指令時，輸出的 $E$ 不僅能達成目標修改 (可靠性/泛化性)，還會**自動維持無關知識不變 (局部性)**。

*   **實際挑戰與簡化**
    *   由於調整向量 $E$ 非常巨大，訓練一個 $\mathcal{F}$ 直接從指令映射到 $E$ 幾乎不可行。
    *   **實務簡化**：將人類知識納入，讓 $\mathcal{F}$ 不再接收原始指令，而是接收根據編輯知識計算出的**梯度 (Gradient) $G$**。
    *   **MEND 方法 (利用低秩特性)**：即使輸入梯度 $G$ (例如 1024x1024 的矩陣) 仍然巨大，難以訓練。MEND 方法發現，這個對應到梯度下降的矩陣 $G$ 其實常常是 **Rank 1** 的。
    *   **低秩分解**：利用 $G \approx U \times V^T$ 將大矩陣分解為兩個較小的向量 $U$ 和 $V$。
    *   **Hypernetwork 轉型**：$\mathcal{F}$ 現在只處理和輸出這兩個較小的向量 ($U$ 和 $V$)，極大地簡化了模型的複雜度，使得訓練一個多層的全連接網路 (FNN) 成為可能。



### 【生成式AI時代下的機器學習(2025)】第十一講：今天你想為 Foundation Model 裝備哪些 Task Vector？淺談神奇的 Model Merging 技術 大綱



### I. Model Merging 核心概念
A. 定義：Task Vector (任務向量) 是訓練後模型參數 ($\theta$) 相對於 Foundation Model 參數 ($\theta$) 的差異。
B. 目的：在不需額外訓練或原始訓練資料的情況下，將多個 Task Vector 進行加減，從而賦予模型新能力或移除舊能力。
C. 前提：所有待合併的模型必須源自同一個 Foundation Model。

### II. Task Vector 的三種主要應用
A. **相加 (Addition)**：結合多種獨立能力。
1. 實例：結合中文語言能力與安全對齊 (Safety Alignment) 能力。
2. 實例：為 Reward Model 增加程式碼評估或視覺處理能力。
B. **相減 (Subtraction)**：實現機器遺忘 (Machine Unlearning)。
1. 目的：移除版權資料或不該具備的知識，例如刪除說髒話的能力。
C. **類比 (Analogy)**：在缺乏真實資料下創造新能力。
1. 公式：利用 $A$ 之於 $B = C$ 之於 $D$ 的關係，在沒有 $D$ 任務資料的情況下，無中生有地創造出 $T_D$。
2. 實例：利用通用領域的「合成到真實」向量，校正特定領域的語音辨識模型。

### III. Model Merging 的挑戰與影響因素
A. 挑戰：簡單的參數相加並非總是成功，因為任務間可能存在互相干擾。
B. 成功條件：任務對參數的修改應**盡量稀疏且不重疊**，避免互相干擾。
C. 關鍵因素：模型大小，**越大的模型 Merging 效果通常越好**。
D. 未來展望： Task Vector 商店的概念，允許交易和交換能力向量，無需交換敏感的訓練資料。

---

### I. Model Merging 的核心概念與機制

#### A. Task Vector 的定義與優勢
*   **挑戰**：傳統上，要為模型添加新技能，需要取得新的訓練資料，並與模型原有的資料一起重新訓練（Post-training），以避免模型遺忘既有的技能（forgetting）。這不僅步驟繁瑣，通常也難以取得別人的訓練資料，且需要額外的運算資源。
*   **Task Vector**：提供了一種神奇的方式，可以在**不使用訓練資料、不需額外訓練**的情況下，直接將新能力（例如「劍」）加到原有的模型（例如「穿盔甲的 LLaMA」）上。
*   **計算方式**：
    *   假設 Foundation Model (基礎模型) 的參數是 $\theta$。
    *   某個 Fine-tuned 模型（例如小明的模型）的參數是 $\theta_B$。
    *   **Task Vector ($T_B$)** 就是 $\theta_B$ 減去 $\theta$ 的結果，代表了該模型相對於 Foundation Model **額外訓練出來的能力**。
*   **合併操作**：將這個參數的差 ($T_B$)，直接加到另一個模型 $\theta_A$ 上。
    *   $\theta_{New} = \theta_A + T_B$。
    *   由於模型參數可以視為數十億維的向量，因此這些參數是可以直接相加減的。

#### B. 實施前提與加權
*   **同源限制**：Model Merging 能夠奏效的前提是，所有待合併的模型（例如 $\theta_A$ 和 $\theta_B$）必須是**從同一個 Foundation Model ($\theta$) 進行 Fine-tuning 出來的**。這要求它們的網路架構不僅要一樣，且必須源於同一個基礎模型。
*   **權重調整**：在合併不同的 Task Vector 時，有時可以在每個向量前面乘上一個權重 ($\alpha$ 和 $\beta$)，例如 $\theta_{New} = \theta + \alpha T_A + \beta T_B$，藉此微調比例以獲得更好的結果。

### II. Task Vector 的應用模式

Task Vector 不僅可以相加，還可以透過相減和類比的方式來操作模型的能力。

#### A. 相加 (Addition)：能力的結合
1.  **結合語言與安全能力**：
    *   Meta 訓練的 LLaMA 2 Chat 具有安全對齊 (Safety Alignment) 能力。
    *   若單純將 LLaMA 2 Chat 用中文資料 Fine-tune，模型學會中文的同時，原有的 Alignment 能力會大幅降低（發生 forgetting 現象）。
    *   Model Merging 的方法是計算出「中文能力」的 Task Vector 和「Alignment 能力」的 Task Vector，並將兩者直接加到同一個 Foundation Model 上。
    *   結果是得到一個**既有 Safety Alignment 又能用中文回答問題**的單一模型。
    *   這種方法具有通用性，不只適用於 LLaMA 系列，也適用於 ChatGLM3 和 Mixtral，並且在韓文和日文等語言上也能發揮作用。
2.  **多模態與專業評估能力**：
    *   可以將一個擅長評估文字回覆的 Reward Model 與一個擅長寫程式的模型合併，從而創造出一個能評估程式碼好壞的 Reward Model。
    *   同理，可以將一個只讀文字的 Reward Model，與一個可看圖的模型合併，在不進行任何額外訓練的情況下，讓這個 Reward Model 獲得「視力」，能夠評估基於圖片的回覆。

#### B. 相減 (Subtraction)：機器遺忘 (Machine Unlearning)
*   **原理**：如果 $T_B$ 代表某種能力，則將模型參數減去 $T_B$，就可以讓模型失去任務 $B$ 的能力。
*   **實例**：為了讓模型忘記不該具備的知識（例如髒話），可以將一個會說髒話的模型 $\theta_B$ 相對於 Foundation Model 的 $T_B$ 計算出來。
*   **操作**：將一個會講中文的模型（例如 Taide model）減去這個會說髒話的向量 $T_{髒話}$，可以得到一個「聖人模型」。
*   **結果**：這個聖人模型對於髒話或敏感詞彙會一無所知，甚至會產生「幻覺」（hallucination），亂掰這些詞彙的定義。

#### C. 類比 (Analogy)：在缺乏資料下創造能力
*   **公式**：Task Vector 的相加減可以實現類比推理：若 $A$ 之於 $B$ 等於 $C$ 之於 $D$，那麼在沒有 $D$ 任務資料的情況下，可以透過 $T_D = T_C + (T_B - T_A)$ 來創造出 $T_D$。
*   **應用實例 (語音辨識校正)**：
    *   在為專業領域（如法律、金融）打造語音辨識系統時，往往缺乏真實的語音資料。雖然可以透過語音合成 (TTS) 產生合成語音，但合成訊號與真實訊號存在差異。
    *   利用類比公式，可以將「通用領域/合成語音訓練的模型」校正為「特定領域/真實語音訓練的模型」。
    *   研究人員計算出一個紅色的向量（$T_{Syn \to Real}$），該向量代表了**將合成資料訓練出的模型校正成彷彿在真實資料上訓練過**的修正向量。
    *   實驗結果顯示，透過這種校正（微調）後，模型的語音辨識錯誤率 (Word Error Rate) 在不同領域都明顯降低，表現就像使用真實語音訓練過一樣。

### III. Model Merging 的限制與未來發展

#### A. 成功的條件與挑戰
*   **不總是成功**：Model Merging 並不保證每次都會成功，特別是如果單純地將兩個模型的 Task Vector 直接相加。
*   **干擾問題**：簡單的參數相加很容易找到反例證明失敗，因為不同任務在同一個神經元上進行的參數修改可能會互相干擾。
*   **成功啟發**：如果兩個任務修改到的參數**彼此非常不一致，沒有互相干擾**，那麼 Model Merging 就容易成功。
*   **研究趨勢**：目前 Model Merging 的先進技術（如 DARE 和 TIES）都致力於讓每個任務**只動到一點點參數**（稀疏化/Sparsity），從而減少不同任務之間修改參數的交集，使 Merging 更加容易成功。

#### B. 模型大小的重要性
*   **越大越好**：實證研究顯示，**模型的大小**是影響 Model Merging 成功與否的重要因素。
*   **專業分工**：較大的模型中，每個神經元可能擁有更專精的功能，能夠「各司其職」，較不會互相干擾。
*   **實驗結果**：無論採用哪種 Merging 方法，模型越大（從 1B 到 64B），合併後的整體效果通常越好。

#### C. 未來的想像
*   **Task Vector 商店**：如果 Model Merging 技術發展成熟且保證成功，將可以想像出現一個 Task Vector 商店。
*   **無需訓練，參數加減**：開發者和使用者可以在商店中找到代表各式各樣不同任務能力的 Task Vector，並將它們裝備到 Foundation Model 上，藉此打造具有不同能力的客製化模型，且**完全不需要做額外的訓練**。
*   **資料隱私**：Task Vector 概念的成功，有助於解決資料交換的敏感性問題。由於公司通常不願意洩露自己使用了哪些訓練資料（可能涉及版權問題），但願意釋出模型參數。未來大家只需互換 Task Vector，即可獲得其他模型的能力，而不需要交換敏感的原始資料。


