🐳

AIと読むDeepSeek-V3 Technical Report④ - Pre-Training -

2025/01/30に公開

英語の論文を日本語にして読んでいきたいです。

4 事前トレーニング

4.1 データ構築

DeepSeek-V2 と比較して、数学およびプログラミングサンプルの比率を高め、英語と中国語を超えた多言語の範囲を拡大することにより、事前トレーニングコーパスを最適化します。また、コーパスの多様性を維持しながら、冗長性を最小限に抑えるためにデータ処理パイプラインが改良されています。Ding et al. (2024) に触発されて、データ整合性のためにドキュメントパッキングメソッドを実装しますが、トレーニング中にサンプル間の注意マスキングは組み込みません。最後に、DeepSeek-V3 のトレーニングコーパスは、トークナイザーの 14.8T の高品質で多様なトークンで構成されています。

DeepSeekCoder-V2(DeepSeek-AI, 2024a)のトレーニングプロセスでは、Fill-in-Middle(FIM)戦略が次のトークン予測能力を損なうことなく、モデルがコンテキストキューに基づいて中間テキストを正確に予測できるようにすることが観察されています。DeepSeekCoder-V2 に合わせて、DeepSeek-V3 の事前トレーニングにも FIM 戦略を組み込みます。具体的には、Prefix-Suffix-Middle(PSM)フレームワークを使用して、データを次のように構造化します。

<|fim\_begin|> f_{pre} <|fim\_hole|> f_{suf} <|fim\_end|> f_{middle} <|eos\_token|>

この構造は、事前パッキングプロセスの一部としてドキュメントレベルで適用されます。FIM 戦略は、PSM フレームワークと一致して、0.1 のレートで適用されます。

DeepSeek-V3 のトークナイザーは、128K トークンの拡張語彙を持つバイトレベル BPE(Shibata et al., 1999)を採用しています。トークナイザーのプリトークナイザーとトレーニングデータは、多言語圧縮効率を最適化するために変更されています。さらに、DeepSeek-V2 と比較して、新しいプリトークナイザーは句読点と改行を組み合わせたトークンを導入します。ただし、このトリックは、特に少数のショット評価プロンプトの場合、モデルが終端の改行のない複数行のプロンプトを処理するときに、トークン境界バイアス(Lundberg, 2023)を導入する可能性があります。この問題に対処するために、トレーニング中にそのような結合トークンの特定の割合をランダムに分割し、モデルをより幅広い特殊なケースにさらし、このバイアスを軽減します。

4.2 ハイパーパラメータ

モデルハイパーパラメータ。
Transformer レイヤーの数を 61、隠れ次元を 7168 に設定します。すべての学習可能なパラメータは、0.006 の標準偏差でランダムに初期化されます。MLA では、注意ヘッドの数 n_h を 128 に、ヘッドごとの次元 d_h を 128 に設定します。KV 圧縮次元 d_c は 512 に設定され、クエリ圧縮次元 d_c' は 1536 に設定されます。分離されたクエリとキーの場合、ヘッドごとの次元 d_h^R を 64 に設定します。最初の 3 つのレイヤーを除くすべての FFN を MoE レイヤーに置き換えます。各 MoE レイヤーは、1 つの共有エキスパートと 256 のルーティングされたエキスパートで構成され、各エキスパートの中間隠れ次元は 2048 です。ルーティングされたエキスパートのうち、各トークンに対して 8 つのエキスパートがアクティブ化され、各トークンは最大 4 つのノードに送信されることが保証されます。マルチトークン予測深度 D は 1 に設定されます。つまり、正確な次のトークンに加えて、各トークンは 1 つの追加トークンを予測します。DeepSeek-V2 と同様に、DeepSeek-V3 は、圧縮された潜在ベクトルの後に追加の RMSNorm レイヤーも採用し、幅のボトルネックで追加のスケーリング係数を乗算します。この構成では、DeepSeek-V3 は 671B の合計パラメータで構成され、そのうち 37B が各トークンに対してアクティブ化されます。

トレーニングハイパーパラメータ。
ハイパーパラメータを β1 = 0.9β2 = 0.95weight_decay = 0.1 に設定した AdamW オプティマイザ(Loshchilov and Hutter, 2017)を採用します。事前トレーニング中に最大シーケンス長を 4K に設定し、14.8T トークンで DeepSeek-V3 を事前トレーニングします。学習率のスケジューリングについては、最初の 2K ステップで 0 から 2.2 x 10^-4 まで線形に増加させます。次に、モデルが 10T のトレーニングトークンを消費するまで、2.2 x 10^-4 の一定の学習率を維持します。その後、コサイン減衰曲線に従って、学習率を 4.3T トークンで 2.2 x 10^-5 まで徐々に減衰させます。最後の 500B トークンのトレーニング中、最初の 333B トークンでは 2.2 x 10^-5 の一定の学習率を維持し、残りの 167B トークンでは 7.3 x 10^-6 の別の一定の学習率に切り替えます。勾配クリッピングノルムは 1.0 に設定されます。バッチサイズスケジューリング戦略を採用しており、最初の 469B トークンのトレーニングではバッチサイズが 3072 から 15360 に徐々に増加し、残りのトレーニングでは 15360 を維持します。パイプライン並列処理を利用して、モデルの異なるレイヤーを異なる GPU に展開し、各レイヤーでは、ルーティングされたエキスパートは 8 つのノードに属する 64 個の GPU に均等に展開されます。ノード制限ルーティングについては、各トークンは最大 4 つのノード(つまり、 M=4 )に送信されます。補助ロスフリーの負荷分散については、最初の 14.3T トークンではバイアス更新速度 γ を 0.001 に、残りの 500B トークンでは 0.0 に設定します。バランスロスについては、単一のシーケンス内の極端な不均衡を回避するためだけに、 α を 0.0001 に設定します。MTP ロスウェイト λ は、最初の 10T トークンでは 0.3 に設定し、残りの 4.8T トークンでは 0.1 に設定します。

図8: 「針を干し草の中に埋める」 (NIAH) テストの評価結果。DeepSeek-V3 は、最大 128K のすべてのコンテキストウィンドウ長で優れたパフォーマンスを発揮します。

4.3 長いコンテキストの拡張

DeepSeek-V3 で長いコンテキスト機能を有効にするために、DeepSeek-V2と同様のアプローチを採用します。事前トレーニング段階の後、コンテキスト拡張に YaRNを適用し、それぞれ 1000 ステップで構成される 2 つの追加トレーニングフェーズを実行して、コンテキストウィンドウを 4K から 32K に、次に 128K に段階的に拡張します。YaRN 構成は DeepSeek-V2 で使用されたものと一貫しており、分離された共有キー 𝐤_t^R にのみ適用されます。ハイパーパラメータは両方のフェーズで同一のままです。スケール s = 40α = 1β = 32、およびスケーリング係数 t = 0.1 \ln s + 1 です。最初のフェーズでは、シーケンス長が 32K に設定され、バッチサイズが 1920 になります。2 番目のフェーズでは、シーケンス長が 128K に増加し、バッチサイズが 480 に減少します。両方のフェーズの学習率は、事前トレーニング段階の最後の学習率と一致するように、7.3 x 10^-6 に設定されます。

この 2 段階の拡張トレーニングを通じて、DeepSeek-V3 は最大 128K の長さの入力を処理しながら、強力なパフォーマンスを維持できます。図 8 は、DeepSeek-V3 が教師ありファインチューニング後、「針を干し草の中に埋める」(NIAH)テストで優れたパフォーマンスを達成し、最大 128K のコンテキストウィンドウ長で一貫した堅牢性を示していることを示しています。

4.4 評価

4.4.1 評価ベンチマーク

DeepSeek-V3 のベースモデルは、英語と中国語が大部分を占める多言語コーパスで事前トレーニングされているため、主に英語と中国語、および多言語ベンチマークでそのパフォーマンスを評価します。当社の評価は、HAI-LLM フレームワークに統合された内部評価フレームワークに基づいています。考慮されるベンチマークは、次のように分類およびリストされており、下線付きのベンチマークは中国語であり、二重下線付きのベンチマークは多言語です。

複数の科目の複数選択データセットには、MMLU(Hendrycks et al., 2020)、MMLU-Redux(Gema et al., 2024)、MMLU-Pro(Wang et al., 2024b)、MMMLU(OpenAI, 2024b)、C-Eval(Huang et al., 2023)、および CMMLU(Li et al., 2023)が含まれます。

言語理解と推論データセットには、HellaSwag(Zellers et al., 2019)、PIQA(Bisk et al., 2020)、ARC(Clark et al., 2018)、および BigBench Hard(BBH)(Suzgun et al., 2022)が含まれます。

クローズドブック質問応答データセットには、TriviaQA(Joshi et al., 2017)および NaturalQuestions(Kwiatkowski et al., 2019)が含まれます。

読解データセットには、RACE Lai et al. (2017)、DROP(Dua et al., 2019)、C3(Sun et al., 2019a)、および CMRC(Cui et al., 2019)が含まれます。

参照曖昧性解消データセットには、CLUEWSC(Xu et al., 2020)および WinoGrande Sakaguchi et al. (2019) が含まれます。

言語モデリングデータセットには、Pile(Gao et al., 2020)が含まれます。

中国語の理解と文化データセットには、CCPM(Li et al., 2021)が含まれます。

数学データセットには、GSM8K(Cobbe et al., 2021)、MATH(Hendrycks et al., 2021)、MGSM(Shi et al., 2023)、および CMath(Wei et al., 2023)が含まれます。

コードデータセットには、HumanEval(Chen et al., 2021)、LiveCodeBench-Base(0801-1101)(Jain et al., 2024)、MBPP(Austin et al., 2021)、および CRUXEval(Gu et al., 2024)が含まれます。

標準化された試験には、AGIEval(Zhong et al., 2023)が含まれます。AGIEval には、英語と中国語の両方のサブセットが含まれていることに注意してください。

以前の研究(DeepSeek-AI, 2024b, c)に従い、HellaSwag、PIQA、WinoGrande、RACE-Middle、RACE-High、MMLU、MMLU-Redux、MMLU-Pro、MMMLU、ARC-Easy、ARC-Challenge、C-Eval、CMMLU、C3、および CCPM を含むデータセットには、パープレキシティベースの評価を採用し、TriviaQA、NaturalQuestions、DROP、MATH、GSM8K、MGSM、HumanEval、MBPP、LiveCodeBench-Base、CRUXEval、BBH、AGIEval、CLUEWSC、CMRC、および CMath には、生成ベースの評価を採用します。さらに、Pile-test には言語モデリングベースの評価を実行し、異なるトークナイザーを使用するモデル間で公平な比較を保証するために、メトリックとして Bits-Per-Byte(BPB)を使用します。

表3: DeepSeek-V3-Base と他の代表的なオープンソースベースモデルとの比較。すべてのモデルは、内部フレームワークで評価され、同じ評価設定を共有します。ギャップが 0.3 を超えないスコアは、同じレベルにあると見なされます。DeepSeek-V3-Base は、特に数学とコードタスクで、ほとんどのベンチマークで最高のパフォーマンスを達成しています。

4.4.2 評価結果

表 3 では、DeepSeek-V3 のベースモデルを、DeepSeek-V2-Base (DeepSeek-AI, 2024c)(以前のリリース)、Qwen2.5 72B Base (Qwen, 2024b)、および LLaMA-3.1 405B Base (AI@Meta, 2024b) を含む、最先端のオープンソースベースモデルと比較します。これらのモデルはすべて、内部評価フレームワークで評価し、同じ評価設定を共有するようにします。過去数か月にわたる評価フレームワークの変更により、DeepSeek-V2-Base のパフォーマンスが以前に報告された結果と若干異なることに注意してください。全体として、DeepSeek-V3-Base は DeepSeek-V2-Base および Qwen2.5 72B Base を包括的に上回り、ほとんどのベンチマークで LLaMA-3.1 405B Base を凌駕し、事実上最強のオープンソースモデルとなっています。

より詳細な視点から、DeepSeek-V3-Base を他のオープンソースベースモデルと個別に比較します。(1) DeepSeek-V2-Base と比較して、モデルアーキテクチャの改善、モデルサイズとトレーニングトークンのスケールアップ、およびデータ品質の向上により、DeepSeek-V3-Base は予想どおり大幅に優れたパフォーマンスを達成します。(2) 最先端の中国語オープンソースモデルである Qwen2.5 72B Base と比較して、アクティブ化されたパラメータが半分しかない DeepSeek-V3-Base は、特に英語、多言語、コード、および数学のベンチマークで、目覚ましい利点を示しています。中国語ベンチマークについては、中国語の複数科目選択タスクである CMMLU を除いて、DeepSeek-V3-Base も Qwen2.5 72B よりも優れたパフォーマンスを示しています。(3) 11 倍のアクティブ化されたパラメータを持つ最大のオープンソースモデルである LLaMA-3.1 405B Base と比較して、DeepSeek-V3-Base は多言語、コード、および数学のベンチマークでさらに優れたパフォーマンスを示しています。英語および中国語の言語ベンチマークについては、DeepSeek-V3-Base は競争力のあるパフォーマンスまたはより優れたパフォーマンスを示しており、特に BBH、MMLU シリーズ、DROP、C-Eval、CMMLU、および CCPM で優れています。

効率的なアーキテクチャと包括的なエンジニアリング最適化により、DeepSeek-V3 は非常に高いトレーニング効率を実現しています。トレーニングフレームワークとインフラストラクチャでは、1 兆トークンごとに DeepSeek-V3 をトレーニングするには、わずか 180K の H800 GPU 時間しか必要ありません。これは、72B または 405B の密なモデルのトレーニングよりもはるかに安価です。

表4: MTP 戦略のアブレーション結果。MTP 戦略は、ほとんどの評価ベンチマークでモデルのパフォーマンスを常に向上させます。

4.5 考察

4.5.1 Multi-Token Prediction のアブレーションスタディ

表 4 では、MTP 戦略のアブレーション結果を示します。具体的には、異なるスケールで 2 つのベースラインモデルの上で MTP 戦略を検証します。小スケールでは、1.33T トークンで 15.7B の合計パラメータで構成されるベースライン MoE モデルをトレーニングします。大規模では、540B トークンで 228.7B の合計パラメータで構成されるベースライン MoE モデルをトレーニングします。それらの上で、トレーニングデータと他のアーキテクチャを同じに保ちながら、1 深度の MTP モジュールを追加し、比較のために MTP 戦略で 2 つのモデルをトレーニングします。推論中に MTP モジュールを直接破棄するため、比較されたモデルの推論コストはまったく同じであることに注意してください。表から、MTP 戦略がほとんどの評価ベンチマークでモデルのパフォーマンスを一貫して向上させていることがわかります。

4.5.2 補助ロスフリーのバランシング戦略のアブレーションスタディ

表 5 では、補助ロスフリーのバランシング戦略のアブレーション結果を示します。異なるスケールで 2 つのベースラインモデルの上でこの戦略を検証します。小スケールでは、1.33T トークンで 15.7B の合計パラメータで構成されるベースライン MoE モデルをトレーニングします。大規模では、578B トークンで 228.7B の合計パラメータで構成されるベースライン MoE モデルをトレーニングします。両方のベースラインモデルは、負荷バランスを促進するために純粋に補助ロスを使用し、上位 K アフィニティ正規化を使用したシグモイドゲーティング関数を使用します。補助ロスの強さを制御するためのハイパーパラメータは、それぞれ DeepSeek-V2-Lite および DeepSeek-V2 と同じです。これらの 2 つのベースラインモデルの上で、トレーニングデータと他のアーキテクチャを同じに保ちながら、すべての補助ロスを削除し、比較のために補助ロスフリーのバランシング戦略を導入します。表から、補助ロスフリー戦略が、ほとんどの評価ベンチマークで一貫して優れたモデルパフォーマンスを達成していることがわかります。

表5: 補助ロスフリーのバランシング戦略のアブレーション結果。純粋な補助ロスベースの方法と比較して、補助ロスフリー戦略は、ほとんどの評価ベンチマークで一貫して優れたモデルパフォーマンスを達成しています。

4.5.3 バッチ単位の負荷分散とシーケンス単位の負荷分散

補助ロスフリーのバランシングとシーケンス単位の補助ロスの主な違いは、そのバランシング範囲(バッチ単位対シーケンス単位)にあります。シーケンス単位の補助ロスと比較して、バッチ単位のバランシングは、各シーケンスにドメイン内のバランスを強制しないため、より柔軟な制約を課します。この柔軟性により、エキスパートはさまざまなドメインをより専門化できます。これを検証するために、Pile テストセットの異なるドメインで、16B 補助ロスベースのベースラインモデルと 16B 補助ロスフリーモデルのエキスパート負荷を記録して分析します。図 9 に示すように、補助ロスフリーモデルは、予想どおり、より大きなエキスパート専門化パターンを示していることがわかります。

この柔軟性とモデルパフォーマンスの利点の間の相関関係をさらに調査するために、シーケンスごとではなく各トレーニングバッチの負荷バランスを促進するバッチ単位の補助ロスも設計および検証します。実験結果は、同様のレベルのバッチ単位の負荷バランスを達成する場合、バッチ単位の補助ロスも、補助ロスフリーの方法と同様のモデルパフォーマンスを達成できることを示しています。具体的には、1B MoE モデルを使用した実験では、検証損失は、2.258 (シーケンス単位の補助ロスを使用)、2.253 (補助ロスフリーの方法を使用)、および 2.253 (バッチ単位の補助ロスを使用) です。また、3B MoE モデルでも同様の結果が観察されます。シーケンス単位の補助ロスを使用するモデルは 2.085 の検証損失を達成し、補助ロスフリーの方法またはバッチ単位の補助ロスを使用するモデルは 2.080 の同じ検証損失を達成します。

さらに、バッチ単位の負荷分散メソッドは一貫したパフォーマンスの利点を示すものの、効率の点で 2 つの潜在的な課題にも直面しています。(1) 特定のシーケンスまたは小さなバッチ内の負荷の不均衡、および (2) 推論中のドメインシフトによって引き起こされる負荷の不均衡。最初の課題は、各マイクロバッチの大きなサイズを保証する大規模なエキスパート並列処理とデータ並列処理を使用する当社のトレーニングフレームワークによって自然に対処されます。2 番目の課題については、セクション 3.4 で説明したように、冗長エキスパート展開を備えた効率的な推論フレームワークを設計および実装し、それを克服します。

図9: Pile テストセットの 3 つのドメインにおける補助ロスフリーモデルと補助ロスベースのモデルのエキスパート負荷。補助ロスフリーモデルは、補助ロスベースのモデルよりも大きなエキスパート専門化パターンを示しています。相対的なエキスパート負荷は、実際のエキスパート負荷と理論的にバランスの取れたエキスパート負荷の比率を示します。スペースの制約により、すべてのレイヤーの結果を付録 C で提供し、例として 2 つのレイヤーの結果のみを示します。


Post-Trainingへ続く
https://zenn.dev/tanegoma/articles/b32c253fb49e13

Discussion