Skip to content

李宏毅 ML 2026 HW7:不再訓練,把日文模型和數學模型合成一個會解日文數學題的模型

2026年9月30日1 分鐘
TL;DRHW7 給你兩個從 Mistral-7B-v0.1 微調出來的模型:擅長日文的 shisa-gamma-7b-v1 與擅長數學的 WizardMath-7B-V1.1,要你只做參數層級的合併(不准再訓練、不准 MoE 或 ensemble),讓合併後的模型答對助教自出的 20 題日文數學題。Part 1(60%)用 mergekit 調方法、weights 與 density,simple/strong baseline 是正確率 50% 與 75%;Part 2(40%)是 8 題論文選擇題。題目、Colab 與 Kaggle 都公開,但 JudgeBoi 在 2026-09-30 回傳 502、論文題在 NTU COOL 上,校外只能在 notebook 裡自己看正確率。

🌏 English version

本文依據台大李宏毅《機器學習 2026 Spring》的 HW7。 這是台大李宏毅 機器學習 2026 Spring 導讀系列第 16 篇。官方材料有:作業投影片 hw7.pdf、作業 Colab(50 個 cell)、Kaggle 版,以及助教的說明影片。課程頁寫 5/8 公告、截止 2026/05/28 23:59,助教是黃郁涵、陳思齊、董家愷、吳岳霖(投影片封面列前三位)。投影片註明參考 ML2025 HW9 Model Merging。

存取分級是 A3 減評分:題目規格、兩個模型、Colab 與評估程式都公開;排行榜要上傳 JudgeBoi(2026-09-30 回傳 502),論文題在需要台大帳號的 NTU COOL 上。

先備:hw7.pdf 沒有指定,但有一講正好對得上

HW7 投影片沒有列先備影片,本學期也沒有講 model merging 的正課。李宏毅 2025 年的生成式人工智慧與機器學習導論 第 8 講標題就是「通用模型的終身學習(Fine-tuning, Model Editing, Model Merging, Test-Time Training)」,上一篇 AI 自我成長(上)也用這支影片當 TTT 的延伸。要補概念,看這一講最省事。

和上一份作業 HW6:Model Editing 對照著看會更清楚:HW6 是精準改掉一條知識,HW7 是把兩整組能力疊在一起,兩者都不重新訓練。

任務:兩個 7B 模型,一個會日文、一個會數學

投影片的目標寫得很直白:在參數層級合併能力不同的模型,不額外訓練,得到一個同時保有日文理解與數學能力的模型。兩個來源模型:

模型強項
augmxnt/shisa-gamma-7b-v1日文理解
WizardLMTeam/WizardMath-7B-V1.1數學推理

兩個都從 Mistral-7B-v0.1 微調而來。這個組合出自 Evolutionary Optimization of Model Merging Recipes(Akiba 等人,Nature Machine Intelligence 2025),投影片把它列為這份作業的來源。

Colab 開頭有三條規則,比投影片更嚴格:

  • 只能用上面兩個模型,不能引入第三個。
  • 可以用任何套件或自己寫的演算法,不限 mergekit。
  • 合併後的總參數量必須和單一 base model 相同。MoE、ensemble、stacking 這類讓推論時可用參數變多的做法都算違規。

評估:20 題需要日本常識的數學題

評估集是助教董家愷自己出的 20 題日文數學題。它們不只是把數學題翻成日文,還需要日本文化背景知識。投影片給的兩個例子:

  • 日本的都道府縣裡,扣掉東京都、北海道、京都府、大阪府,「縣」有幾個?
  • 太郎平成 5 年出生、次郎令和 2 年出生,太郎比次郎大幾歲?

這正好說明為什麼要合併:數學模型看不懂題目,或不知道平成、令和怎麼換算;日文模型懂題目但算不好。

答案用規則擷取:先找「答え:」或「答え:」後面的數字,找不到就取輸出中最後一個數字。Colab 固定了日文 prompt 模板,最後要求模型以『答え: [数値]』作答,並註明嚴禁修改,理由是這份作業考的是合併技術,不是 prompt engineering。notebook 算出的正確率和 JudgeBoi 上的一模一樣。

合併演算法:從加權平均到選擇性合併

投影片先定義 model merging:只用參數上的簡單運算,不從頭訓練、也不碰原始訓練資料,就把各來源模型的能力整合進一個模型。並指出不同 task vector 之間的冗餘參數與正負號衝突會造成參數干擾,讓合併後表現下降。後面的演算法大多在處理這件事。

mergekit 有三個常用設定:

  • input models/base model:要合併的來源模型,以及需要時當參考點的 base model
  • weights(α):每個模型貢獻多少的係數
  • density(d):一個 tensor 裡保留多少比例的數值

投影片介紹的方法:

方法要設的參數做法
Task Arithmetic/linearweightstask vector 加權相加;兩個模型時就是 (1−t)A + tB
Slerpweights兩個模型權重的球面線性插值
Magnitude Prunedensity、weights每個 task vector 只留絕對值最大的前 d 比例,再加權相加
DARE Lineardensity、weights隨機把 1−d 比例的數值歸零,剩下的乘 1/d 維持期望值,再加權相加
TIESdensity、weightsTrim 留前 d 比例、Elect Sign 依加總決定每個參數的正負號、Disjoint Merge 只平均符號一致的值
SCEdensitySelect 跨 task vector 挑變異最大的前 k 個位置、Calculate 用平方和算每個模型的係數、Erase 剔除少數方向的值

SCE 和 TIES 最容易混:TIES 是每個 task vector 各自依大小剪枝,SCE 是跨所有 task vector 看同一個位置的變異再選。TIES 與 SCE 的出處分別是 NeurIPS 2023 的 TIES-Merging 與 FuseChat。

Colab 的流程與可以動的地方

notebook 分三段:

  1. Section 1:觀察兩個 base model。各丟一個日文問題與一個英文數學題,再各自跑一次 20 題評估,記下兩個 baseline 正確率。時間不夠可以跳過。
  2. Section 2:合併。主要修改區是一段 mergekit YAML。說明文字寫「最簡單的 50/50 Linear Merge」,但程式裡的預設其實是 slerp:self_attn 與 mlp 各用一組沿層變化的 t,其餘用 0.5,以 shisa 為 base。TODO 建議的方向是調 weight 比例、改用 linear/ties/dare_ties,或對不同 layer 用不同參數。接著用 mergekit-yaml … --lazy-unpickle --allow-crimes --cuda 執行。
  3. Section 3:推論。載入合併後的模型,用同一套 prompt 與擷取規則跑 20 題,輸出 submission.json。

投影片估計合併要 0.5–2 小時、推論 20 題要 1–2 小時;Colab 預設用 T4 GPU。每試一組設定都要重跑 Section 2 與 3,所以挑設定要有策略,不能亂槍打鳥。

評分與繳交

項目條件分數
Public Simple Baseline日文數學 QA 正確率 ≥ 50%2
Public Strong Baseline正確率 ≥ 75%2
Code Submission上傳 NTU COOL2
Paper Reading8 題,每題 0.54
  • Part 1(60%):把 submission.json 上傳 JudgeBoi(只收 .json,不能改格式,每天 5 次、23:59 重置);.ipynb 壓成 <學號>_hw7.zip 上傳 NTU COOL。排行榜分數必須能用繳交的 notebook 重現,否則不計分,所以要固定 random seed。
  • Part 2(40%):在 NTU COOL 答選擇題。投影片寫 5 題是 model merging 基礎觀念,3 題針對 ICLR 2026 的 LS-Merge: Merging Language Models in Latent Space。
  • 規定:不准用 GPT-4、Gemini 等閉源 LLM API;不准找額外訓練資料或測試題答案;不准手改輸入或預測檔。不收遲交。

校外讀者拿不到的部分

  • JudgeBoi 502:不能上傳,也看不到排行榜。不過 notebook 自己就會印出和 JudgeBoi 相同的正確率,這份作業的 Part 1 其實能完整自評。
  • 論文題:題目只在 NTU COOL 上,hw7.pdf 裡沒有印出來(這一點和 HW6、HW8 不同)。
  • 說明影片:YouTube 上沒有字幕,本文沒有依影片內容寫作。

今晚就能做的事:打開 Colab,先別改任何東西,直接跑預設的 slerp 設定並記下正確率;再把 merge_method 換成 ties、設一組 weights 與 density,比較兩次結果差在哪幾題。免費 Colab 不保證拿得到 GPU,notebook 也提醒過這一點。

想深入

系列導覽:系列總覽|上一篇 AI 自我成長(上)|下一篇 HW8:Test-Time Scaling

參考資料