数十億のパラメータ、ワンクリックで減量! 「モデル重量削減」アーティファクトにより、大型モデルは 3/4 の重量が減ります | 最も「人気」の大型モデル

数十億のパラメータ、ワンクリックで減量! 「モデル重量削減」アーティファクトにより、大型モデルは 3/4 の重量が減ります | 最も「人気」の大型モデル

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。

この記事では、大規模言語モデルのトレーニング後の量子化パフォーマンスを向上させる強化された SmoothQuant 手法を紹介し、その使用方法を説明し、精度の利点を示します。このアプローチはIntel® Neural Compressor[1]に統合されています。

Intel® Neural Compressor は、量子化、プルーニング (スパース性)、蒸留 (知識抽出)、ニューラル アーキテクチャ検索などのさまざまな一般的なモデル圧縮手法を含むオープン ソースの Python ライブラリです。

現在、TensorFlow、 Intel® Extension for TensorFlow[2]、PyTorch、 Intel® Extension for PyTorch[3]、ONNX Runtime、MXNetなどの主流のフレームワークはすべて互換性があります。

Intel® Neural Compressorは、 Intel® Xeon®スケーラブル・プロセッサー[4]、 Intel® Xeon® CPU Maxシリーズ[5]、 Intel® Data Center GPU Flexシリーズ[ 6 ]、 Intel® Data Center GPU Maxシリーズ[7]など、さまざまなIntel®アーキテクチャー・ベースのハードウェアをすでにサポートしています。本論文の実験は第4世代Intel® Xeon®スケーラブル・プロセッサー[8]に基づいて実施された。

大規模言語モデル

大規模言語モデル (LLM) は、膨大なデータセットに基づいてトレーニングする必要があり、数十億の重みパラメータを持つ場合があります。

高度なネットワーク構造と膨大な数のパラメータにより、自然言語自体の複雑さにもうまく対応できます。

トレーニング後、大規模言語モデルはさまざまな下流の自然言語処理 (NLP) および自然言語生成 (NLG) タスクに合わせて調整できるため、会話型チャットボット (ChatGPT など)、機械翻訳、テキスト分類、不正検出、感情分析などのタスク シナリオに適したものになります。

大規模言語モデルの導入における課題

大規模言語モデルは、自然言語処理および自然言語生成タスクでは優れたパフォーマンスを発揮しますが、そのトレーニングと展開は複雑であり、次のような課題に直面しています。

  • AIとメモリウォールのボトルネック問題[9]:計算能力は2年ごとに3.1倍に増加しますが、メモリ帯域幅は1.4倍しか増加しません。
  • ネットワーク帯域幅の課題: 大規模な言語モデルのトレーニングには分散システムの使用が必要であり、ネットワーク帯域幅に対する要求が高くなります。
  • 限られたシステム リソース: トレーニング済みのモデルは、多くの場合、計算能力とメモリ リソースが限られたシステムに展開されます。

したがって、トレーニング後の量子化を使用して大規模な言語モデルをスリム化することは、低レイテンシの推論を実現するために不可欠です。

大規模言語モデルの量子化

量子化は、モデルが占有するメモリ領域を削減し、推論パフォーマンスを向上できる一般的な圧縮操作です。

量子化手法を使用すると、大規模な言語モデルを展開する際の難しさを軽減できます。具体的には、量子化は浮動小数点行列を整数行列に変換します。

ここで、X_fp32、S、Z はそれぞれ入力行列、スケール係数、整数ゼロです。

チャネルごとの量子化は量子化損失を減らす可能性があるにもかかわらず、活性化量子化に使用できない理由については、SmoothQuantのドキュメント[10]を参照してください。

ただし、活性化値の量子化誤差損失は、モデルの量子化精度の低下につながる重要な要因です。

この目的のために、SPIQ[11]、Outlier Suppression[12]、SmoothQuant[13]など、活性化値の量子化損失を減らすための多くの方法が提案されている。

これら 3 つの方法は、活性化値の量子化の難しさを重みの量子化に転送するという同様の考え方を持っていますが、転送の難しさの度合いが 3 つの方法では異なります。

強化された SmoothQuant

SmoothQuant は、各チャネルの量子化スケール係数を計算し、アクティベーション値と重みの量子化難易度のバランスをとるための平滑化係数としてハイパーパラメータ α を導入します。

ここで、j は入力チャネルのインデックスです。

OPT や BLOOM などのほとんどのモデルでは、α = 0.5 は、重みとアクティベーションの間で適切な量子化難易度の分割を実現できるバランスの取れた値です。モデルの活性化外れ値が大きいほど、量子化の難易度を重みにシフトするために、より大きな α 値を使用する必要があります。

オリジナルの SmoothQuant は、モデル全体に​​対して固定値 α を使用して、重みとアクティベーションの量子化の難しさを分割することを目的としています。

ただし、アクティベーション外れ値の分布は、異なるモデル間だけでなく、同じモデルの異なるレイヤー間でも異なります。

したがって、この記事では、 Intel® Neural Compressor の自動チューニング機能を使用して、レイヤーごとに最適な α 値を取得することを推奨します。

関連する方法には、次の 5 つの主なステップが含まれます (疑似コードを以下に示します)。

  1. モデルの各レイヤーの入力値と出力値は、特別なコールバック関数 register_forward_hook を通じてキャプチャ(フック)されます。
  2. ユーザー定義のアルファ範囲とステップ サイズに基づいてアルファ値のリストを生成します。
  3. スムージング係数を再計算し、指定されたアルファ値に応じてパラメータ (重みとアクティベーション) を調整します。
  4. 重みに対してチャネルごとの量子化と逆量子化 (quantization_dequantization) を実行し、入力値に対してテンソルごとの量子化と逆量子化を実行して、指定された α 値に対応する各レイヤーの出力値を予測します。
  5. 実際の出力値に対する平均二乗損失を計算し、調整されたパラメータを復元し、各レイヤーの最適な α 値を保存します。

この論文で提案された方法は、Transformer ブロックの入力層正規化 (LayerNorm) 操作の α 値を決定するために、複数の基準 (最小、最大、平均など) を使用することをサポートします。

実験では、α 範囲を [0.3, 0.7] に設定し、ステップ サイズを 0.05 に設定すると、ほとんどのモデルで良好なバランスを実現できることが示されています。

この方法には 2 つの注目すべき特徴があります。1 つは完全に自動化されていること、もう 1 つは元の方法よりも多くの融合モードをサポートしていることです。

次の図は、BLOOM-1b7 モデルで SmoothQuant α 値の自動チューニングを実行するためのサンプル コードを示しています。

△ 強化された SmoothQuant を有効にするサンプルコード

ユーザーはモデル名 (model_name) とデータ ローダーを渡すだけで済みます。モデル分析は主に Torch JIT に依存していることに注意してください。ユーザーは、Hugging Face[15]モデルをロードするときにtorchscriptをTrueに、return_dictをFalseに設定することができます。

詳細については Intel®ニューラルコンプレッサーのドキュメント[15]。

結果

この論文で提案されている強化された SmoothQuant の主な利点は、精度が向上したことです。

複数の主流の大規模言語モデルを評価した結果、自動チューニング機能を備えた INT8 SmoothQuant の最後のトークンの予測精度は、元の INT8 SmoothQuant および FP32 ベースライン メソッドよりも高くなりました。詳細については、下の図を参照してください。

△ FP32ベースライン法、INT8(SmoothQuantの有無)、およびINT8(本論文で提案された拡張SmoothQuantを使用)の精度の比較

上の図からわかるように、OPT-1.3b モデルと BLOOM-1b7 モデルでは、この論文で提案された強化された SmoothQuant の精度は、デフォルトの SmoothQuant よりもそれぞれ 5.4% と 1.6% 高くなっています。

量子化モデルも FP32 モデルの 4 分の 1 に縮小され、メモリ フットプリントが大幅に削減されるため、 Intel®プラットフォーム上の大規模モデルの推論パフォーマンスが効果的に向上します。

より包括的な結果については、GitHubリポジトリ[16]を参照してください。 GitHubの問題[17]にプルリクエストやコメントを作成することもできます。皆様のご意見やご提案をお待ちしております。

詳しくは記事末尾の[原文を読む]をクリックしてください。

著者:

Intel のシニア AI アーキテクトである Shen Haihao 氏、Intel のシニア AI ソフトウェア エンジニアである Cheng Wenhua 氏、Intel の AI ソフトウェア エンジニアである Lu Yintong 氏、He Xin 氏、Guo Heng 氏、Wang Chang 氏、Wang Mengni 氏は、モデルの量子化と圧縮の研究と最適化に取り組んでいます。

<<:  韓国のLK-99の作者が新しいビデオを公開し、サンプルは25度の室温で吊り下げられ、一部のネットユーザーは磁化率を推定した。

>>:  ChatGPTは自分で質問することを学習し、複数のファイルのアップロードをサポートしています

ブログ    
ブログ    
ブログ    

推薦する

AIとブロックチェーン:この2つの人気技術の衝突はどのような火花を散らすのでしょうか?

編集者注: ブロックチェーンと AI は、今日最もホットな 2 つの技術方向であると言えます。一般の...

強化学習でデータ分析を行うにはどうすればいいでしょうか?シンガポール国立大学等によるTKDE 2022レビュー論文

データの処理と分析は基本的かつ広範囲にわたります。アルゴリズムはデータの処理と分析において重要な役割...

アリババが自然言語理解の世界記録を更新、AIの常識的推論は人間のそれに近づいている

最近、アリババAIは常識QA分野の権威あるデータセットであるCommonsenseQAで新たな世界記...

...

トレンド: 2022 年の AI に関する 5 つの予測

2022年も、疫病やサプライチェーン危機などの悪影響は続くとみられ、AIに対する消費者の信頼獲得や気...

完璧な切り抜き王ビンビン! ByteDanceのインターンが開発したAIにより、4K 60fps動画のリアルタイム切り抜きが可能に

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

アルトマン氏の地位は再び危険にさらされているのか? ! OpenAIの取締役会が競合他社の参加を呼びかけ、Google Geminiの幹部を引き抜いた

アルトマン氏の地位は再び危険にさらされているのか?事情に詳しい人物によると、オープンAIの取締役であ...

WaymoとGoogleが自動運転のマルチ軌道行動予測を実現するTNTモデルを提案

はじめに: Waymo は最近、フェニックス地域で安全担当者なしの無人タクシーの運行を開始すると発表...

...

人工知能と機械学習とデータ分析の違いは何ですか?

調査によると、人工知能はビジネスの生産性を 54% 向上させることができます。さらに、15% の組織...

JD.comのインテリジェント顧客サービスブランドがリニューアル:「Yanxi」が2020 JDDカンファレンスでデビュー

「言葉の含意は心が繋がっている」という意味で、言葉がテレパシーのような共鳴を呼び起こし、人と人の間の...

ChatGPT-4 に基づく IDEA スマート アシスタントの使い方を教えます

遅れて気づいて申し訳ありません。この記事を読んでいる友人の中には、すでにこのプラグインをインストール...

AIは中国のインターネットを狂ったように汚染している

AIは中国のインターネットを汚染する「犯人」の1つとなった。問題はこれです。最近、誰もが AI に相...