QLoRA(Quantized Low-Rank Adaptation)とは、4ビット量子化されたベースモデル上でLoRAアダプタを学習する効率的なファインチューニング手法である。Washington大学のDettmersらが2023年に発表し、48GBのGPU 1枚で65Bパラメータモデルのファインチューニングを可能にした。
QLoRA(Quantized Low-Rank Adaptation)は、大規模言語モデルのファインチューニングに必要なGPUメモリを大幅に削減する画期的な手法である。従来のフルファインチューニングでは70BモデルにA100 80GB×8枚(約$200,000相当)が必要だったが、QLoRAを使えばRTX 4090 24GB 1枚(約30万円)で同等の品質を達成できる。
QLoRAは3つの技術革新を組み合わせている。
ベースモデルの重みはNF4で凍結され、推論時のみFP16にデクォンタイズされる。学習可能なパラメータはLoRAアダプタ(低ランク行列A, B)のみで、全パラメータの0.1-1%程度である。
| 項目 | フルFT | LoRA | QLoRA |
|---|---|---|---|
| 学習パラメータ | 100% | 0.1-1% | 0.1-1% |
| ベースモデル精度 | FP16/BF16 | FP16/BF16 | NF4 (4bit) |
| 7Bモデル VRAM | 56GB+ | 16-24GB | 6-10GB |
| 70Bモデル VRAM | 560GB+ | 160-240GB | 24-48GB |
| 性能(vs フルFT) | 100% | 97-99% | 95-97% |
| 学習速度 | 基準 |
| 1.5-2x高速 |
| 1.2-1.5x高速 |
QLoRAのファインチューニングは、HuggingFaceのPEFTライブラリとBitsAndBytesを組み合わせて実装する。主要なハイパーパラメータは以下の通り。
| GPU | VRAM | 最大モデルサイズ | 実効バッチサイズ | 備考 |
|---|---|---|---|---|
| RTX 3060 | 12GB | 7B | 1-2 | Flash Attention推奨 |
| RTX 4070 Ti | 12GB | 13B | 1 | gradient checkpointing必須 |
| RTX 4090 | 24GB | 70B | 1-2 | r=16で安定 |
| RTX 5090 | 32GB | 70B | 2-4 | r=64まで対応 |
| A100 40GB | 40GB | 70B | 4-8 | 本番ファインチューニング推奨 |
| A100 80GB | 80GB | 120B+ | 8-16 | Mixtral 8x22B対応 |
2024-2025年にかけて、QLoRAの発展形や代替手法が複数登場している。
2026年現在、QLoRAの実行には以下のフレームワークが広く使われている。
Q1: QLoRAでファインチューニングした結果はフルファインチューニングと同等ですか? A: ベンチマーク上ではフルFTの95-97%の性能を維持する。特にドメイン特化タスク(医療・法律・コード生成)ではQLoRAで十分な品質が得られることが多い。Guanaco-65BはQLoRAでファインチューニングされ、ChatGPTの99.3%のチャット性能を達成した。
Q2: QLoRAのファインチューニングにはどのくらい時間がかかりますか? A: 7Bモデル・5万サンプルの場合、RTX 4090で約2-4時間。70Bモデルでは同条件で12-24時間。Unslothを使うと30-50%短縮される。
Q3: QLoRAアダプタのマージ後に再量子化は必要ですか? A: LoRAアダプタをベースモデルにマージするとFP16の完全なモデルが得られる。推論用にさらにGGUFやAWQで量子化することが一般的。マージ→GGUF変換のパイプラインはllama.cppのconvertスクリプトで自動化できる。