LoRA

Low-Rank Adaptation

LoRAとは

LoRA(Low-Rank Adaptation)とは、大規模言語モデル(LLM)のファインチューニングを効率的に行うための手法で、2021年にMicrosoftの研究者によって提案されました。モデルの全パラメータを更新する代わりに、低ランクの行列を追加的に学習させることで、少ない計算リソースとメモリで効果的なカスタマイズを実現します。

表:LoRAの要点まとめ
ひとことで言うと元のモデルを凍結し、小さな追加部品だけを学習する軽量な調整法。
どこで使う画像生成の画風追加、社内文体への適応、GPU1枚での追加学習。
注意点大幅な知識の追加には不向き。元モデルとの組み合わせ管理が必要。

LoRAの仕組み

LoRAは、Transformerモデルの注意機構(Attention)における重み行列の更新を、低ランクの2つの小さな行列の積で近似します。例えば、d×dの重み行列の更新を、d×rとr×dの2つの行列の積で表現します(rはランクで、dよりはるかに小さい値)。これにより、更新すべきパラメータ数が大幅に削減され、元のモデルの1%以下のパラメータ数で同等以上の性能を達成できることが多いです。

図:LoRAが軽い理由
1元の重みは固定1文字も書き換えない
▶
2小さな行列を追加低ランクの2つの行列
▶
3追加部分だけ学習学習対象が1%以下に
▶
4数MBの差分軽いファイルが完成
▶
5付け替えて利用用途ごとに差し替え

LoRAの利点と応用

LoRAの最大の利点は、計算コストの大幅な削減と、元のモデルのパラメータを変更しないため複数のLoRAアダプターを切り替えて使える点です。用途別に異なるLoRAアダプターを作成し、必要に応じて差し替えることが可能です。オープンソースのLLMコミュニティでは、LoRAアダプターの共有が活発に行われており、Hugging Faceなどのプラットフォームで多数のアダプターが公開されています。