ひとことで言うと
LoRA(Low-Rank Adaptation)は、既存モデルのパラメータを直接書き換えず、小さな追加モジュールだけを学習することで、コストを抑えつつ特定用途へ寄せるファインチューニングの手法です。
通常のファインチューニングとの違い
- 通常のファインチューニング
- モデル全体のパラメータを更新する
- 学習に必要なメモリと時間が大きくなりやすい
- 元のモデルとは別の重みを持つ
- LoRA
- 元のパラメータは凍結したまま、小さな行列を追加して学習する
- 学習コストとメモリを大幅に抑えられる
- 元のモデルに付け替えるアダプタとして扱える
どんな場面で使うか
- 限られたGPUリソースでもファインチューニングしたいとき
- 用途ごとに複数の調整済みモデルを使い分けたいとき
- 元のモデルの汎用性を保ちながら、特定タスクに対応させたいとき
- 社内用途向けに文体や出力形式を安定させたいとき
実務で気にするポイント
- LoRA のランク(パラメータ数の絞り方)の設定が品質に影響する
- 学習データの質が低いと、LoRA でも癖は悪化する
- 評価指標を先に決めないと、どの程度改善したか判断しにくい
- LoRA で対応できる変化の幅には限界があり、大きく振る舞いを変えたい場合は通常のファインチューニングが必要なこともある
注意: LoRA はファインチューニングのコストを下げる手段であって、学習データや評価設計が不要になるわけではありません。安く始められる分、品質の見極めを省きやすいので注意してください。