LoRAとは?大規模言語モデルを効率的にファインチューニングする手法

LoRA:大規模モデルを手軽にカスタマイズする革新的手法

AI初心者

AIを知りたい

先生、LLMをファインチューニングしたいんですが、GPUメモリが足りなくて困っています。LoRAを使えば解決できると聞いたのですが、本当ですか?

AIエンジニア

AIエンジニア

本当だよ。LoRA(Low-Rank Adaptation)は、モデルの全パラメータを更新するのではなく、低ランクの小さな行列だけを追加学習する手法なんだ。例えば70億パラメータのモデルでも、LoRAなら追加パラメータはわずか数百万で済むから、必要なGPUメモリが10分の1以下になるよ。

AI初心者

AIを知りたい

10分の1以下ですか!でも、そんなに少ないパラメータで性能は落ちないんですか?

AIエンジニア

AIエンジニア

驚くべきことに、LoRAはフルファインチューニングとほぼ同等の性能を達成できることが多いんだ。これはMicrosoftの研究者が2021年に発表した論文で実証されたよ。大規模言語モデルの重み行列は「低ランク」の構造を持っているため、少数のパラメータ変更だけでタスクへの適応が可能なんだ。

LoRAとは。

LoRA(Low-Rank Adaptation of Large Language Models)は、Microsoftの研究チームが2021年に発表した、大規模言語モデルの効率的なファインチューニング手法です。事前学習済みモデルの重み行列を直接更新する代わりに、低ランク分解した2つの小さな行列(AとB)を各レイヤーに追加し、この追加分だけを学習します。これにより、学習パラメータ数を元のモデルの0.1〜1%に抑えつつ、フルファインチューニングに匹敵する精度を実現します。2026年現在、Llama 3やMistralなどのオープンソースLLM、Stable Diffusionなどの画像生成モデルのカスタマイズに広く使われており、PEFT(Parameter-Efficient Fine-Tuning)の代表的な手法として定着しています。

LoRAの仕組みと技術的な特徴

LoRAの核心は「低ランク分解」という線形代数のテクニックにあります。具体的な仕組みを見てみましょう。

項目 フルファインチューニング LoRA QLoRA
更新パラメータ 全パラメータ(数十億) 追加行列のみ(数百万) 追加行列のみ(4bit量子化)
7Bモデルの必要VRAM 約56GB(bf16) 約16GB(bf16) 約6GB(4bit)
学習速度 遅い フルの50〜70% フルの40〜60%
精度(フル比) 100%(基準) 95〜100% 90〜98%
必要GPU A100 80GB×複数 A100 40GB×1 RTX 4090(24GB)×1
モデルの切り替え 全モデルを保存・読込 アダプタのみ差し替え アダプタのみ差し替え

AI初心者

AIを知りたい

QLoRAならRTX 4090で70億パラメータのモデルをファインチューニングできるんですね!低ランク分解って具体的にどういう仕組みですか?

AIエンジニア

AIエンジニア

分かりやすく説明するね。例えば、元のモデルの重み行列Wが4096×4096のサイズだとする。フルファインチューニングでは、この約1,677万個のパラメータ全てを更新するよね。LoRAでは代わりに、4096×16の行列Aと16×4096の行列Bを追加するんだ。ランク(r)を16とすると、追加パラメータは約13万個。元の0.8%で済むんだよ。推論時は W + A×B の結果を使い、元の重みWに低ランク行列の積を足し合わせるだけだから、推論速度の低下もほぼないんだ。

LoRAの主要パラメータと設定ガイド

LoRAを実際に使う際に重要な設定パラメータを理解しましょう。

パラメータ 説明 推奨値 影響
rank(r) 低ランク行列のランク 8〜64(一般的に16) 大きいほど表現力が高いが、メモリ使用量も増加
alpha(α) スケーリング係数 rankの2倍(例: r=16なら32) 学習率の調整に影響
target_modules LoRAを適用するレイヤー q_proj, v_proj(最低限) 多くのレイヤーに適用するほど精度が向上
dropout LoRAレイヤーのドロップアウト率 0.05〜0.1 過学習を防ぐ
learning_rate 学習率 1e-4〜3e-4 フルファインチューニングより高めに設定

AI初心者

AIを知りたい

Stable Diffusionでもよく「LoRA」を見かけますが、LLM以外にも使えるんですか?

AIエンジニア

AIエンジニア

もちろん使えるよ。LoRAはもともとTransformerアーキテクチャ向けに開発されたけど、今ではあらゆるディープラーニングモデルに適用可能だ。特にStable DiffusionのLoRAは、わずか20〜50枚の画像で特定の画風やキャラクターを学習できるため、AIイラスト界隈で爆発的に普及したよ。Civitaiなどのプラットフォームには数十万のLoRAモデルが公開されているんだ。

AI初心者

AIを知りたい

LoRAのおかげで、個人でもAIモデルをカスタマイズできる時代になったんですね。さっそくHugging Faceのチュートリアルを試してみます!

AIエンジニア

AIエンジニア

そうだね。Hugging FaceのPEFTライブラリを使えば、わずか数行のコードでLoRAを適用できるよ。まずはLlama 3の7Bモデルに対してQLoRAで日本語タスクのファインチューニングを試すのがおすすめだ。Google ColabのT4 GPU(無料枠)でも動かせるから、ぜひチャレンジしてみてね。