約2分

LoRA:モデル全体を変えずに追加学習する方法

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

LoRA(Low-Rank Adaptation)は、モデル全体を学習し直さずに、ファインチューニングをするための手法です。全員を一から採用し直す代わりに、既存のチームへ少人数の専門担当を加えて、特定の業務に対応させる。元のモデルのパラメータには手を付けず、小さな追加部品だけを学習させることで、費用を抑えながら用途に寄せます。

通常のファインチューニングLoRA
学習させる範囲モデル全体のパラメータを更新する元のパラメータは固定し、小さな行列を追加して学習する
学習の負担必要なメモリと時間が大きくなりやすい大幅に抑えられる
できあがるもの元のモデルとは別の重みを持つモデル元のモデルに付け替えられる部品(アダプタ)

付け替えられる部品になるので、用途ごとに調整したものを複数用意して使い分けられます。元のモデルが持つ汎用的な力を保ったまま、特定の仕事や、社内向けの文体や出力形式に寄せたいときに向いています。GPU の資源が限られていても始めやすいのも利点です。

安く始められるぶん見落としやすいこと

LoRA が下げてくれるのは、学習の費用です。学習データの質を吟味することや、評価の設計が不要になるわけではありません。むしろ気軽に始められるぶん、品質の見極めを省きやすくなります。

学習データの質が低ければ、LoRA でも癖は悪くなります。どこまでパラメータを絞るか(ランク)の設定も、品質に影響します。何をもって改善とするかの評価指標を先に決めておかないと、どれくらいよくなったのかを判断できません。

また、LoRA で変えられる振る舞いの幅には限りがあります。大きく振る舞いを変えたい場合は、通常のファインチューニングが必要になることもあります。