LoRAとQLoRA
LoRA(ローラ)は、モデル全体を作り直さずに小さな「差分」だけを追加学習するファインチューニング手法です。QLoRA(キューローラ)はその発展形で、土台のモデルを4bitに量子化してから差分を学習することで、コンシューマGPUでも数十Bクラスの追加学習を現実にしました。Hugging Faceに派生モデルがあふれている技術的な理由が、この2つです。
LoRA — 重みは凍結、差分だけ学習
通常のファインチューニングはモデルの全パラメータを更新するため、学習には推論よりはるかに多くのメモリが必要です(重みに加えて勾配やオプティマイザの状態も持つため、8Bクラスのフル微調整で100GB級)。LoRA(Low-Rank Adaptation)は発想を変えて、元の重みは凍結したまま、各層に小さな低ランク行列のペアを差し込み、そこだけを学習します。学習対象は全体の1%前後まで減り、出来上がる「アダプタ」ファイルは数十〜数百MB——元のモデルに後から重ねられる差分パッチのようなものです。
QLoRA — 4bit化した土台の上で学習する
QLoRAはさらに、凍結しておく土台のモデル自体を4bit(NF4形式)に量子化してメモリを削り、その上でLoRA差分を学習します。原論文は65Bモデルの微調整をGPU1枚(48GB)で実証——それまでサーバーGPUを並べる前提だった規模です。8Bクラスなら10GB前後のVRAMで追加学習が視野に入り、FT高速化ライブラリのUnslothと組み合わせるのが定番の入門構成になっています。
読者との接点 — 派生モデルの生産装置
HFで見かける「◯◯を日本語FTした」「◯◯のロールプレイ特化版」といった派生モデルの多くは、この手法で個人のPCやレンタルGPUから生まれています(教える内容の設計はSFTの話)。配布時はアダプタを元の重みにマージ(合成)した完成品として出ることが多いですが、アダプタ単体で配布して実行時に重ねる方式もあり、llama.cppはGGUF形式のLoRAアダプタ読み込みに対応しています。
注意点をひとつ: マージした後に極端な低bit量子化(三値など)をかけると、せっかく学習した差分が丸めで消えてしまうことがあります。低bit系のモデルでアダプタを分離したまま実行する設計が出てきているのはこのためです。
関連用語
- SFT(指示チューニング) — 事前学習済みモデルに「指示への従い方」を教える工程。-Instruct 版はこれを経ている
- 量子化とGGUF — モデルを小さく圧縮して少ないVRAMで動かす技術。Q4_K_M などの記号の読み方
- Unsloth — FT高速化ライブラリと大手量子化ミラーの二つの顔。UD動的量子化の作り手
- VRAM(ビデオメモリ) — GPUに載っている専用メモリ。ローカルLLMで動くモデルの大きさを決める最重要スペック
参考資料(出典)
- https://arxiv.org/abs/2106.09685
- https://arxiv.org/abs/2305.14314
- https://huggingface.co/docs/peft/index
▶ あなたのPCで動くモデルを自動判定する(スペック送信なし・ブラウザ内完結)
上記はアフィリエイトリンクです。経由して課金された場合、当サイトに紹介料が入ります。