ChatGPT モデルのパラメータ≠ 1,750 億、誰かが矛盾によってそれを証明しました。
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 のストレージ容量が必要であることがわかります。
画像は 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 をロードするだけで済みます。
写真は Megatron-LM 論文からのものです。アドレス: https://arxiv.org/ abs/1909.08053
A100 80GB SXM バージョンでは、最大メモリ帯域幅は 2TB/秒です。これは、batchsize=1 (メモリ帯域幅によって制限される) の場合、理論上の最大フォワード パス速度は 91 回/秒になることを意味します。また、ほとんどの時間は行列の乗算の計算ではなく、重みのロードに費やされます。
#注: 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Centos Shutdownコマンドはシャットダウンし、構文はシャットダウン[オプション]時間[情報]です。オプションは次のとおりです。-hシステムをすぐに停止します。 -pシャットダウン後に電源をオフにします。 -r再起動; -t待機時間。時間は、即時(現在)、数分(分)、または特定の時間(HH:mm)として指定できます。追加の情報をシステムメッセージに表示できます。

Centosシステムの下でのGitlabのバックアップと回復ポリシーデータセキュリティと回復可能性を確保するために、Gitlab on Centosはさまざまなバックアップ方法を提供します。この記事では、いくつかの一般的なバックアップ方法、構成パラメーター、リカバリプロセスを詳細に紹介し、完全なGitLabバックアップと回復戦略を確立するのに役立ちます。 1.手動バックアップGitlab-RakeGitlabを使用:バックアップ:コマンドを作成して、マニュアルバックアップを実行します。このコマンドは、gitlabリポジトリ、データベース、ユーザー、ユーザーグループ、キー、アクセスなどのキー情報をバックアップします。デフォルトのバックアップファイルは、/var/opt/gitlab/backupsディレクトリに保存されます。 /etc /gitlabを変更できます

CENTOSシステムでHDFS構成をチェックするための完全なガイドこの記事では、CENTOSシステム上のHDFSの構成と実行ステータスを効果的に確認する方法をガイドします。次の手順は、HDFSのセットアップと操作を完全に理解するのに役立ちます。 Hadoop環境変数を確認します。最初に、Hadoop環境変数が正しく設定されていることを確認してください。端末では、次のコマンドを実行して、Hadoopが正しくインストールおよび構成されていることを確認します。HDFS構成をチェックするHDFSファイル:HDFSのコア構成ファイルは/etc/hadoop/conf/ディレクトリにあります。使用

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

CentOSにMySQLをインストールするには、次の手順が含まれます。適切なMySQL Yumソースの追加。 yumを実行して、mysql-serverコマンドをインストールして、mysqlサーバーをインストールします。ルートユーザーパスワードの設定など、MySQL_SECURE_INSTALLATIONコマンドを使用して、セキュリティ設定を作成します。必要に応じてMySQL構成ファイルをカスタマイズします。 MySQLパラメーターを調整し、パフォーマンスのためにデータベースを最適化します。

SSHサービスを再起動するコマンドは次のとおりです。SystemCTL再起動SSHD。詳細な手順:1。端子にアクセスし、サーバーに接続します。 2。コマンドを入力します:SystemCtl RestArt SSHD; 3.サービスステータスの確認:SystemCTLステータスSSHD。

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所
