🔧

LoRA(Low-Rank Adaptation)

少数のパラメータのみ学習する効率的なFine-tuning

LoRA(Low-Rank Adaptation)はMicrosoftが2021年に提案したPEFT(Parameter-Efficient Fine-Tuning)技法です。Full Fine-tuningはモデルの全重み(数十〜数百億個)を更新するため膨大なGPUメモリが必要です。LoRAの核心的洞察は「Fine-tuning時の重み変化量(ΔW)は低ランク(low-rank)である」ということです。元の重み行列W(d×d)を固定し、ΔW = A(d×r) × B(r×d)に分解します(r << d、通常r=4〜64)。学習パラメータが元の0.1〜1%に減少し、推論時にはW + ΔWを事前にマージして追加遅延ゼロです。QLoRAはここに量子化を組み合わせ、4-bitモデルでもFine-tuningが可能です。

キーコンセプト

1

元モデルの重み行列Wを固定(freeze)

2

Wの横に低ランク行列A(d×r)とB(r×d)を追加(rはrank、通常4〜64)

3

順伝播時: y = Wx + (α/r) × ABx — 元の出力にLoRA出力を加算

4

逆伝播時: AとBの重みのみ更新(Wは固定)

5

学習パラメータ数: 2×d×r(元のd×d比で劇的に減少)

6

推論時: W_new = W + (α/r)×ABにマージ → 追加計算コストゼロ

メリット

  • GPUメモリを大幅節約(Full FT比1/3〜1/10)
  • 学習速度の向上
  • タスク別アダプターを交換して多目的活用
  • 推論時の追加コストなし(マージ可能)
  • 元モデルの保存

デメリット

  • Full Fine-tuning比で性能がやや低い場合がある
  • Rank(r)の選択が性能に影響
  • 全レイヤーに適用するか一部のみか決定が必要
  • 複雑なドメイン転換には限界

ユースケース

コンシューマGPU(RTX 4090)で70Bモデルをfine-tuning QLoRA — 4-bit量子化 + LoRA 多数のタスク別アダプター管理 Hugging Face PEFTライブラリ Stable Diffusion LoRA(画像スタイル学習)