# Ch4 練習題：MACE 入門

> 概念 2 題＋實作 2 題。詳解在最後。

## 題目

**Q1（等變/不變分類）** 把體系整體旋轉 R。下列各量怎麼變？分類為 invariant / equivariant（一階）/ equivariant（二階）：
(a) 總能量 (b) 原子受力 (c) 偶極矩 (d) Bader 電荷 (e) 應力張量 (f) HOMO–LUMO gap

**Q2（license 查表）** 你的計畫下一期可能轉產學合作。查 Ch4 的 foundation model 表，回答：
(a) 哪些模型現在用、之後也能繼續用？
(b) 如果你現在的 pipeline 建立在 MACE-MH-1 上，轉產學時有哪些選項？（至少兩個）

**Q3（指令排錯）** 學弟貼來一條失敗的微調指令：
```
pip install MACE
mace_run_train --foundation_model="medium-mpa-0" --train_file=train.extxyz --swa --E0s="average"
```
找出至少三個問題並改正（提示：套件名、參數改名、E0s 建議值、有一個關鍵參數沒開）。

**Q4（動手：模型大小 vs 任務）** 在 Colab 跑教材 ch04 Level 2b 的 Pt(111)+H* 吸附能腳本，分別用 `model="small"` 與 `"medium-mpa-0"`。記錄兩個 E_ads 與差值。再回答：這個差值能不能告訴你「哪個模型比較準」？需要什麼才能裁決？

---

## 詳解

**A1**
invariant：(a) 能量、(d) Bader 電荷、(f) gap——純量，轉了不變。
equivariant 一階：(b) 力、(c) 偶極——向量，跟著轉。
equivariant 二階：(e) 應力——張量，σ' = R σ Rᵀ。
這張分類表就是「為什麼網路特徵需要 0e（純量）和 1o（向量）兩種通道」的原因。

**A2**
(a) **MACE-MP-0a/0b3、MACE-MPA-0（MIT）**——學術與商用皆可。
(b) 選項：① 換到 MPA-0 並用自家資料微調補表面能力（最常走）② 向 ASL 授權方洽談商業授權 ③ 改用其他可商用的表面向模型（如 UMA，但注意 gated 條款與地區限制）。重點：**現在選 foundation model 時就要想到這一天**。

**A3**
① `pip install MACE` → 裝到同名無關套件；應為 **`pip install mace-torch`**（且先照 pytorch.org 裝對 torch）。
② `--swa` 已改名 **`--stage_two`**。
③ 微調場景官方建議 **`--E0s="estimated"`**（"average" 在微調時會把參考能量帶歪）。
④ 沒開 **`--multiheads_finetuning=True`**——沒有 replay 的微調會 catastrophic forgetting。

**A4** 預期：兩個模型的 E_ads 差零點零幾到 ~0.1 eV 級。**這個差值本身不能裁決誰準**——兩個都可能錯。裁決需要一個「地面真相」：同一套設定的 DFT 值（或可靠文獻值，注意 functional 對齊）。教訓：模型之間互比只能看一致性；**準不準永遠對著 DFT/實驗裁決**。
