ホームページ >テクノロジー周辺機器 >AI >650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

王林
王林転載
2023-06-20 15:57:581464ブラウズ

大規模モデルの方向では、テクノロジー大手が大規模なモデルをトレーニングしており、学術界はモデルを最適化する方法を考えています。最近、コンピューティング能力を最適化する方法が新たなレベルに上昇しました。

大規模言語モデル (LLM) は、自然言語処理 (NLP) の分野に革命をもたらし、創発やひらめきなどの並外れた能力を実証しました。ただし、特定の一般的な機能を備えたモデルを構築したい場合は、数十億のパラメーターが必要となり、NLP 研究の敷居が大幅に高くなります。 LLM モデルのチューニング プロセスには通常、8×80GB GPU デバイスなどの高価な GPU リソースが必要となるため、小規模の研究所や企業がこの分野の研究に参加することが困難になります。

最近、限られたリソースで LLM を調整するためのソリューションを提供する、LoRA やプレフィックスチューニングなどのパラメーター効率的微調整技術 (PEFT) が研究されています。ただし、これらの方法は、パラメータ効率の高い微調整よりも強力な方法として認識されているフルパラメータ微調整に対する実用的な解決策を提供しません。

復旦大学の邱西鵬氏のチームが先週提出した論文「リソースが限られた大規模言語モデルのためのフルパラメータ微調整」の中で、研究者らは新しいオプティマイザー LOw-Memory Optimization (ロモ)。

LOMO を既存のメモリ節約技術と統合することにより、新しいアプローチでは標準のアプローチ (DeepSpeed ソリューション) と比較してメモリ使用量が 10.8% に削減されます。その結果、新しいアプローチにより、それぞれ 24 GB のメモリを搭載した 8 × RTX 3090 を搭載したマシン上で 65B モデルの完全なパラメーター微調整が可能になります。

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

論文リンク: https://arxiv.org/abs/2306.09782

この研究では、著者は LLM のメモリ使用量の 4 つの側面 (アクティベーション、オプティマイザーの状態、勾配テンソルとパラメーター) を分析し、次の 3 つの側面でトレーニング プロセスを最適化しました。

  1. 私たちはアルゴリズムの観点からオプテ​​ィマイザーの機能を再検討し、LLM の完全なパラメーターを微調整するには SGD が優れた代替手段であることがわかりました。これにより、SGD は中間状態を保存しないため、作成者はオプティマイザ状態の一部全体を削除できます。
  2. 新しく提案されたオプティマイザ LOMO は、勾配テンソルのメモリ使用量を O(1) に削減します。これは、最大の勾配テンソルのメモリ使用量と同等です。
  3. LOMO を使用した混合精度トレーニングを安定させるために、著者らは勾配正規化、損失スケーリングを統合し、トレーニング中に特定の計算を完全精度に変換します。

#新しいテクノロジにより、メモリ使用量はパラメータ使用量にアクティブ化テンソルと最大勾配テンソルを加えたものと等しくなります。フルパラメータ微調整のメモリ使用量は極限まで高められており、これは推論の使用量に相当します。これは、順方向、逆方向プロセスのメモリ フットプリントが、順方向プロセスのみのメモリ フットプリント以上である必要があるためです。 LOMO を使用してメモリを節約する場合、パラメータ更新プロセスは依然として SGD と同等であるため、新しい方法では微調整プロセスが影響を受けないことが保証されることは注目に値します。

この研究では、LOMO のメモリとスループットのパフォーマンスを評価し、LOMO を使用すると、研究者が 8 つの RTX 3090 GPU で 65B のパラメーター モデルをトレーニングできることが示されました。さらに、ダウンストリーム タスクでの LOMO のパフォーマンスを検証するために、LOMO を適用して SuperGLUE データセット コレクション上の LLM のすべてのパラメーターを調整しました。この結果は、数十億のパラメータを使用して LLM を最適化する LOMO の有効性を示しています。

方法の紹介

この記事では、方法セクションで LOMO (LOW-MEMORY OPTIMIZATION) について詳しく紹介します。一般に、勾配テンソルはパラメータ テンソルの勾配を表し、そのサイズはパラメータと同じであるため、メモリ オーバーヘッドが大きくなります。 PyTorch などの既存の深層学習フレームワークは、すべてのパラメーターの勾配テンソルを保存します。現在、勾配テンソルを保存する理由は 2 つあります。それは、オプティマイザーの状態を計算することと、勾配を正規化することです。

この研究ではオプティマイザーとして SGD を採用しているため、勾配に依存するオプティマイザーの状態はなく、勾配正規化の代替手段がいくつかあります。

彼らは、アルゴリズム 1 に示すように、勾配計算とパラメーター更新を 1 ステップで融合する LOMO を提案し、勾配テンソルの保存を回避しました。

次の図は、バックプロパゲーション段階とパラメーター更新段階における SGD と LOMO の比較を示しています。 Pi はモデル パラメーター、Gi は Pi に対応する勾配です。 LOMO は、勾配計算とパラメーター更新を 1 つのステップに統合して、勾配テンソルを最小限に抑えます。

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

#LOMO 対応アルゴリズム擬似コード:

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

具体的には、この研究ではバニラ勾配降下法を

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

として表します。これは 2 段階のプロセスであり、最初に計算します。グラデーションを設定してからパラメータを更新します。融合バージョンは

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

この研究の重要なアイデアは、勾配の計算時にパラメーターを即座に更新することです。これにより、勾配テンソルは次のようになります。メモリには保存されません。このステップは、バックプロパゲーションにフック関数を注入することで実現できます。 PyTorch はフック関数を挿入するための関連 API を提供しますが、現在の API では正確な即時更新を実現することは不可能です。代わりに、この研究では最大 1 つのパラメーターの勾配をメモリに保存し、バックプロパゲーションを使用して各パラメーターを 1 つずつ更新します。この方法により、勾配のメモリ使用量が、すべてのパラメータの勾配を保存する場合から 1 つのパラメータのみの勾配にまで削減されます。

LOMO のメモリ使用量のほとんどは、パラメータ効率の高い微調整手法のメモリ使用量と一致しており、LOMO とこれらの手法を組み合わせても、メモリ使用量はわずかに増加するだけであることがわかります。勾配メモリ使用量。これにより、より多くのパラメータを PEFT メソッド用に調整できるようになります。

実験結果

実験部分では、研究者らは、メモリ使用量、スループット、ダウンストリームのパフォーマンスという 3 つの側面から提案手法を評価しました。詳しい説明は省略しますが、すべての実験は LLaMA モデル 7B ~ 65B を使用して実行されました。

メモリ使用量

研究者らは、まずモデルのステータスとアクティブ化されたメモリの使用量を分析しました。表 1 に示すように、AdamW オプティマイザーと比較して、LOMO オプティマイザーを使用すると、メモリ使用量が 102.20GB から 14.58GB に大幅に削減されます。LLaMA-7B モデルをトレーニングする場合、SGD と比較してメモリ使用量が減少します。 51.99GB から 14.58GB に減少しました。メモリ使用量の大幅な削減は、主に勾配とオプティマイザの状態に必要なメモリが削減されたことによるものです。したがって、トレーニング プロセス中、メモリの大部分はパラメータによって占有されます。これは、推論中のメモリ使用量と同等です。

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

#図 2 に示すように、LLaMA-7B トレーニングに AdamW オプティマイザーが使用される場合、かなりの割合のメモリが( 73.7%) はオプティマイザ状態に割り当てられます。 AdamW オプティマイザーを SGD オプティマイザーに置き換えると、オプティマイザー状態によって占有されるメモリの割合が効果的に削減され、GPU メモリの使用量が軽減されます (102.20GB から 51.99GB に)。 LOMO を使用すると、パラメータの更新とその逆の処理が 1 つのステップにマージされ、オプティマイザ状態のためのメモリ要件がさらに排除されます。

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

スループット

研究者は、LOMO、AdamW、および SGD のスループット パフォーマンスを比較しました。実験は 8 つの RTX 3090 GPU を搭載したサーバーで実施されました。

7B モデルの場合、LOMO のスループットは AdamW と SGD を約 11 倍上回り、大きな利点を示しています。この大幅な改善は、単一の GPU で 7B モデルをトレーニングする LOMO の機能に起因しており、これにより GPU 間の通信オーバーヘッドが削減されます。 AdamW と比較して SGD のスループットがわずかに高いのは、SGD が運動量と分散の計算を除外しているためであると考えられます。

13B モデルに関しては、メモリ制限のため、既存の 8 つの RTX 3090 GPU で AdamW を使用してトレーニングすることはできません。この場合、LOMO にはモデルの並列処理が必要ですが、スループットの点では依然として SGD を上回っています。この利点は、LOMO のメモリ効率の高い性質と、同じ設定でモデルをトレーニングするのに必要な GPU が 2 つだけであるため、通信コストが削減され、スループットが向上するという事実によるものです。さらに、SGD では 30B モデルのトレーニング時に 8 つの RTX 3090 GPU でメモリ不足 (OOM) の問題が発生しましたが、LOMO は 4 つの GPU のみで良好にパフォーマンスを発揮しました。

最終的に、研究者は 8 つの RTX 3090 GPU を使用して 65B モデルのトレーニングに成功し、4.93 TGS のスループットを達成しました。このサーバー構成と LOMO を使用すると、1,000 個のサンプル (各サンプルには 512 個のトークンが含まれます) でのモデルのトレーニング プロセスに約 3.6 時間かかります。

ダウンストリームのパフォーマンス

大規模な言語モデルの微調整における LOMO の有効性を評価するために、研究者たちは広範囲にわたる一連の実験。彼らは LOMO を他の 2 つの方法と比較しました。1 つは微調整を必要としないゼロショットであり、もう 1 つは一般的なパラメータ効率の高い微調整手法である LoRA です。

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

表 3 の結果は次のことを示しています:

  • LOMO のパフォーマンスは Zero よりも大幅に優れています-shot ;
  • ほとんどの実験では、LOMO は通常 LoRA よりも優れたパフォーマンスを発揮します。
  • LOMO は 650 億のパラメーター モデルまで効果的に拡張できます。

LOMO と LoRA は本質的に互いに独立しています。この声明を検証するために、研究者らはLLaMA-13Bを使用してBoolQデータセットとMultiRCデータセットで実験を実施しました。結果を図 3 に示します。

彼らは、LoRA がどれほど高い結果を達成したかに関係なく、LOMO が LoRA のパフォーマンスを向上させ続けることを発見しました。これは、LOMO と LoRA で採用されているさまざまな微調整方法が補完的であることを示しています。具体的には、LOMO は事前トレーニングされたモデルの重みを微調整することに重点を置き、LoRA は他のモジュールを調整します。したがって、LOMO は LoRA のパフォーマンスに影響を与えず、代わりに下流タスクのモデル調整を容易にします。

650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げました

# 詳細については、元の論文を参照してください。

以上が650 億のパラメータ、8 つの GPU ですべてのパラメータを微調整可能: Qiu Xipeng のチームは大規模モデルのしきい値を下げましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。