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界のデファクトスタンダードになりつつある。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/6