e4exp / paper_manager_abstract

0 stars 0 forks source link

LoRA: Low-Rank Adaptation of Large Language Models #550

Open e4exp opened 3 years ago

e4exp commented 3 years ago

自然言語処理のパラダイムは、一般的なドメインデータを用いて大規模な事前学習を行い、特定のタスクやドメインに適応させるというものが主流です。 しかし、大規模な事前学習を行うと、モデルの全パラメータを再学習する従来の微調整が困難になります。 GPT-3 175Bを例にとると、175B個のパラメータを持つ微調整済みのモデルを多数の独立したインスタンスとして展開することは、非常にコストがかかります。 そこで、事前に学習したモデルの重みを凍結し、学習可能なランク分解行列をTransformerアーキテクチャの各層に注入することで、下流のタスクで学習可能なパラメータ数を大幅に削減する「Low-Rank Adaptation(LoRA)」を提案します。 GPT-3において、LoRAは完全な微調整を行う場合と比較して、学習可能なパラメータの数を1万分の1に、計算機のハードウェア要件を3分の1に削減することができます。 LoRAは、GPT-3とGPT-2の両方において、学習可能なパラメータ数が少ないにもかかわらず、学習スループットが高く、推論レイテンシーが追加されていないにもかかわらず、モデルの品質はfine-tuningと同等かそれ以上の性能を示した。 また、言語モデルの適応におけるランク不足についての実証的な調査を行い、LoRAの有効性を明らかにしました。 GPT-2への実装はこちらのhttps URLで公開しています。

https://github.com/microsoft/LoRA

e4exp commented 3 years ago

1 はじめに

自然言語処理における多くのアプリケーションでは,大規模な事前学習済みの言語モデルを複数の下流のアプリケーションに適応させる必要があります。 このような適応は、通常、事前学習されたモデルのすべてのパラメータを更新する微調整によって行われます。 ファインチューニングの最大の欠点は、元のモデルと同じ数のパラメータを保存する必要があることです。 より大規模なモデルが数か月ごとに学習されるため、この問題は、GPT-2 [32]やBERT-large [9]では単なる「不便さ」から、1,750億個の学習可能なパラメータを持つGPT-3 [6]では重要な導入課題に変わります2。 多くの研究者は、一部のパラメータのみを適応させたり、新しいタスク用の外部モジュールを学習させたりすることで、この問題を軽減しようとしました。 この方法では,各タスクの事前学習モデルに少数のタスク固有のパラメータをロードするだけでよく,展開効率を大幅に高めることができます. しかし、実際には、既存の技術は、モデルの深さを拡張することで推論の待ち時間を発生させたり[15, 34]、モデルの使用可能なシーケンス長を減らしたりする[14, 19, 21, 25]。 さらに重要なことは、これらの先行する試みは、微調整のベースラインと一致しないことがあり、効率とモデルの質の間にトレードオフが生じていることである。 我々は[1, 20]からヒントを得て、学習された過剰パラメトリックモデルは、実際には低い固有次元に存在することを示した。 我々は、言語モデル適応における更新行列もまた、低い「本質的なランク」を持っているという仮説を立て、低ランク適応(LoRA)アプローチを提案します。 LoRAは、図1に示すように、元の行列を凍結したまま、代わりに密な層の更新のランク分解行列を注入して最適化することで、ニューラルネットワークの各密な層を間接的に学習することができます。 GPT-3 175Bを例にとると、完全なランク(d)が12288と高い場合でも、非常に低いランク(図1のrは1または2)で十分であり、LoRAは空間的にも計算的にも効率的であることを示している。 LoRAには以下のような利点があります。

用語

トランスフォーマーのアーキテクチャについては頻繁に言及しており、その寸法については従来の用語を使用しています。 隠れた大きさ、つまり活性化の大きさを「dmodel」と呼びます。 Wq、Wk、Wv、Woは、自己注意モジュールのクエリ/キー/値/出力の投影行列を指しています。 WまたはW0は、事前に学習された重み行列を意味し、∆Wは適応時の更新を意味する。 rは、LoRAモジュールのランクを表すために使用します。