AI・機械学習
上級

LoRA(Low-Rank Adaptation)(ローラ)

大規模言語モデルのファインチューニングを低コストで実現するパラメータ効率的手法。元のモデル重みを凍結し、低ランク行列の積(A×B)を各層に追加して学習する。学習パラメータ数を全体の0.1〜1%に抑えつつ、フルファインチューニングに匹敵する性能を達成。Microsoft Researchが2021年に発表。

0 回閲覧
0 いいね
2026/6/20 更新
関連タグ
LoRA
ファインチューニング
PEFT
低ランク適応
パラメータ効率
Microsoft Research

LoRAとは

LoRA(Low-Rank Adaptation)は、大規模言語モデル(LLM)のファインチューニングを低コストで実現するパラメータ効率的手法である。Microsoft ResearchのEdward Hu et al.が2021年に発表した。元のモデルの重みを凍結したまま、各Transformer層のAttention/FFN行列に低ランク行列ペア(A×B)を追加して学習する。学習パラメータ数を全体の0.1〜1%に抑えつつ、フルファインチューニングに匹敵する性能を達成する。

動作原理

低ランク分解の仕組み

事前学習済みモデルの重み行列 W₀ ∈ ℝ^{d×k} に対し、更新量 ΔW を低ランク行列の積で近似する:

W = W₀ + ΔW = W₀ + B × A

ここで A ∈ ℝ^{r×k}、B ∈ ℝ^{d×r}。r はランク(通常 4〜64)で、d や k に比べて非常に小さい。

パラメータ説明典型値
d入力次元4,096(Llama 3 8B)
k出力次元4,096
rLoRAランク8〜64
αスケーリング係数16〜32
フルパラメータ数d × k16,777,216
LoRAパラメータ数(d + k) × r65,536(r=8の場合)
圧縮率約256倍

適用対象レイヤー

LoRAは通常、Transformer層の以下の重み行列に適用する:

  • Q(Query)行列: Attention機構のクエリ射影
  • K(Key)行列: Attention機構のキー射影
  • V(Value)行列: Attention機構のバリュー射影
  • O(Output)行列: Attention出力射影
  • FFN(Feed-Forward)行列: 中間層の射影(Gate/Up/Down)

全てに適用するか、Q/V のみに適用するかはタスクとVRAM制約で選択する。

フルファインチューニングとの比較

項目フルファインチューニングLoRA(r=16)
学習パラメータ数(Llama 3 8B)80億約3,000万(0.4%)
必要VRAM(8Bモデル)約80GB(A100×2)約16GB(A100×1)
学習時間(10K samples)約8時間約2時間
アダプタファイルサイズ16GB(全重み)約50MB
マージ後の推論速度同等同等(マージ後)
性能(一般タスク)100%(基準)約95〜100%

ランク r の選び方

ランク rパラメータ数推奨用途
4最小単純なスタイル適応、軽量タスク
8少汎用的なファインチューニング
16中ドメイン特化、中規模データセット
32多複雑なタスク、大規模データセット
64最大フルファインチューニングに近い品質が必要な場合

一般的に r=8〜16 がコストと性能のバランスが良い。r を大きくすると性能は向上するが、VRAMと学習時間も増加する。

主要な派生手法

手法年特徴
LoRA2021オリジナル。A×B低ランク行列
QLoRA20234bit量子化 + LoRA。VRAM大幅削減
LoRA+2024A/Bに異なる学習率を適用
DoRA2024重みを方向と大きさに分解
rsLoRA2024ランクに応じたスケーリング改善
GaLore2024勾配を低ランク射影して省メモリ化

実践的なツール

ツール開発元特徴
Hugging Face PEFTHugging FaceLoRA/QLoRA/AdaLoRA等の統合ライブラリ
UnslothUnsloth AI2〜5倍高速化、メモリ70%削減
AxolotlOpenAccess AIYAML設定ベースの簡易ファインチューニング
LLaMA-FactoryhiyougaGUI付きの多手法対応ツール
torchtuneMetaPyTorch公式のLLMファインチューニングツール

FAQ

Q1: LoRAとフルファインチューニングはどちらを選ぶべきか?

データセットが10万件以下、VRAMが限られている(A100 1枚以下)場合はLoRAが推奨。100万件以上の大規模データセットで最高性能を求める場合はフルファインチューニングが有利だが、コスト差は10倍以上になる。

Q2: LoRAアダプタは複数同時に使える?

可能。異なるタスク向けのLoRAアダプタを動的にロード・切替できる(LoRA Serving)。ベースモデルをメモリに1つ保持し、リクエストに応じてアダプタを差し替えることで、1つのGPUで複数の特化モデルを運用できる。

Q3: 画像生成モデルでのLoRAとLLMでのLoRAは同じ?

原理は同じ低ランク適応だが、適用対象が異なる。Stable DiffusionではU-NetのCross-Attention層に適用し、特定の画風・キャラクターを学習する。LLMではTransformer全層のAttention/FFNに適用する。

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