- LoRAは事前学習済みモデルの重みを固定し、追加した小さな行列を学習して課題へ適応させる方法だ。
- 原論文は、複数の言語モデルと課題で、全重みを更新する微調整と比較した。
- 学習する重みや課題別の保存量は減るが、実行時には基盤モデル本体が必要だ。
何を確かめた研究か
大きな言語モデルを業務ごとに微調整すると、学習時のメモリだけでなく、課題ごとに保存する重みの量も膨らむ。たとえば部署別に多くの派生モデルを持つ場合、同じ基盤モデルの重みを何度も保存することになる。LoRAの原論文は、元の重みを固定し、少数の追加パラメータだけを学習しても、全重みを更新する方法に近い品質を得られるかを検証した。
LoRAは「Low-Rank Adaptation」の略である。モデルが本来持つ大きな重み行列の変化を、二つの小さな行列の積として表す。ここでいう「低ランク」は行列の表現を制限する数学的な条件で、課題そのものが簡単だという意味ではない。
どう検証したか
論文第4節では、元の重み行列を固定し、追加した二つの行列だけを学習する方法を定義する。Transformerの注意機構にある一部の重みへ適用する設計を中心に試した。学習後には追加分を元の重みへまとめられるため、著者らは特定のアダプター層と違って推論時の追加遅延を避けられると説明する。この主張は同論文の比較対象と実装条件に即して読むべきだ。
実験ではRoBERTa、DeBERTa、GPT-2、GPT-3を使い、全重みを更新する微調整や他のパラメータ効率のよい方法と比較した。第2版には初稿から比較対象、GLUE実験、アダプター遅延の検討が追加されている。版を固定せずに数値だけ引用すると、この差を見落としやすい。
何が分かったか
第2版の要約は、GPT-3の1750億パラメータのモデルをAdamで全面的に微調整する場合と比べ、学習対象パラメータ数を最大1万分の1、GPUメモリ使用量を約3分の1にできたと報告する。これは論文が設定したモデルと比較方法での数字であり、どのモデルや作業でも同じ割合になるという保証ではない。
著者らは複数の課題で、少ない学習対象パラメータでも全重みの微調整と同等以上の評価結果を示した。一方、モデルや課題によって適切な行列の位置、ランク、学習条件は変わる。論文第7節は、どの重み行列を適応させるかや、ランクを変えたときの効果を実験している。
限界は何か
「課題別の重みが小さい」と「基盤モデルの保存や実行が不要」は異なる。論文の脚注は、GPT-3の例で、課題別の追加重みを約35MBにできても、運用時には約350GBの基盤モデルがなお必要だと明記する。複数課題で共通の基盤を使う場合に保存量の利点が大きくなる。
また、LoRAは学習の方法であり、元モデルにない知識の正しさや、生成結果の安全性を自動的に保証しない。論文は限られたモデルと自然言語処理の課題で評価した。現在のすべてのモデル、量子化との組み合わせ、日本語の社内データに同じ数値を当てはめることはできない。
仕事との接点
複数の用途向けにモデルを調整するなら、基盤モデルを共用できる条件、追加重みの保存量、学習時メモリ、推論時の速度、課題ごとの正答率を一緒に比較する。保存量だけで採用を決めず、利用する環境で再測定したい。これはTRAIL編集部の検討方法であり、原論文が特定企業の費用削減額を実証したという意味ではない。