ホームページ >テクノロジー周辺機器 >AI >ChatGPT モデルのパラメータ≠ 1,750 億、誰かが矛盾によってそれを証明しました。

ChatGPT モデルのパラメータ≠ 1,750 億、誰かが矛盾によってそれを証明しました。

WBOY
WBOY転載
2023-04-08 11:51:061022ブラウズ

ChatGPT の人気は今も続いており、それに関する最新ニュースや技術的な解釈が生まれ続けています。パラメーターの数に関しては、ChatGPT には GPT-3 論文で紹介されている 1,750 億パラメーター モデルと同じ数のパラメーターがあるという共通の仮定があります。しかし、大規模な言語モデルの分野で深く研究している人々は、これが真実ではないことを知っています。 A100 GPU のメモリ帯域幅を分析すると、ChatGPT API の実際の推論速度は、1,750 億 Dense 相当モデルの理論上の最大推論速度よりもはるかに高速であることがわかります。

この記事では、大学で学んだいくつかの理論的知識のみを使用して、矛盾による証明を使用して上記の議論を証明し、裏付けます。また、逆の問題もあることにも注意してください。ChatGPT には X 十億パラメータしかない (X は 1750 よりはるかに小さい) と主張する人もいます。しかし、これらの主張をする人は通常、伝聞に基づいて語っているため、検証することはできません。

#次のステップは、詳細な議論のプロセスです。

矛盾メソッド

ChatGPT モデルには 1,750 億個のパラメーターがあると仮定します。通常、INT8 形式は、推論の待ち時間を短縮し、スループットを高めるために LLM の重みを保存するために使用されます。メモリ要件が少なくなります (float16 形式で保存する場合に比べてメモリが 2 倍少なくなります)。各 INT8 パラメータには、保存用に 1 バイトが必要です。単純な計算では、このモデルには 175GB のストレージ容量が必要であることがわかります。

ChatGPT モデルのパラメータ≠ 1,750 億、誰かが矛盾によってそれを証明しました。

画像は INT8 SmoothQuant 論文からのものです (アドレス: https://arxiv.org/abs) /2211.10438

推論の観点から見ると、GPT スタイルの言語モデルは各フォワード パスで「自己回帰」し、次に可能性の高いトークンを予測します (ChatGPT の RLHF モデルの場合) 、ヒューマン・アノテーターが好む次のトークンを予測します)。これは、200 個のトークンが生成されるため、200 回の順方向パスを実行する必要があることを意味します。各フォワード パスでは、モデルのすべての重みを高帯域幅 (HBM) メモリから行列計算ユニット (GPU のテンソル コンピューティング コア) にロードする必要があります。つまり、各フォワード パスで 175 GB の重みをロードする必要があります。フォワードパスです。

Microsoft Azure プラットフォームでは、ノードに割り当てられる A100 の最大数は 8 です。これは、モデル インスタンスあたりの最大テンソル並列処理が 8 であることを意味します。したがって、テンソル並列処理によりすべての GPU で重みと計算を並列化できるため、順方向パスごとに 175 GB の重みをロードする代わりに、GPU ごとに 21.87 GB をロードするだけで済みます。

ChatGPT モデルのパラメータ≠ 1,750 億、誰かが矛盾によってそれを証明しました。

写真は Megatron-LM 論文からのものです。アドレス: https://arxiv.org/ abs/1909.08053

A100 80GB SXM バージョンでは、最大メモリ帯域幅は 2TB/秒です。これは、batchsize=1 (メモリ帯域幅によって制限される) の場合、理論上の最大フォワード パス速度は 91 回/秒になることを意味します。また、ほとんどの時間は行列の乗算の計算ではなく、重みのロードに費やされます。

ChatGPT モデルのパラメータ≠ 1,750 億、誰かが矛盾によってそれを証明しました。

#注: fp16/bfloat16 の場合、メモリ帯域幅によって制限される場合の理論上の最大フォワード パス速度は 45.5 に達します。回/秒。

#ChatGPT の実際のレイテンシはどれくらいですか?

Python で書かれたスクリプトを夜間に実行し (夜間の実行はコストが安くなります)、OpenAI API を介して ChatGPT を使用する際のレイテンシをテストします。フォワード パスによって達成される最大経験速度は 101 です。回/秒。このペーパーでは、OpenAI のバックエンドと動的バッチ システムからのオーバーヘッドを最小限に抑える必要があるため、実験の最大限の経験結果を使用します。

結論

これまでの仮定と議論によれば、矛盾があることがわかります。経験的結果 A100 プラットフォームのメモリ帯域幅に基づく最大理論的結果よりもはるかに高速です。したがって、OpenAI が推論に使用する ChatGPT モデルは、1,750 億個のパラメーターの高密度モデルと明らかに同等ではないと結論付けることができます。

FAQ

#1. トレーニング モデルのパラメーターではなく、ChatGPT 推論モデルのパラメーターを予測するのはなぜですか?

#メモリ帯域幅法を使用してモデル パラメーターの数を推定します。これは推論モデルにのみ適用されます。 OpenAI が推論モデルをトレーニング モデルよりも小さくするために蒸留などの手法を適用しているかどうかは、確かなことはわかりません。

多くの昆虫は、環境からエネルギーと栄養素を抽出するために最適化された幼虫の形態と、移動と生殖の最適化のための非常に異なる要件を持つまったく異なる成虫の形態を持っています。 ——ジェフリー・ヒントン、オリオール・ヴィニャルズ、ジェフ・ディーンより、2015年。

2. 他に何か仮定はありますか?

この証明には実際には 3 つの仮定が含まれています:

  • 巨大な行列の乗算の計算に必要な時間は相対的なものであると仮定します。 to 各前方パスのパラメータのロード時間は 0 です;
  • #GPU 間の通信に必要な時間も 0 であると仮定します。 GPU 間の通信と行列の乗算に必要な時間を 0 と仮定しない場合、1,750 億パラメータ モデルの 1 秒あたりの理論上の最大トークン数は減少します;
  • ChatGPT がTransformer Architecture のバリアントに基づいています。

#3. 密相当とはどういう意味ですか?

# 過去数年にわたり、研究者はスイッチ トランスフォーマーなどのスパース ハイブリッド エキスパート LLM に関する研究を行ってきました。密相当値は、各前方パスで使用されるパラメーターの数を示します。この記事で説明されている方法を使用しても、ChatGPT が 1,750 億パラメーターの疎な MoE モデルではないことを証明する方法はありません。

#4. KV キャッシュ Transformer 推論の最適化を検討したことがありますか?

KV キャッシュの最適化が使用されている場合でも、各フォワード パスでモデル全体をロードする必要があります。KV キャッシュは FLOP を節約するだけで、メモリ帯域幅の消費量は削減しません (実際、KV キャッシュは順方向パスごとにロードする必要があるため、増加します)。

5. フラッシュ アテンションを検討したことがありますか?

フラッシュ アテンションは、メモリ帯域幅効率とリアルタイム速度の点で優れたパフォーマンスを発揮しますが、各前方パスでは依然としてモデル全体をロードする必要があるため、前の議論が依然として当てはまります。

#6. パイプラインの並列処理やよりきめ細かい並列戦略を検討したことがありますか?

パイプライン並列処理を利用すると、前方パスの最大数は同じになります。ただし、マイクロバッチとより大きなバッチ サイズを使用すると、スループット (合計トークン/秒) を向上させることができます。

#7. テンソル並列処理を 8 よりも多くすることを検討しましたか?

A100 プラットフォームはノードあたり 16 台の A100 をサポートしますが、Azure はこの機能をサポートしません。この機能をサポートしているのは Google Cloud だけですが、使用している人はほとんどいません。新しいノードの設計や保守のコストを分散するために、Azure が OpenAI 用に 16 個の A100 を備えたノードをカスタム作成し、それをパブリック GA バージョンとしてリリースしない可能性は低いです。ノード間のテンソル並列性に関しては、それは単なる可能性ですが、A100 で推論を行うためのコスト効率の低い方法です。 NVIDIA でさえ、ノード間でのテンソルの並列処理を推奨していません。

8. INT4 を使用して重みを保存することを検討したことがありますか?

INT4 の使用は効果的であることが証明されていますが、OpenAI の GPU カーネル コンパイラーは INT4 のロード、ストア、行列乗算をサポートしておらず、そのテクノロジーに INT を追加する予定はありません。ロードマップ。写真。 INT4 のロードまたはストアはサポートされていないため、重みを INT4 として保存し、それを高精度フォーマット (INT8、bfloat16 など) に量子化して戻すこともできません。

以上がChatGPT モデルのパラメータ≠ 1,750 億、誰かが矛盾によってそれを証明しました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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