GPT-4の構造
https://gyazo.com/f674489dc128630796ad4aca9d871f3f
パラメータ数
GPT-4はGPT-3の10倍以上の大きさを持っています。私たちは、120層にわたって約1.8兆のパラメータを持っていると考えています。
専門家の混合(Mixture Of Experts)
OpenAIは専門家の混合(MoE)モデルを利用することでコストを合理的に抑えることができました。
彼らはそのモデル内で16の専門家を使用しており、それぞれがMLPに対して約1110億のパラメータを持っています。これらの専門家のうち2つが順方向パス(forward pass)にルーティングされます。
MoEルーティング
文献では各トークンをどの専門家にルーティングするかを選択するための高度なルーティングアルゴリズムについて多く語られていますが、OpenAIのGPT-4モデルでは、非常にシンプルなものだとされています。
注目(attention)に関する共有パラメータは約5500億です。
推論
1つのトークンの生成(順方向パスの推論)は約2800億のパラメータと約560 TFLOPsを使用します。これは、純粋に密なモデルの順方向パスごとに必要となる約1.8兆のパラメータと約3700 TFLOPと対照的です。
データセット
GPT-4は約13兆のトークンで訓練されています。これらはユニークなトークンではなく、エポックもさらに多くのトークンとしてカウントされます。
エポック数:テキストベースのデータは2エポック、コードベースのデータは4エポック。ScaleAIと内部からの指示の微調整データの行が数百万存在します。
GPT-4 32K
事前訓練フェーズでは8kのコンテキスト長(seqlen)がありました。GPT-4の32k seqlenバージョンは、事前訓練後の8kの微調整に基づいています。
バッチサイズ
クラスタ上で数日間バッチサイズを段階的に上げましたが、最終的にOpenAIは6000万のバッチサイズを使用していました!もちろん、これは全ての専門家が全てのトークンを見るわけではないので、1つの専門家あたり750万トークンのバッチサイズです。
実際のバッチサイズ
この数値をseq lenで割ると実際のバッチサイズが得られます。これ以上誤解を招く数値はやめてください。
並列化戦略
すべてのA100s GPUを並列化するために、NVLinkの限界である8-way tensor parallelismを使用しています。それを超えて、15-way pipeline parallelismを使用しています。(おそらくZeRo Stage 1を使用しました。ブロックレベルのFSDPを使用した可能性もあります)
訓練コスト
OpenAIのGPT-4の訓練FLOPSは約2.15e25で、約25000のA100sを90から100日間、約32%から36%のMFUで使用しています。この非常に低い利用率の一部は、再起動が必要なチェックポイントを必要とする異常な数の失敗によるものです。
クラウドでのコスト
クラウドでのコストがA100時間あたり約1ドルだった場合、このランだけでの訓練費用は約6300万ドルになります。(今日では、事前訓練は約8192のH100を約55日間、H100時間あたり2ドルで行うことができ、2100万ドルになります。)
専門家の混合のトレードオフ
複数のMoEトレードオフが取られています:例えば、MoEは推論上で扱うのが非常に難しいです。なぜなら、モデルの全ての部分がすべてのトークン生成で使用されるわけではないからです。 これは部分が使用されていないときに休眠している可能性があることを意味します。これは、ユーザーにサービスを提供する際に、利用率を大幅に下げる可能性があります。
研究者は、64から128の専門家を使用すると、16の専門家よりも損失が改善することを示していますが、これは純粋な研究です。
専門家を少なくする理由はいくつかあります。 OpenAI が 16 人の専門家を選んだ理由の 1 つは、これ以上の専門家は多くのタスクで一般化することが難しいためです。 専門家が増えると、収束を達成するのも難しくなる可能性があります。
これほど大規模なトレーニングを実行するため、OpenAI は代わりに専門家の数をより保守的にすることを選択しました。
GPT-4 推論コスト
GPT-4 のコストは 175B パラメータ Davinchi の 3 倍です。
これは主に、GPT-4 に必要なクラスターが大きくなり、使用率がはるかに低くなったことが原因です。
コストの推定値は、GPT-4 8k seqlen を推論するのに 128 個の A100 で 1,000 トークンあたり 0.0049 セント、GPT-4 8k seqlen を推論するのに 128 個の H100 で 1,000 トークンあたり 0.0021 セントです。 使用率がかなり高く、バッチサイズを高く保つことを前提としていることに注意してください。
マルチクエリアテンション
OpenAI は他のユーザーと同じように MQA を使用しています。
そのため、必要なヘッドは 1 つだけであり、KV キャッシュのメモリ容量を大幅に削減できます。 それでも、32k seqlen GPT-4 は 40GB A100 では確実に実行できず、8k は最大 bsz に制限されています。
連続バッチ処理
OpenAI は、可変バッチ サイズと連続バッチ処理の両方を実装します。 これは、ある程度の最大レイテンシーを許容し、推論コストを最適化するためです。
ビジョンマルチモーダル
これは、クロスアテンションを備えた、テキスト エンコーダーとは別のビジョン エンコーダーです。 アーキテクチャはFlamingoに似ています。 これにより、GPT-4 の 1.8T にさらにパラメーターが追加されます。 テキストのみの事前トレーニングの後、さらに約 2 兆個のトークンを使用して微調整されます。
OpenAI はビジョン モデルをゼロからトレーニングしたいと考えていましたが、まだ十分に成熟していなかったので、テキストから始めることでリスクを回避したいと考えていました。
このビジョン機能の主な目的の 1 つは、自律エージェントが Web ページを読み取り、画像やビデオの内容を転写できるようにすることです。
トレーニング対象となるデータの一部は、結合データ (レンダリングされた LaTeX/テキスト)、Web ページのスクリーン ショット、YouTube ビデオです。フレームをサンプリングし、その周囲で Whisper を実行してトランスクリプトを取得します。
【「言ったでしょ」とは言いたくないけど…】
投機的デコード
OpenAI は GPT-4 の推論に投機的デコーディングを使用している可能性があります。 (100%確実ではありません)
このアイデアは、より小さい高速モデルを使用して事前にいくつかのトークンをデコードし、それらを単一のバッチとして大規模な Oracle モデルにフィードすることです。
小規模なモデルの予測が正しければ、より大きなモデルも一致し、単一のバッチで複数のトークンをデコードできます。
ただし、より大きなモデルがドラフト モデルによって予測されたトークンを拒否した場合、残りのバッチは破棄されます。 そして、より大きなモデルを続けます。
新しい GPT-4 の品質が劣化したという陰謀論は、単にオラクル モデルに投機的復号モデルからのより低い確率のシーケンスを受け入れさせているためである可能性があります。
推論アーキテクチャ
推論は 128 GPU のクラスター上で実行されます。
さまざまな場所にある複数のデータセンターに、これらのクラスターが複数存在します。
これは、8 方向のテンソル並列処理と 16 方向のパイプライン並列処理で実行されます。
8 GPU の各ノードには最大 130B のパラメーターしかありません。または…
モデルには 120 があるため、15 の異なるノードに適合します。
埋め込みも計算する必要があるため、最初のノードのレイヤーが少ない可能性があります
これらの数字によると、OpenAI は、チンチラの最適に従っていた場合、2 倍のトークンでトレーニングする必要がありました。
私たちのようにそれを超えることは言うまでもありません
これは、彼らが高品質のデータを取得するのに苦労していることを示しています。
なぜFSDPがないのでしょうか?
この理由として考えられるのは、確保したハードウェア インフラストラクチャの一部が古い世代であることです。
組織は通常、運用の完全な停止を避けるためにインフラを数回の「ウェーブ」でアップグレードするため、これはローカル コンピューティング クラスターでは非常に一般的です。
データセットの混合
彼らは 13T トークンでトレーニングしました。
CommonCrawl と RefinedWeb はどちらも 5T です。
複数のエポックからトークンの重複を削除すると、かなり妥当な数の「不明」トークン、つまり「秘密」データが得られます。
この時点で、その一部がtwitter、reddit、youtubeから来たという噂がすでに出ています。
【訴訟になり始める噂】
いくつかの推測は次のとおりです。
- LibGen (400 万冊以上の本)
- Sci-Hub (8,000 万以上の論文)
- GitHub のすべて
Twitterで速攻消されたやつだnomadoor.icon
信ぴょう性が分からなかったから無視したけど実際どうなんだろう