LLaMA、BERT などの導入課題を解決: 初の 4 ビット浮動小数点量子化 LLM が登場

LLaMA、BERT などの導入課題を解決: 初の 4 ビット浮動小数点量子化 LLM が登場

大規模言語モデル (LLM) 圧縮は常に大きな注目を集めています。トレーニング後の量子化は、一般的に使用されるアルゴリズムの 1 つです。ただし、既存の PTQ 方法のほとんどは整数量子化であり、ビット数が 8 未満の場合、量子化モデルの精度が大幅に低下します。整数 (INT) 量子化と比較して、浮動小数点 (FP) 量子化はロングテール分布をより適切に表現できるため、ますます多くのハードウェア プラットフォームが FP 量子化をサポートし始めています。この記事では、大規模モデルの FP 量子化のソリューションを提供します。この記事はEMNLP 2023に掲載されました。

  • 論文アドレス: https://arxiv.org/abs/2310.16836
  • コードアドレス: https://github.com/nbasyl/LLM-FP4

この記事を理解するには、まず浮動小数点形式と浮動小数点量子化に関する基本的な知識が必要です。まず、浮動小数点数は次の式で表すことができます。

s は符号ビット、m は仮数ビット、e は指数ビットを表します。 p は 0 から 2^e - 1 までの値で、現在の数値をどの指数区間で分割するかを示すために使用されます。d は 0 または 1 の値を取り、i 番目の仮数ビットを示すために使用されます。 b はバイアスであり、指数範囲を調整するために使用される整数値です。

次に、浮動小数点量子化の仕組みを紹介します。まず、入力値はスケールとクリップのステップを経る必要があります。まず、入力は、次の式に示すように、浮動小数点が表現できる最大範囲 (±Qmax) にクリップされます。


整数量子化と同様に、FP 量子化でも、入力を適切な範囲にスケーリングするために、完全精度のスケーリング係数が追加されていることがわかります。行列乗算を実行する場合、スケーリング係数は低ビット行列乗算とは別に計算されるため、大きなオーバーヘッドは発生しません。この完全精度のスケーリング係数を組み込んだ後、異なる量子化テンソルをそれに応じて異なる最大値と最小値の範囲にクリップできます。実際の使用においては、入力テンソルの値の範囲に応じて必要な量子化間隔が決定され、対応するバイアスが式(4)を使用して導出されます。式(4)のバイアスは実数値のスケーリング係数として使用できることに注意してください(式(2)(3)を参照)。

浮動小数点量子化の次のステップは、量子化間隔を決定した後、間隔内の値を対応する量子化間隔に割り当てることです。このステップは比較と量子化と呼ばれます。

上の図は量子化のプロセスを直感的に示しています。現在の入力値は、式 5 を使用して比較された後、異なる量子化間隔に量子化されます。

量子化されたアクティベーションと重みを取得した後、最初にスケーリング係数を計算し、次の効率的な行列乗算を実現して、行列乗算の高速化を完了します。

そして、FP 量子化の精度は指数ビットの設定と量子化間隔に密接に関係していることを指摘しています。

下の図に示すように、異なる FP 形式 (浮動小数点数の指数ビット/仮数ビット設定) 間では量子化誤差に大きな違いがあります。適切な FP 形式を選択した場合にのみ、FP 量子化は INT 量子化よりもロングテール分布をより適切に表現できます。この現象は以前の論文[1]でも検証されている。

この記事では、検索ベースの浮動小数点量子化アルゴリズムを使用して、最も適切な浮動小数点指数ビット/仮数ビット設定と対応する量子化間隔を包括的に検索する、対応するソリューションを提案します。

さらに、さまざまな種類の Transformer モデル (Bert、LLaMA、ViT) に現れる別の現象も、量子化の難しさに重大な影響を及ぼします。つまり、モデルのアクティベーションにおける異なるチャネルの大きさは大きく異なりますが、同じチャネルの大きさは非常に一貫しています。同様の発見は以前LLM.int8 [2]やSmoothQuant [3]でもなされていましたが、この論文ではこの現象はLLMだけでなく他のTransformerモデルでも見られることを指摘しています。以下に示すように、LLaMA、BERT、DeIT-Sの活性化の分布にも同様の現象が見られます。

図からわかるように、異常に大きいチャネルは、残りのチャネルよりもはるかに大きいため、活性化テンソルを量子化するプロセスでは、量子化精度はこれらの異常な値によって大きく決まり、それによって他のチャネル値の量子化間隔が抑制され、最終的に量子化精度への全体的な影響が減少します。これにより、特にビット数が特定のレベルまで低下した場合に、最終的な量子化結果が崩れる可能性があります。下の図に示すように、効率的な行列乗算中にスケーリング係数を抽出できるのはテンソル単位およびトークン単位の量子化のみであり、チャネル単位の量子化では効率的な行列乗算がサポートされていないことに注意してください。

効率的な行列乗算を維持しながらこの問題を解決するために、この論文では、小さな一連のキャリブレーション データを使用して、各アクティベーション チャネルの最大値を事前に計算し、スケーリング係数を計算します。次に、スケーリング係数は 2 つに分割され、テンソルごとの実数にチャネルごとの 2 の累乗が乗じられます。この 2 の整数乗は、FP の指数バイアスによって表されます。完全なプロセスは次の式で表すことができます。

さらに、キャリブレーションが完了すると、チャネルごとの指数バイアスは変化しなくなるため、重み量子化と一緒に事前計算して、チャネルごとの指数バイアスを量子化された重みに統合し、量子化の精度を向上させることができます。完全なプロセスは次のとおりです。

事前シフト後、元のアクティベーション内のフル精度のチャネルごとのバイアスがテンソル単位の実数スケーリング係数に変換され、分解された整数のチャネルごとのバイアスが、式 4 に示すように、重み内の元の整数バイアスの位置に移動されることがわかります。

したがって、この方法 (事前シフトされた指数バイアス) は、効率的な行列乗算の原理を維持しながら、量子化精度をより向上させることができます。この方法の直感的な表示を次の図に示します。

最後に、この記事では浮動小数点量子化 (FPQ) 方式について説明します。LLaMA、BERT、ViTs モデルでは、4 ビット量子化により SOTA をはるかに上回る結果が達成されました。特に、この記事では、ゼロショット推論タスクで平均スコア 63.1 を達成する 4 ビット量子化 LLaMA-13B モデルについて説明します。これは、フル精度モデルよりもわずか 5.8 ポイント低く、以前の SOTA 方式よりも 12.7 ポイント高いスコアです。これは、実行可能な数少ない既知の 4 ビット量子化方式の 1 つです。

<<:  ChatGPT が突然大きなバグを発見しました!フル機能のGPT-4は無料で使用でき、ネットユーザーは大喜びしている

>>:  2023年ゴードン・ベル賞発表:最先端のスーパーコンピューターによる「量子レベルの精度」の材料シミュレーションが受賞

ブログ    

推薦する

生成AI人材の獲得競争が始まった。求人数は4倍に増え、最高年収は90万ドル

ウォール・ストリート・ジャーナルによると、求人ウェブサイトIndeedの統計によると、生成AI関連の...

ビッグデータと人工知能の応用に関する7つのよくある誤解

大規模で高速かつ変化する情報資産を処理するためにビッグデータ テクノロジーを採用する組織が増えるにつ...

携帯電話を紛失し、電話をかけても誰も応答しません。顔認識機能は非常に役立ちます。

揚子晩報は4月12日(蒋桂東特派員、範牧暁子記者)に、揚州市在住の張さんがオランダ花海風景区を訪れた...

Google、ブラウザで動作するプログラミング不要のAIトレーニングツールをアップデート

Google は人工知能トレーニング ツール「Teachable Machine」をアップグレードし...

1 つの記事で AI エージェント テクノロジーを理解する

環境と自律的に対話し、収集したデータに基づいて決定を下し、人間の介入を最小限に抑えてシナリオベースの...

...

アイデアこそが王様!メンサ国際元会長が2021年の人工知能の応用を総括

[[443263]]人工知能の将来の発展の方向性を真に理解するには、まだ長い道のりが残っています。 ...

Alibaba Antの機械学習アルゴリズム - 第一、第二、第三の面接体験、役立つ情報を素早く収集!

アリ側1. 自己紹介:私はXXXの修士課程の学生で、機械学習を専攻しています。私の研究分野はディープ...

アリの採餌とインターネットアルゴリズム

[[93484]]人間とアリの違いは何でしょうか? Ant にはインターネットがありません。創造的な...

北京大学、バイトダンス等は増分学習を用いたスーパーピクセルセグメンテーションモデルLNSNetを提案した

オンライン学習によって引き起こされる壊滅的な忘却問題を解決するために、北京大学などの研究機関は、勾配...

Pythonアルゴリズムの正しい実装の紹介

経験豊富な Python プログラマーにとって、Python アルゴリズムの実装は難しくありません。...

...

元アップル社員によって設立されたアルトマンは、同社初のAIハードウェアに投資し、ChatGPTへのアクセスをサポートした。

次に購入する電話はなぜ携帯電話であるべきなのでしょうか?ご覧のとおり、首輪にクリップするこの小さなガ...

FPGA と GPU を使用したニューラル ネットワークの作成

現代の CPU は、命令を順番に実行し、アルゴリズムを 1 つずつロードされて実行される命令に分解し...

...