LoRAとは
LoRA(Low-Rank Adaptation)とは、大規模言語モデル(LLM)のファインチューニングを効率的に行うための手法で、2021年にMicrosoftの研究者によって提案されました。モデルの全パラメータを更新する代わりに、低ランクの行列を追加的に学習させることで、少ない計算リソースとメモリで効果的なカスタマイズを実現します。
| ひとことで言うと | 元のモデルを凍結し、小さな追加部品だけを学習する軽量な調整法。 |
|---|---|
| どこで使う | 画像生成の画風追加、社内文体への適応、GPU1枚での追加学習。 |
| 注意点 | 大幅な知識の追加には不向き。元モデルとの組み合わせ管理が必要。 |
LoRAの仕組み
LoRAは、Transformerモデルの注意機構(Attention)における重み行列の更新を、低ランクの2つの小さな行列の積で近似します。例えば、d×dの重み行列の更新を、d×rとr×dの2つの行列の積で表現します(rはランクで、dよりはるかに小さい値)。これにより、更新すべきパラメータ数が大幅に削減され、元のモデルの1%以下のパラメータ数で同等以上の性能を達成できることが多いです。
1元の重みは固定1文字も書き換えない
▶
2小さな行列を追加低ランクの2つの行列
▶
3追加部分だけ学習学習対象が1%以下に
▶
4数MBの差分軽いファイルが完成
▶
5付け替えて利用用途ごとに差し替え
LoRAの利点と応用
LoRAの最大の利点は、計算コストの大幅な削減と、元のモデルのパラメータを変更しないため複数のLoRAアダプターを切り替えて使える点です。用途別に異なるLoRAアダプターを作成し、必要に応じて差し替えることが可能です。オープンソースのLLMコミュニティでは、LoRAアダプターの共有が活発に行われており、Hugging Faceなどのプラットフォームで多数のアダプターが公開されています。