Skip to main content
QUICK REVIEW

[論文レビュー] LoRA: Low-Rank Adaptation of Large Language Models

J. Edward Hu, Yelong Shen|arXiv (Cornell University)|Jun 17, 2021
Topic Modeling参考文献 57被引用数 2,389
ひとこと要約

LoRA は事前学習済みの重みを凍結し、訓練可能な低秩行列を注入してトランスフォーマーを適応させ、訓練可能パラメータを大幅に抑え、推論時の遅延も増やさずに同等かそれ以上の性能を達成します。

ABSTRACT

An important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes less feasible. Using GPT-3 175B as an example -- deploying independent instances of fine-tuned models, each with 175B parameters, is prohibitively expensive. We propose Low-Rank Adaptation, or LoRA, which freezes the pre-trained model weights and injects trainable rank decomposition matrices into each layer of the Transformer architecture, greatly reducing the number of trainable parameters for downstream tasks. Compared to GPT-3 175B fine-tuned with Adam, LoRA can reduce the number of trainable parameters by 10,000 times and the GPU memory requirement by 3 times. LoRA performs on-par or better than fine-tuning in model quality on RoBERTa, DeBERTa, GPT-2, and GPT-3, despite having fewer trainable parameters, a higher training throughput, and, unlike adapters, no additional inference latency. We also provide an empirical investigation into rank-deficiency in language model adaptation, which sheds light on the efficacy of LoRA. We release a package that facilitates the integration of LoRA with PyTorch models and provide our implementations and model checkpoints for RoBERTa, DeBERTa, and GPT-2 at https://github.com/microsoft/LoRA.

研究の動機と目的

  • 大規模事前学習済み言語モデルを下流タスクへ効率的に適応させる動機づけを行い、全層ファインチューニングなしで実現する。
  • 凍結された基底重みを保持しつつタスク固有の学習を可能にする低ランク更新機構を提案する。
  • 低ランク適応が非常に少ない訓練可能パラメータと資源使用の削減で、全ファインチューニングと同等以上の性能を達成し得ることを示す。
  • RoBERTa、DeBERTa、GPT-2、GPT-3(GPT-3 175B)を横断する実証的証拠を提供し、統合のための実用的ツールを提供する。

提案手法

  • 重み更新を低ランク分解として表現する: ΔW = BA with W0 + ΔW, where W0 is frozen, B ∈ R^{d×r}, A ∈ R^{r×k} and r ≪ min(d,k).
  • W0 を固定したまま A と B のみを訓練し、訓練可能なパラメータの数を実質的に削減する。
  • r を変化させたときの最適化を安定化させるために更新を α/r でスケールする。
  • 効率のために Transformer 層の自己注意投影 (Wq, Wk, Wv, Wo) に主に LoRA を適用し、MLP モジュールを凍結する。
  • 推論時には W0 と BA をマージして追加の遅延を避け、LoRA 重みを交換することで迅速なタスク切替を実現する。
  • LoRA パラメータはランク r と適用行列の数に応じてスケールし、非常に小さな r でも Θ が非常に小さくなるなど、顕著なパラメータ効率を実現する。
  • RoBERTa、DeBERTa、GPT-2 に対して他の適応手法との互換性を示し、RoBERTa、DeBERTa、GPT-2 のための PyTorch ツールとチェックポイントを提供する。

実験結果

リサーチクエスチョン

  • RQ1LoRA を適応させるべき Transformer 重み行列のサブセットは、固定パラメータ予算の下で下流の性能を最適化するためにどれか。
  • RQ2学習された重み更新 ΔW は本質的に低ランクか、実務上有効なランク r はどれくらいか。
  • RQ3ΔW は凍結重み W0 にどの程度関連するのか、ΔW は W0 とどの程度相関するのか。
  • RQ4LoRA は非常に大規模なモデル(例:GPT-3 175B)に拡張しても、全ファインチューニングと比較してタスク性能を維持・向上できるのか。

主な発見

  • LoRA は GPT-3 175B に対する全ファインチューニングと比較して訓練可能パラメータを最大 roughly 10,000x 減らすことができる。
  • 凍結パラメータの勾配を保存する必要がないため、トレーニング時の VRAM 使用量を約 2/3 程度削減できる。
  • LoRA を用いた訓練スループットは全ファインチューニングを上回ることがある(例: GPT-3 175B の比較設定で V100 あたり 32.5 トークン/s に対し LoRA で 43.1 トークン/s)。
  • RoBERTa、DeBERTa、GPT-2、GPT-3 の複数タスクで、はるかに少ない訓練可能パラメータながらファインチューニングと同等以上の性能を達成。
  • GPT-3 175B では、可変小ランク(例: r が各適用行列ごとに 2–8 程度)で強力な性能を発揮し、WikiSQL や MNLI-matched のようなタスクで良好なスケーラビリティを示す。
  • LoRA は適用後の重みを凍結重みと統合してデプロイできるため、追加の推論遅延を生じさせない。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。