AI・機械学習
上級

QLoRA(Quantized LoRA)(キューローラ)

LoRAファインチューニングに4bit量子化を組み合わせた手法。ベースモデルを4bitに圧縮した状態でLoRAアダプタを学習することで、VRAM使用量を劇的に削減し、消費者向けGPU1枚で大規模モデルのファインチューニングを実現する。

0 回閲覧
0 いいね

QLoRA(Quantized LoRA)とは、Tim Dettmers氏らが2023年の論文「QLoRA: Efficient Finetuning of Quantized LLMs」で提案した、4bit量子化とLoRAを組み合わせたファインチューニング手法である。従来のLoRAでもパラメータ効率は高かったが、QLoRAはベースモデル自体を4bitに量子化することで、さらにVRAM使用量を約50%削減する。

概要

QLoRAの核心技術は以下の3つ:

  1. 4-bit NormalFloat(NF4)量子化: 正規分布に最適化された4bit量子化フォーマット。FP4やINT4より情報損失が少ない
  2. 二重量子化(Double Quantization): 量子化定数自体をさらに量子化。メモリをさらに0.4GB/パラメータ削減
  3. 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-20GB28-36GB60-80GB120GB+
QLoRA (4bit)6-8GB10-14GB20-28GB36-48GB
QLoRA + grad ckpt4-6GB8-12GB16-24GB32-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%高精度

代表的な実行環境と所要リソース

環境GPUVRAM対応モデルサイズ月額目安
ローカル RTX 30601枚12GB〜7B電気代のみ
ローカル RTX 40901枚24GB〜13B電気代のみ
Google Colab FreeT416GB〜7B無料
Google Colab ProA10040GB〜33B¥1,500/月
RunPodA100 80GB80GB〜70B$1.89/時
Lambda CloudH10080GB〜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手法

比較項目QLoRALoRA (fp16)Full FTPrefix Tuning
VRAM (7B)6-8GB16-20GB60GB+8-12GB
精度 (vs Full FT)96-99%97-99%100%85-95%
学習速度中速遅最速
実装難易度低低中中
アダプタサイズ30-50MB30-50MBN/A1-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をカスタマイズする最も実用的な手法