ホームページ > 記事 > テクノロジー周辺機器 > 最初の 1,000 億モデル圧縮アルゴリズム SparseGPT が登場、高精度を維持しながらコンピューティング電力コストを削減
2020 年に GPT-3 が登場して以来、ChatGPT の人気により、GPT ファミリーの生成大規模言語モデルが再び脚光を浴びるようになり、さまざまなタスクで優れたパフォーマンスを示しています。
しかし、モデルの規模が巨大になると、コンピューティング コストの増加と展開の難易度の増加も引き起こされます。
たとえば、GPT-175B モデルは、半精度 (FP16) 形式で合計 320 GB 以上のストレージ スペースを占有します。推論中は、80 GB の A100 GPU が少なくとも 5 つ必要です。保管スペースが必要です。
モデル圧縮は現在、大規模モデルの計算コストを削減するために一般的に使用されている方法ですが、これまでのところ、既存の GPT 圧縮方法のほとんどは量子化 (量子化) に重点を置いています。単一の重量の数値表現の精度が低下します。
もう 1 つのモデル圧縮方法は枝刈りです。これは、個々の重み (非構造化枝刈り) から、行/列全体の重み行列 (構造化枝刈り) などのより粒度の高いコンポーネントに至るまで、ネットワーク要素を削除します。 )。このアプローチは視覚モデルや小規模な言語モデルではうまく機能しますが、結果として精度が失われ、精度を回復するにはモデルの大規模な再トレーニングが必要になるため、GPT のような大規模モデルになるとコストが再び高くなります。 。再トレーニングせずにモデルを圧縮できるシングルショットの枝刈り手法がいくつかありますが、それらは計算量が多すぎるため、数十億のパラメータを持つモデルに適用するのは困難です。
では、GPT-3 のサイズの大規模モデルの場合、精度の損失を最小限に抑え、計算コストを削減しながらモデルを正確に枝刈りする方法はあるのでしょうか?
最近、オーストリア科学技術大学 (ISTA) の 2 人の研究者、エリアス フランター氏とダン アリスタール氏が共同で、初めて次のようなモデル規模を対象とした研究を行いました。パラメータ数は 100 ~ 1000 億、精度の高いシングルショット プルーニング手法 SparseGPT が提案されています。
論文アドレス: https://arxiv.org/pdf/2301.00774.pdf#SparseGPT は、再トレーニングを行わずに、GPT シリーズ モデルを 1 ステップで 50% のスパース度までプルーニングできます。公開されている最大のモデルである GPT-175B は、単一の GPU を使用してわずか数時間でこの枝刈りを実現します。
さらに、SparseGPT は非常に正確であり、精度の損失を最小限に抑えることができます。たとえば、現在最大のオープンソース モデルである OPT-175B および BLOOM-176B で SparseGPT を実行すると、精度の損失を最小限に抑えながら 60% のスパース性を達成できます。
電気ドライブ SparseGPT アルゴリズム
非常に大規模なモデルの研究は近年非常に活発に行われていますが、これまでのところ、研究は行われていません。 100 億を超えるパラメーターを備えたこのモデルは、非常に正確な高スパース化を実現できます。
既存の手法では計算コストの要件が高すぎます。最も正確なポストトレーニング手法である OBC を例にとると、10 億パラメータのモデルを実行するには 1 時間以上かかります。圧縮。既知の最速のポストトレーニング手法である AdaPrune も、10 億パラメータのモデルをプルーニングするのに数分かかります。この速度で、GPT-3 規模のモデルを構築するには数百時間 (週) の計算が必要になると推定されています。
段階的規模枝刈りなどの既存の枝刈り手法のほとんどは、精度を回復するために枝刈りステップ後に広範な再トレーニングを必要としますが、GPT スケール モデルは通常、トレーニングまたは微調整のために大量の計算とパラメータ調整を必要とします。 -チューニングにより、再トレーニングベースの手法の適用が困難になります。したがって、この漸進的な枝刈りアプローチを GPT スケールで適用することは現実的ではありません。
ISTA チームによるこの研究では、SparseGPT 手法を提案しています。この手法は、単一 GPU 上で 1,000 億を超えるパラメータを持つモデルを数時間で実行でき、モデルをプルーニングするのに十分な精度を備えています。パフォーマンスを大幅に低下させることなく、スパース性レベルを 50 % ~ 60% に設定できます。
SparseGPT のコアは、半構造化 (2:4 および 4:8) パターンに一般化でき、既存の互換性のある新しい大規模近似スパース回帰アルゴリズムです。重量定量化手法を使用します。
プログレッシブ マグニチュード プルーニングなど、ほとんどの既存のプルーニング手法では、プルーニングが必要です。ステップの後には、精度を回復するための大規模な再トレーニングが必要です。 GPT スケールのモデルは、トレーニングや微調整のために大量の計算とパラメーター調整を必要とすることが多く、そのため再トレーニングベースの手法を適用することが困難になります。したがって、この漸進的な枝刈りアプローチを GPT スケールで適用することは現実的ではありません。
SparseGPT は微調整を行わないため、GPT スケール モデルのポストトレーニング方法です。
現在、GPT スケール モデルのポストトレーニングを定量化する方法は、ZeroQuant、LLM.int8()、nuQmm など、数多くありますが、異常な特徴が存在するため、活性化の量子化は困難な場合があります。 GPTQ は、近似二次情報を利用して重みを 2 ~ 4 ビットに正確に量子化し、最大のモデルに適しており、効率的な GPU コアと組み合わせることで、推論を 2 ~ 5 倍高速化できます。
ただし、GPTQ は量子化ではなくスパース化に重点を置いているため、SparseGPT は定量化手法を補完するものであり、この 2 つを組み合わせて適用できます。
さらに、SparseGPT は、非構造化プルーニングに加えて、2 の比率で使用できる人気の n:m スパース形式などの半構造化パターンにも適しています。 Ampere NVIDIA GPU で :4 の高速化を実現します。
SparseGPT 圧縮モデルの有効性を評価した後、研究者らは、言語が大きいと困難であることを発見しました。既存のマグニチュード プルーニング (Magnitude Pruning) 手法と比較して、SparseGPT を使用すると、精度の低下を最小限に抑えながら、より高度なモデルのスパース化を実現できます。
研究者らは PyTorch に SparseGPT を実装し、HuggingFace の Transformers ライブラリを使用してモデルとデータセットをすべて 80 GB のメモリを備えた単一の NVIDIA A100 GPU 上で処理しました。このような実験条件下では、SparseGPT は約 4 時間で 1,750 億のパラメータ モデルの完全なスパース化を達成できます。
研究者らは、Transformer レイヤーを順次スパース化することで、メモリ要件を大幅に削減し、すべてのレイヤーを並行して処理する精度も大幅に向上させました。すべての圧縮実験は、微調整を行わずに一度に実行されました。
評価対象は主に OPT シリーズ モデルです。これには 1 億 2,500 万から 1,750 億のパラメータのモデルのセットが含まれており、モデル サイズに対する枝刈りのスケーリング パフォーマンスを簡単に観察できます。 。さらに、BLOOM の 1,760 億個のパラメーター バリアントが分析されました。
データ セットと評価指標の観点から、実験では元の WikiText2 テスト セットの複雑さを使用して、SparseGPT 圧縮方法の精度を評価しました。解釈可能性が向上し、ZeroShot の精度指標が向上します。さらに、評価では、絶対的な数値ではなく、密モデルのベースラインに対する疎モデルの精度に焦点が当てられます。
研究者らは、OPT モデル シリーズ全体 (標準の埋め込みとヘッダーを除く) のすべての線形層をプルーニングして、50% の非構造化スパース性、完全 4:8 または完全 2:4 半構造化を達成しました。スパース性の場合、結果は以下のようになります。
振幅枝刈りを使用して圧縮されたモデルの精度は、すべてのサイズで低く、モデルが値が大きくなるほど精度が低下します。
SparseGPT を使用して圧縮されたモデルの傾向は異なり、27 億パラメータの下ではパープレキシティ損失は 1 ポイント未満で、660 億パラメータの下では損失はゼロです。さらに、密度の高いモデルのベースラインと比較して、非常に大きなモデル サイズでも精度が向上します。
一般的な傾向として、大規模なモデルほどスパース化される可能性が高くなります。密モデルに対する疎モデルの相対的な精度の低下は、モデルのサイズが大きくなるにつれて小さくなります。著者らは、これは高度なパラメータ化と全体的に優れたノイズ耐性によるものではないかと推測しています。
最大スケールでの高密度モデルのベースラインと比較すると、SparseGPT を使用してモデルを 4:8 および 2:4 のスパース性に圧縮した場合、パープレキシティの増加はそれぞれ 0.11 と 0.39 のみです。 . .この結果は、実際に 2 倍の高速化を達成できることを意味し、商用 NVIDIA Ampere GPU はすでに 2:4 スパース性をサポートしています。
著者は、2 千億個のモデル OPT-175B および BLOOM-176B のパフォーマンスと、SparseGPT を使用することによってもたらされるスパース性の程度との関係を研究しました。結果は次のとおりです。下の図。
OPT-175B モデルの場合、振幅プルーニングにより最大 10% のスパース性を達成できることがわかります。精度の低下が大きくなります。 SparseGPT は、パープレキシティを増加させながら 60% のスパース性を達成することもできます。BLOOM-176B モデルの場合、振幅プルーニングは精度を大幅に損なうことなく 30% のスパース性を達成できますが、それに比べて、SparseGPT は 1.66 倍の改善である 50% のスパース性を達成できます。さらに、80% のスパース性では、SparseGPT を使用して圧縮されたモデルのパープレキシティは依然として妥当なレベルに留まっていますが、振幅枝刈りが OPT の 40% のスパースシティと 60% の BLOOM のスパース性に達すると、パープレキシティはすでに 100 を超えています。
さらに、SparseGPT は、モデルの精度への影響を限定的にしながら、これらのモデルから約 1,000 億の重みを削除できます。
最後に、この研究は、Transformer に基づく大規模な事前トレーニング済みモデルが、再トレーニングなしで 1 回の重み枝刈りによって高いスパース性まで圧縮できることを初めて示しています。精度の低下が少なく、低い。
SparseGPT のアプローチはローカルであることは注目に値します: 各枝刈りステップの後に、各層の入出力関係を維持するように設計された重み更新が実行されます。これらの更新は、グローバルな計算を行わずに計算されます。グラデーション情報。したがって、大規模な GPT モデルの高度なパラメーター化により、このアプローチにより、密な事前トレーニング済みモデルの「近傍」の中から疎で正確なモデルを直接識別できるようになります。
さらに、実験で使用された精度指標 (パープレキシティ) は非常に敏感であるため、生成された疎モデルの出力は密モデルの出力と密接に関連していると思われます。
この研究は、大規模モデルの計算能力の制限を緩和する上で、非常に前向きな意義を持っています。今後の作業の方向性の 1 つは、大規模モデルの微調整メカニズムを研究して精度をさらに回復することです。同時に、モデルのトレーニング中の SparseGPT メソッドの適用可能性を拡大することで、大規模なモデルのトレーニングにかかる計算コストが削減されます。
以上が最初の 1,000 億モデル圧縮アルゴリズム SparseGPT が登場、高精度を維持しながらコンピューティング電力コストを削減の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。