LoRA

LoRA は、モデル全体を再学習せず、少量のパラメータを追加するだけでファインチューニングできる手法です。

LoRA のアイキャッチ図解
まずは、こう考えるとつかみやすいです。

全員を一から採用し直す代わりに、既存チームに少人数の専門担当を加えて特定の業務に対応させるような方法です。

ひとことで言うと

LoRA(Low-Rank Adaptation)は、既存モデルのパラメータを直接書き換えず、小さな追加モジュールだけを学習することで、コストを抑えつつ特定用途へ寄せるファインチューニングの手法です。

通常のファインチューニングとの違い

  • 通常のファインチューニング
    • モデル全体のパラメータを更新する
    • 学習に必要なメモリと時間が大きくなりやすい
    • 元のモデルとは別の重みを持つ
  • LoRA
    • 元のパラメータは凍結したまま、小さな行列を追加して学習する
    • 学習コストとメモリを大幅に抑えられる
    • 元のモデルに付け替えるアダプタとして扱える

どんな場面で使うか

  • 限られたGPUリソースでもファインチューニングしたいとき
  • 用途ごとに複数の調整済みモデルを使い分けたいとき
  • 元のモデルの汎用性を保ちながら、特定タスクに対応させたいとき
  • 社内用途向けに文体や出力形式を安定させたいとき

実務で気にするポイント

  • LoRA のランク(パラメータ数の絞り方)の設定が品質に影響する
  • 学習データの質が低いと、LoRA でも癖は悪化する
  • 評価指標を先に決めないと、どの程度改善したか判断しにくい
  • LoRA で対応できる変化の幅には限界があり、大きく振る舞いを変えたい場合は通常のファインチューニングが必要なこともある

注意: LoRA はファインチューニングのコストを下げる手段であって、学習データや評価設計が不要になるわけではありません。安く始められる分、品質の見極めを省きやすいので注意してください。