QLoRA(Quantized LoRA)(キューローラ)
LoRAファインチューニングに4bit量子化を組み合わせた手法。ベースモデルを4bitに圧縮した状態でLoRAアダプタを学習することで、VRAM使用量を劇的に削減し、消費者向けGPU1枚で大規模モデルのファインチューニングを実現する。
QLoRA(Quantized LoRA)とは、Tim Dettmers氏らが2023年の論文「QLoRA: Efficient Finetuning of Quantized LLMs」で提案した、4bit量子化とLoRAを組み合わせたファインチューニング手法である。従来のLoRAでもパラメータ効率は高かったが、QLoRAはベースモデル自体を4bitに量子化することで、さらにVRAM使用量を約50%削減する。
概要
QLoRAの核心技術は以下の3つ:
- 4-bit NormalFloat(NF4)量子化: 正規分布に最適化された4bit量子化フォーマット。FP4やINT4より情報損失が少ない
- 二重量子化(Double Quantization): 量子化定数自体をさらに量子化。メモリをさらに0.4GB/パラメータ削減
- Paged Optimizers: GPUメモリ不足時にCPUメモリへ自動退避。OOM(Out of Memory)を防止
これにより、65Bパラメータモデル(Llama 65B)のファインチューニングが48GB GPU(A6000)1枚で可能になった。7Bモデルならば12GBのRTX 3060で学習できる。
VRAM使用量の比較
| 手法 | 7Bモデル | 13Bモデル | 33Bモデル | 70Bモデル |
|---|---|---|---|---|
| Full FT (fp16) | 60GB+ | 120GB+ | 240GB+ | 500GB+ |
| LoRA (fp16) | 16-20GB | 28-36GB | 60-80GB | 120GB+ |
| QLoRA (4bit) | 6-8GB | 10-14GB | 20-28GB | 36-48GB |
| QLoRA + grad ckpt | 4-6GB | 8-12GB | 16-24GB | 32-40GB |
主な特徴・仕組み
- NF4量子化: 事前学習済みモデルの重みは正規分布に近いため、NF4は均等INT4より最適。理論的に情報損失最小
- 逆量子化計算: 学習時にはNF4→BF16に逆量子化してからLoRA行列との演算を実行。推論精度を維持
- Gradient Checkpointing対応: メモリ節約のため中間活性値を再計算。速度は10〜20%低下するがVRAMを追加で30%削減
- bitsandbytes統合: Tim Dettmers氏のbitsandbytesライブラリがQLoRAの標準実装。pip install一発で利用可能
- Hugging Face PEFT連携: PEFTライブラリのLoraConfigにquantization_configを追加するだけでQLoRA化
- 精度: Full FT(16bit)と比較して96〜99%の精度を維持。Chatbot ArenaスコアではFull FTとの差は1〜2%以内
- 学習速度: LoRA(16bit)より10〜30%遅い(量子化/逆量子化のオーバーヘッド)。ただしバッチサイズを増やせるため実効スループットは同等以上
- 量子化フォーマット: NF4が標準だがFP4も選択可能。NF4の方が一般的に0.5〜1%高精度
代表的な実行環境と所要リソース
| 環境 | GPU | VRAM | 対応モデルサイズ | 月額目安 |
|---|---|---|---|---|
| ローカル RTX 3060 | 1枚 | 12GB | 〜7B | 電気代のみ |
| ローカル RTX 4090 | 1枚 | 24GB | 〜13B | 電気代のみ |
| Google Colab Free | T4 | 16GB | 〜7B | 無料 |
| Google Colab Pro | A100 | 40GB | 〜33B | ¥1,500/月 |
| RunPod | A100 80GB | 80GB | 〜70B | $1.89/時 |
| Lambda Cloud | H100 | 80GB | 〜70B | $2.49/時 |
実践的な設定例
Unslothを使ったQLoRA実行の標準設定:
ベースモデル: unsloth/Meta-Llama-3.1-8B
量子化: 4bit (NF4)
LoRA rank: 16
LoRA alpha: 32
target_modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
learning_rate: 2e-4
batch_size: 4 (gradient_accumulation_steps=4で実効16)
max_seq_length: 2048
epochs: 3
この設定でRTX 4090の場合、5,000件のデータセットを約2時間で学習完了。VRAM使用量は約8GB。
QLoRA vs 他のPEFT手法
| 比較項目 | QLoRA | LoRA (fp16) | Full FT | Prefix Tuning |
|---|---|---|---|---|
| VRAM (7B) | 6-8GB | 16-20GB | 60GB+ | 8-12GB |
| 精度 (vs Full FT) | 96-99% | 97-99% | 100% | 85-95% |
| 学習速度 | 中 | 速 | 遅 | 最速 |
| 実装難易度 | 低 | 低 | 中 | 中 |
| アダプタサイズ | 30-50MB | 30-50MB | N/A | 1-5MB |
よくある質問(FAQ)
Q1: QLoRAの4bit量子化で精度は大丈夫? A: NF4量子化はモデルの重み分布に最適化されているため、情報損失は最小限。論文の実験ではGuanaco 65B(QLoRA)がChatGPTの99.3%のスコアを達成。実用上、Full FTとの差は人間が知覚できないレベル。
Q2: QLoRAで学習したモデルの推論はどうする? A: 2つの方法がある。(1) 4bitモデル+LoRAアダプタのまま推論(VRAM節約、やや遅い)、(2) アダプタをマージしてfp16/GGUF化して推論(高速、VRAM増)。本番運用では(2)が推奨。
Q3: どのGPUを買えばQLoRAできる? A: 7Bモデルなら12GBのRTX 3060(約3.5万円)で十分。13Bモデルも狙うならRTX 4090(24GB、約25万円)が最良。予算重視ならGoogle Colab Pro(T4/A100、月¥1,500)が初期投資ゼロで試せる。
まとめ
- QLoRAは4bit量子化+LoRAの組み合わせでVRAMを劇的削減する技術
- RTX 3060(12GB)で7Bモデル、RTX 4090(24GB)で13Bモデルのファインチューニングが可能
- Full FTの96〜99%精度を維持。NF4量子化が情報損失を最小化
- bitsandbytes + PEFT + Unslothのエコシステムが成熟し、導入障壁は極めて低い
- 2026年現在、個人・中小企業がLLMをカスタマイズする最も実用的な手法