LoRA
Low-Rank Adaptation の略。巨大な事前学習モデルを効率的にファインチューニングする手法。モデル全体を再学習するのではなく、低ランク行列の差分だけを学習する。
仕組み
従来のファインチューニングでは、モデルの重み行列 W を直接更新する。LoRAでは、W を固定したまま、小さな行列 A と B の積(低ランク行列)を加算する。
出力 = W × 入力 + (A × B) × 入力
↑固定 ↑学習対象
A と B は元の行列よりずっと小さいため、学習パラメータ数が劇的に減少する。
利点
- 軽量: 数十MB〜数百MBのファイルサイズ
- 合成可能: 複数のLoRAを組み合わせられる
- ベースモデル非破壊: 元のモデルを変更しない
LLMと画像生成での違い
LLMでのLoRA
- 文体、出力形式の調整
- 特定ドメインへの特化
- 数百〜数千件のデータで学習
画像生成でのLoRA
- スタイル: 特定の画風・タッチ
- キャラクター: 特定の人物・キャラクター
- 概念: 特定のオブジェクト、シチュエーション
Civitaiなどで数万種類のLoRAが共有されており、エコシステムが発達している。
LyCORISファミリー
LoRAの発展形として様々な手法が提案されている。
| 手法 | 特徴 | 向いている用途 |
|---|---|---|
| LoRA | 標準的、互換性◎ | 汎用 |
| LoCon | Conv層も学習 | キャラクター |
| LoHa | Hadamard積で汎化 | スタイル |
| DoRA | magnitude/direction分解 | 高品質(学習時間2倍) |
DoRA(Weight-Decomposed Low-Rank Adaptation)は2024年にNvidiaが提案。フルファインチューニングに近い品質を低コストで実現できる。