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,即可獲得其他模型的能力,而不需要交換敏感的原始資料。