AI・機械学習
上級
DoRA(重み分解適応)(ドーラ)
LoRAの改良版PEFT手法。重み行列を「振幅(magnitude)」と「方向(direction)」に分解し、方向成分のみLoRAで更新することでフルファインチューニングに近い学習パターンを実現する。
0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
dora
peft
weight-decomposition
fine-tuning
llm
lora-improvement
DoRA(重み分解適応)とは
DoRA(Weight-Decomposed Low-Rank Adaptation)は、NVIDIAのShih-Yang Liuらが2024年に発表したLoRAの改良版PEFT手法。LoRAがフルファインチューニングと質的に異なる学習パターンを持つという根本的課題を、重み行列の分解によって解決する。
LoRAとの違い
LoRAはフルFTと比較してMagnitude(振幅)とDirection(方向)の変化パターンが異なることが経験的に観察されている。特に振幅と方向が同時に大きく変化するような学習タスクでLoRAはフルFTに劣る。
DoRAは重み行列Wを極分解により分解:
W = m × V
振幅(スカラー) 方向(単位ベクトル行列)
学習時の更新:
- 方向 V: LoRAで低ランク更新 → V' = (V + ΔV) / ||V + ΔV||
- 振幅 m: 独立したスカラーパラメータとして学習
lora_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
use_dora=True, # DoRAを有効化
task_type="CAUSAL_LM"
)
ベンチマーク結果(LoRA比)
- Commonsense Reasoning: 89.8% → 91.6%(+1.8%)
- MATH: 34.2% → 37.5%(+3.3%)
- Code (HumanEval): 55.7% → 62.5%(+6.8%)
- Visual QA: 81.3% → 84.1%(+2.8%)
オーバーヘッド
- 学習パラメータ: LoRAとほぼ同等(振幅パラメータの追加は微小)
- 学習速度: LoRA比で若干(〜10%)遅い(正規化計算のため)
- 推論: マージ後はLoRAと同じ(追加コストなし)
採用状況(2025年)
HuggingFace PEFT v0.9+で use_dora=True オプションとして組み込み済。UnSloth(v2024.11+)、Axolotl、LLaMA-Factoryでも利用可能。
使い分けの目安
- 精度最優先(コード・数学)→ DoRA推奨
- 速度・コスト最優先 → LoRAで十分
- 標準的な指示チューニング → LoRAとDoRAで差は小さい
まとめ
DoRAはLoRAの「なぜフルFTに及ばないか」という根本問題を数学的に分析して解決した手法。特にコーディングや数学的推論など高難度タスクで効果が顕著で、2025年の時点でPEFT界のデファクトスタンダードになりつつある。