AI / Technology
LoRA大規模言語モデルを低ランク更新で適応する
全体微調整ではモデル全体を複製する一方、LoRAでは共有モデルに小さなタスク差分を付ける
図1(新規作成の概念図)。保存の考え方の比較。実際の容量はモデルと設定に依存する。根拠: 論文 §1, §4.2。
一言でいえば、LoRAは「巨大な本を書き換える」のではなく、「用途ごとの薄い訂正シートだけを作る」方法だ。論文が解く問題は、モデルが巨大になるほど、タスクごとに全パラメータを更新・保存する費用が現実的でなくなること。提案の変化は、元の重みを凍結し、必要な更新を低ランクの積に制限することにある。[論文 §1–2]
入力が凍結重みの経路と学習可能な低ランク経路に分かれ、最後に加算される
図2(新規作成の機構図)。AとBだけを学習し、元の重みは固定する。根拠: 論文 Figure 1, §4.1。
元の重み行列を 、タスク適応で必要な変化を とする。LoRAは を固定し、 と表す。元の行列の幅を 、低ランクの幅を とすれば、 にすることで、学習する量を小さくできる。前向き計算は 。つまり元の経路と小さな更新経路を足す。[論文 §4.1, Eq. 3]
凍結した重みとLoRA差分を推論前に統合し、通常の推論経路にする
図3(新規作成の配置図)。「追加遅延なし」は、差分を事前統合した構成での主張。根拠: 論文 §4.1。
学習後は を計算して に足し、通常の重みとして保存できる。そのため、アダプターのような追加の直列層を通らず、全体微調整済みモデルと比べて追加の推論遅延がない、というのが設計上の利点だ。別タスクへ切り替えるときは、差分を入れ替える。[論文 §4.1]
研究付録
原題: LoRA: Low-Rank Adaptation of Large Language Models
著者: Edward J. Hu ほか 7名 · Microsoft Corporation
公開: arXiv:2106.09685 v2(2021年10月16日)
一次資料: arXiv abstract · 論文全文
要点
3つだけ覚えるなら
- 大きなモデル本体は固定する。 タスクごとにモデル全体を学び直す代わりに、重みの「変化分」だけを小さく学ぶ。
- 変化分を2枚の細い行列で表す。 これが Low-Rank Adaptation(LoRA)の中心で、学習対象を大幅に減らす。
- 小さいことと性能は別問題だが、本論文の範囲では両立した。 RoBERTa、DeBERTa、GPT-2、GPT-3 175Bの実験で、LoRAは全体微調整と同等以上の結果を報告した。ただし、あらゆるモデルやタスクでの保証ではない。[論文 Abstract, §5]
一言でいえば、LoRAは「巨大な本を書き換える」のではなく、「用途ごとの薄い訂正シートだけを作る」方法だ。論文が解く問題は、モデルが巨大になるほど、タスクごとに全パラメータを更新・保存する費用が現実的でなくなること。提案の変化は、元の重みを凍結し、必要な更新を低ランクの積に制限することにある。[論文 §1–2]
問題
全体微調整は何を重くするのか
通常の全体微調整では、下流タスクごとに事前学習済みモデルの全パラメータを更新する。そのため、1750億パラメータのGPT-3なら、用途ごとに同規模の重みを持つことになる。学習時には勾配だけでなく、Adamのような最適化手法の状態も必要で、保存・GPUメモリ・モデル切り替えの負担が膨らむ。[論文 Abstract, §1–2]
既存の省パラメータ法にも代償がある
論文が比較する代表例は、Transformerブロックに小さな層を足すアダプター と、入力側に学習可能な表現を加えるprefix tuning だ。アダプターは直列の計算を増やすため、とくに小バッチのオンライン推論で遅延を増やしうる。prefix tuningは利用可能な系列長を削り、最適化も不安定になりうる、と著者らは述べる。GPT-2 Mediumの測定では、短い系列・バッチ1でアダプターの遅延増加が最大30.3%だった。[論文 §3, Table 1, Appendix B]
方法
更新差分だけを低ランクにする
元の重み行列を 、タスク適応で必要な変化を とする。LoRAは を固定し、 と表す。元の行列の幅を 、低ランクの幅を とすれば、 にすることで、学習する量を小さくできる。前向き計算は 。つまり元の経路と小さな更新経路を足す。[論文 §4.1, Eq. 3]
Transformerのどこへ入れるか
この論文の主実験では、自己注意の投影行列のうち主にqueryとvalueへLoRAを適用し、MLPは凍結した。LoRA自体は密結合層一般に使える設計だが、MLP、LayerNorm、biasへの適用は十分に調べておらず、将来課題としている。[論文 §4.2]
推論時に差分を統合する
学習後は を計算して に足し、通常の重みとして保存できる。そのため、アダプターのような追加の直列層を通らず、全体微調整済みモデルと比べて追加の推論遅延がない、というのが設計上の利点だ。別タスクへ切り替えるときは、差分を入れ替える。[論文 §4.1]
証拠と限界
最も強い数値
GPT-3 175Bでは、queryとvalueにLoRAを適用した設定で、チェックポイントが350GBから35MBへ約1万分の1になった。学習時VRAMは1.2TBから350GB、学習スループットはV100 1基あたり32.5から43.1 tokens/sへ上がったと報告されている。一方、配備時には共有する350GBの基盤モデル自体が依然必要である。[論文 §4.2, footnotes 4–5]
| GPT-3 175Bでの比較 | 全体微調整 | LoRA | 出典 |
|---|---|---|---|
| 学習対象パラメータ | 175B | 4.7M | Table 4 |
| WikiSQL 検証精度 | 73.8 | 73.4 | Table 15 |
| MNLI-m 検証精度 | 89.5 | 91.7 | Table 15 |
| SAMSum ROUGE-1/2/L | 52.0 / 28.0 / 44.5 | 53.8 / 29.8 / 45.9 | Table 4 |
この表の読み方で重要なのは、LoRAが常に全指標で勝つことではない。WikiSQLでは全体微調整がわずかに高い一方、MNLI-mとSAMSumではLoRAが高い。著者らの広い結論は「大幅に少ない学習パラメータで、比較した複数のモデルと課題において同等以上」である。[論文 Abstract, §5.5]
何がまだ分からないか
- 実験は主に2021年時点のTransformer言語モデルとNLU/NLG課題であり、後年のモデル、画像・音声、長文、強化学習まで一般化できるとは示していない。
- GPT-3実験は高コストのため、各表セルに複数seedの標準偏差を載せず、タスクごとの典型値だけを示している。[論文 §5.5]
- 低ランクで十分という説明は実証的な仮説で、すべての難しい適応に小さい が足りるという理論保証ではない。[論文 §1, §7]
- 差分を基盤重みに統合して遅延を消す構成では、異なるタスクの入力を同じバッチで扱うのが簡単ではない。[論文 §4.2]
実務的な意味
どんな場面で効くか
LoRAが特に合うのは、同じ基盤モデルから多くの用途別モデルを作りたいときだ。共有モデルを1つ置き、分類、要約、SQL生成などの小さな差分だけを保存・配布できる。学習メモリの節約も期待できる。ただし、これは基盤モデルの推論コストそのものを小さくする圧縮法ではない。小さくなるのは主に学習対象とタスク別差分であり、巨大な基盤モデルは残る。 [論文 §4.2]
導入前に確認すること
まず、全体微調整と同じデータ分割・評価指標で品質を比較する。次に、ランク 、適用する重み行列、学習率を検証し、チェックポイントだけでなくピークVRAMと学習時間を測る。配備では、タスク切り替え頻度と異タスク混在バッチの必要性を確認する。論文の数字をそのまま容量計画に使わず、自分のモデルと実装で再測定するのが安全だ。
検証用の読みどころ
- 仕組みを追う: §4.1–4.2
- GPT-3の性能比較を確かめる: Table 4, Table 15
- 低ランク仮説の分析を見る: §7
- データセットとハイパーパラメータを再現する: Appendix C–D
- アダプター遅延の条件を確認する: Table 1, Appendix B
この論文についての3つの重要な質問
LoRA:大規模言語モデルを低ランク更新で適応するはどの課題を扱いますか?
この論文の主実験では、自己注意の投影行列のうち主にqueryとvalueへLoRAを適用し、MLPは凍結した。LoRA自体は密結合層一般に使える設計だが、MLP、LayerNorm、biasへの適用は十分に調べておらず、将来課題としている。[論文 §4.2]
LoRA:大規模言語モデルを低ランク更新で適応するの中心的な主張を支える根拠は何ですか?
論文が比較する代表例は、Transformerブロックに小さな層を足すアダプター と、入力側に学習可能な表現を加えるprefix tuning だ。アダプターは直列の計算を増やすため、とくに小バッチのオンライン推論で遅延を増やしうる。prefix tuningは利用可能な系列長を削り、最適化も不安定になりうる、と著者らは述べる。GPT-2 Mediumの測定では、短い系列・バッチ1でアダプターの遅延増加が最大30.3%だった。[論文 §3, Table 1, Appendix B]
LoRA:大規模言語モデルを低ランク更新で適応するを読むときに注意すべき限界は何ですか?
GPT-3 175Bでは、queryとvalueにLoRAを適用した設定で、チェックポイントが350GBから35MBへ約1万分の1になった。学習時VRAMは1.2TBから350GB、学習スループットはV100 1基あたり32.5から43.1 tokens/sへ上がったと報告されている。一方、配備時には共有する350GBの基盤モデル自体が依然必要である。[論文 §4.2, footnotes 4–5]