LoRA
LoRA (ローラ、Low-Rank Adaptation) は、大規模言語モデル(LLM)や画像生成モデルを効率的にファインチューニングするための手法である[1]。
従来のファインチューニングでは、モデルの全パラメータを対象に学習を行うため、計算コストやメモリ使用量が膨大になるという課題があった。LoRAは、モデルの各層に低ランクの行列を挿入し、その行列のみをトレーニングすることで、これらの課題を解決する[2][3]。
手法
編集LoRAでは、元の重み行列 W に対して、低ランクの行列 A と B を用いて、以下のように重みを更新する。
W' = W + A × B
行列 A と B は、元の行列 W よりもはるかに低いランクを持ち、その積 A * B によって、元の重み行列 W に対する小さな修正が表現される。学習時には、元の重み行列 W は固定され、行列 A と B のみが更新される。これにより、元のモデルの知識を保持したまま、特定のタスクに適応するための調整が可能になる[3]。
利点
編集LoRAは、従来のファインチューニング手法と比較して、以下の利点を持つ。
- 計算コストとメモリ使用量の削減: 低ランク行列を用いることで、計算コストとメモリ使用量を大幅に削減できる。
- 元のモデルの知識の保持: 元の重み行列を固定することで、元のモデルの知識を保持したままファインチューニングを行うことができる。
- タスクごとの行列の保存: タスクごとに学習した行列を別々に保存することで、複数のタスクに対応する際に、モデル全体を保存する必要がなくなり、ストレージ容量を節約できる。
- 高い汎用性: テキスト生成、質問応答、機械翻訳など、様々な自然言語処理タスクに適用可能である。また特定の人物や特定の絵柄の生成などの画像生成タスクにも適用ができる。
脚注
編集- ^ “LoRA(ローラ)とは|今年注目の画像生成AI (Stable Diffusion) のファインチューニングを試してみた”. Ledge.ai. 2024年8月16日閲覧。
- ^ “NVIDIA TensorRT-LLM による、LoRA LLM のチューニングとデプロイ”. NVIDIA 技術ブログ (2024年4月2日). 2024年8月11日閲覧。
- ^ a b “LoRA(ローラ)とは|今年注目の画像生成AI (Stable Diffusion) のファインチューニングを試してみた”. Ledge.ai. 2024年8月11日閲覧。