各モデルのタスクベクトルからパラメータをランダムにドロップアウトし、残ったパラメータをスケーリングして統合するマージ手法。確率的探索により高品質なマージ解を発見できる。
DARE(Drop And REscale)は、2023年にYu Yuらが発表したLLMモデルマージ手法である(論文: "Language Models are Super Mario: Absorbing Abilities from Homologous Models as a Free Lunch")。各モデルのタスクベクトル(ベースモデルとの重み差分)からパラメータをランダムにドロップアウト(ゼロ化)し、残ったパラメータを適切にスケーリングして統合する。Dropoutの確率的性質を活用することで、決定論的手法では到達できない高品質なマージ解を発見できる点が特徴である。
各ファインチューニング済みモデルからベースモデルとの差分(タスクベクトル)を計算:
δ_i = θ_finetuned_i - θ_base
各タスクベクトルのパラメータをドロップ率 p でランダムにゼロ化:
m_i ~ Bernoulli(1-p) # 各パラメータに対するマスク
δ_i_dropped = δ_i ⊙ m_i
ドロップアウトによる期待値のずれを補正するため、1/(1-p) でスケーリング:
δ_i_rescaled = δ_i_dropped / (1-p)
スケーリング済みタスクベクトルを加重和で統合し、ベースモデルに加算:
θ_merged = θ_base + Σ(w_i × δ_i_rescaled)
| 手法 | MMLU | GSM8K | HumanEval |
|---|
| TruthfulQA |
|---|
| 平均 |
|---|
| Task Arithmetic | 57.8 | 32.1 | 28.7 | 45.2 | 40.9 |
| TIES (k=20) | 60.3 | 35.8 | 31.2 | 48.1 | 43.9 |
| DARE (p=0.9) | 61.1 | 37.2 | 33.5 | 49.3 | 45.3 |
| DARE-TIES | 62.0 | 38.1 | 34.2 | 50.1 | 46.1 |
※ Llama 2 13B ベース、Math + Code + Safety の3モデルマージ時
models:
- model: meta-llama/Llama-3.1-8B-Instruct
parameters:
density: 0.3
weight: 1.0
- model: NousResearch/Hermes-3-Llama-3.1-8B
parameters:
density: 0.3
weight: 0.8
merge_method: dare_ties
base_model: meta-llama/Llama-3.1-8B
parameters:
int8_mask: true
normalize: true
dtype: bfloat16
DAREの名前は「Super Mario」論文に由来する。マリオがキノコを取って能力を得るように、LLMも他のモデルから「能力を吸収」できるという比喩である。
核心的な発見は以下の2点:
| シナリオ | 推奨 | 理由 |
|---|---|---|
| 2モデル、安定性重視 | SLERP | ノルム保持で最も安定 |
| 3+モデル、決定論的 | TIES | 再現性が高い |
| 3+モデル、最高品質 | DARE-TIES | 確率的探索 + 干渉除去 |
| 能力の強い移植 | DARE (低density) | 特化パラメータに集中 |
| 再現性必須の本番環境 | TIES or SLERP | DAREはシードで結果が変わる |
Q1: density(ドロップ率)の最適値は? A: 驚くべきことに、非常に低い density(0.1〜0.3、つまり70〜90%ドロップ)で最良の結果が得られることが多い。これはタスクベクトルの高い冗長性を反映している。ただし density が低すぎると(0.05以下)情報喪失が起き、高すぎると(0.7以上)干渉が増大する。0.2〜0.3 を起点に調整するのが実務的。
Q2: DAREの結果は実行ごとに変わる?
A: はい。ランダムドロップアウトを使うため、同じ設定でも異なるマスクが生成され結果が変わる。mergekit では --seed オプションで乱数シードを固定できる。本番環境では必ずシードを固定して再現性を確保すること。
Q3: DARE-TIES と DARE-Linear のどちらを使うべき? A: ほぼすべてのケースで DARE-TIES を推奨する。DARE-Linear は DARE 後に単純加算するだけだが、DARE-TIES は DARE 後にさらに TIES の符号多数決で干渉を除去する。ベンチマーク上 DARE-TIES が DARE-Linear を平均 1〜3 ポイント上回る。