AI・機械学習
中級

LoRA(ローラ)

Low-Rank Adaptation の略。LLM の全パラメータを更新せず、低ランク行列の積を注入して効率的にファインチューニングする手法。学習パラメータ数を 99% 以上削減しながら同等の性能を実現する。

0 回閲覧
0 いいね
2026/5/24 更新
関連タグ
ファインチューニング
PEFT
低ランク近似
パラメータ効率

LoRA とは

LoRA(Low-Rank Adaptation of Large Language Models)は、Microsoft Research の Hu et al. が 2021 年に発表した PEFT(Parameter Efficient Fine-Tuning)手法です。

LLM を特定のタスク向けにファインチューニングする際、全パラメータを更新するフルファインチューニングでは A100 80GB × 8枚以上のリソースが必要です。LoRA は重み行列を低ランク行列の積で近似することで、学習パラメータ数を 99% 以上削減し、コンシューマー GPU(RTX 4090 24GB)でも 13B〜70B モデルのファインチューニングを可能にしました。

主な特徴・仕組み

  • 低ランク行列: 元の重み行列 W(d×k)の代わりに A(d×r)と B(r×k)を学習(r << d,k)
  • 推論時の結合: W' = W + α/r * BA として元の行列に加算(速度低下なし)
  • ランク設定: r=4〜16 が一般的(r=4 で 99.9% パラメータ削減)
  • スケーリング: α(ハイパーパラメータ)で LoRA の影響度を調整
  • 適用レイヤー: Attention の Q, V 行列のみ更新(PEFT 効率化の鍵)

フルファインチューニング vs LoRA 比較

項目フルファインチューニングLoRA (r=16)
更新パラメータ全体(7B〜175B)0.1〜1%
VRAM(7B モデル)約 112 GB(A100×2)約 16 GB(RTX 4090)
学習時間(7B、1万件)約 8 時間約 1 時間
性能(特定タスク)ベースライン 100%95〜99%
ストレージ14 GB(fp16)50〜200 MB

Rank 別パラメータ削減率(LLaMA 3 8B の場合)

LoRA Rank r学習パラメータ削減率適用ユースケース
r=1約 200万99.98%単純なスタイル変換
r=4約 800万99.90%ドメイン適応
r=16約 3,200万99.60%タスク特化
r=64約 1.3億98.4%複雑なタスク
フル80億0%最大性能が必要な場合

実装例(Hugging Face PEFT)

from peft import LoraConfig, get_peft_model, TaskType
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Meta-Llama-3-8B",
    torch_dtype=torch.float16,
    device_map="auto"
)

lora_config = LoraConfig(
    task_type=TaskType.CAUSAL_LM,
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.1,
    bias="none",
)

model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# trainable params: 3,670,016 || all params: 8,033,669,120 || trainable%: 0.0457

LoRA の派生手法

  • QLoRA: 4bit 量子化 + LoRA(単一 RTX 4090 で 65B モデルのファインチューニング可能)
  • DoRA: 重みを magnitude + direction に分解して LoRA を適用(精度向上)
  • LoRA+: A と B の学習率を異なる値に設定(2024 年提案、収束速度向上)
  • VeRA: LoRA の A と B を共有してさらにパラメータ削減

よくある質問(FAQ)

Q1: LoRA と Stable Diffusion の LoRA は同じですか? A: 原理は同じですが、Stable Diffusion の LoRA は U-Net と CLIP の Attention レイヤーに適用し、キャラクター・スタイル・概念を追加学習します。LLM LoRA と数式は共通です。

Q2: LoRA のランク r はどう選べばいいですか? A: 単純なスタイル変換なら r=4、ドメイン適応なら r=8〜16、複雑なタスク(コード生成等)なら r=32〜64 が目安です。

Q3: 複数の LoRA を同時に使えますか? A: 重み行列への加算なので複数 LoRA を数学的に合成できます(LoRA Merge)。ただし干渉が起きることもあるため、性能確認が必要です。

まとめ

  • 重み行列を低ランク行列の積で近似し、学習パラメータを 99% 削減するファインチューニング手法
  • RTX 4090 1 枚で 13B〜70B モデルのファインチューニングが可能
  • Stable Diffusion・LLaMA・Mistral 等で広く採用され、PEFT の事実上の標準
  • QLoRA・DoRA・LoRA+ など多数の派生手法が 2023-2025 年に続々登場
この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/5/24