🧬
モデルマージ — 本当に2つのモデルを「合体」する唯一の方法
韓国語モデル+コーディングモデル=韓国語でコーディングするモデル?重みの平均で合体
AIで唯一の「合体」
ファインチューニング、LoRA、RAG — 全部「合体」ではない。モデルマージは本当に合体する。
モデルAの重み: [0.50, -0.30, 0.80, ...]
モデルBの重み: [0.40, -0.10, 0.60, ...]
合体後: [0.45, -0.20, 0.70, ...] ← 平均
66M個の数字を一つずつ平均する。訓練不要。ただの算数。
なぜ動くのか
同じベースモデルからファインチューニングされた2モデルは重みが似ている。調整結果を平均すれば両方の能力が合わさる可能性がある。
最もシンプルなマージコード
merged = {}
for key in weights_a:
merged[key] = (weights_a[key] + weights_b[key]) / 2
# 完了。訓練なし。GPUなし。
限界 — 保証されない
実験的。同じベースモデルの補完的ドメインでは動く。異なるアーキテクチャや大きく異なるドメインでは失敗する。
キーコンセプト
1
同じベースからファインチューニングされたモデル2つを準備(例:韓国語+コーディング)
2
両モデルの重みをロード
3
66M個の数字を一つずつ平均 — (A + B) / 2
4
合体した重みを保存 — 訓練なし、GPUなし
5
テスト — 両方の能力が合わさったか確認(保証なし)
ユースケース
多言語+専門ドメイン合体 — 韓国語モデル+医療モデル=韓国語医療モデル
GPUなしでモデル改善 — 訓練なしで重み算術だけで新モデル生成
コミュニティモデル組み合わせ — HuggingFaceの複数ファインチューニングモデルを合体して実験