# [2025李宏毅ML] 第11講:今天你想為 Foundation Model 裝備哪些 Task Vector?淺談神奇的 Model Merging 技術
:::success
:+1: 筆記全集Book 請至: https://hackmd.io/@4j/r1U_UJ_pye/
:::
:::info
2025生成式AI時代下的機器學習_李宏毅
課程網站 https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php
video: https://youtu.be/jFUwoCkdqAo?si=vvzUWZCHlo6EBDpK
[[ppt]](https://docs.google.com/presentation/d/1PUEnnpaxuq8dtm_Z4OnYwYjUAz578w74/edit?slide=id.p1#slide=id.p1) [[pdf]](https://speech.ee.ntu.edu.tw/~hylee/ml/ml2025-course-data/merging.pdf)
(20250525)
:::
:::spoiler 目錄
[TOC]
:::
## Model Merging

還是個很新的尚在發展的技術
不需訓練資料,直接組合模型能力的技術

▪ **問題情境**
盔甲llama 想要有小明劍魔的能力,一般做法就需要跟小明借資料來訓練,且要加入原本自己的資料才不會遺忘,達成兼具兩者能力
但這樣蠻麻煩的 要資料又要算力 :(
--> 能不能**不用資料 也不用訓練模型** 來達成呢?

▪ **Model Merging**
𝜽𝑨, 𝜽𝑩 都是從同個 foundation model 練出來的,參數個數相同
**Task Vector**: (𝜽𝑩-𝜽) 參數相減如同多練出來的能力
直接將參數差加到 𝜽𝑨 上,就完成 Model Merging 了!

(計算圖示)

類神經網路參數豈是如此不便之物!
就是這麼神奇 Task Vector 加加剪剪是有效的!
### 1. 相加

從 Foundation Model 𝜽 訓練出了不同能力的 𝜽𝑨, 𝜽𝑩
直接將 τB 加到 τA,或是 (τA+τB),或多乘上 weight
都可以達成擁有AB兩種能力的新模型
>注意: τA, τB 要從**同一種 Foundation Model 出來 且 架構一樣**,這招才能使用
現今 **Post training 時代**,有很多有名的共同的 Foundation Model (ex:llama) 可用 :)
▪ **案例1**
 
想讓llama防禦模型看得懂中文
直接拿中文資料 finetune 往往會遺忘 alignment
用 Task Vector 試試,中文模型 加上 防禦模型

發現有效 可得到中文回答又有saft alignment的能力!

-驗證了此做法是蠻通用有效的
發現在 韓文/日文 上都有效
在 LLaMA 2, LLaMA 3, Mistral 也能發揮作用
▪ **案例2**

評價模型 寫程式模型 做 merging
文字評價模型 看圖模型 做 merging
### 2. 相減

▪ **machine unlearning:** 讓模型忘記他學過的東西
𝜽 - τB : 讓他失去任務B 的能力

▪ **案例**
先 finetune 說髒話模型在 LLaMA
再讓 TAIDE模型(同為LLaMA底) 減去 髒話模型
使他成為看不懂髒話的聖人模型
### 3. 類比

**用類比方式,在完全沒有某項資料的情況下,讓模型擁有新能力**
假設 Task A : Task B = Task C : Task D
沒有D資料的情況下,知道 AB 的關係等同於 CD
可以用類比的方式讓模型學會 Task D

▪ **案例:** 新領域文件的語音常會辨識錯誤
Analogy
最早的做法是 把新文件用文字轉語音 一起拿去訓練
但這種聲音訊號終究是機器生的不真實

改用類比方法 還真的有效
紅線為 **Synthesic2Real Vector** (校正微調)
舊資料真實語音:舊資料合成語音 = **新資料真實語音(缺)**:新資料合成語音

(黃)原訓練在合成資料上的結果
(橘)對訓練在合成資料上的模型 再做校正微調,在各領域資料都有較低的錯誤率
且蠻通用的,在下面這些都有效
• SLURP
• Speech foundation model: Whisper
• TTS model: BARK

更多應用:防止 fine-tune 造成的 Forgetting
### Merging 不一定總是會成功

▪ **案例:** 同時想要改動 A 跟 B
希望加上(τA+τB) 可以同時成功改動 A 跟 B

失敗例子

成功例子
--> **不同任務儘量不要動到同樣的參數**

▪ **新技術:** Advanced Merging Approach
DARE: https://arxiv.org/abs/2311.03099
TIES: https://arxiv.org/abs/2306.01708
盡量讓動到的參數較少,merging 比較會成功

▪ **What Matters for Model Merging at Scale?**
https://arxiv.org/abs/2410.03617
發現在不同方法中,**模型越大** merging 效果越好
## 未來展望

還是個很新的技術
希望未來可以有 Task Vector 小商店
• 小團隊可以專注於打造單一任務的 Task Vector
• 可以販售、交換 Task Vector
--END--