DeepSeek-V3の統一されたE4M3形式は、混合精度トレーニングに関連するいくつかの課題、特にダイナミックレンジと精度に関連する課題に対処することにより、モデルの効率に大きく貢献します。この形式がどのように効率を高めるかについての詳細な説明を次に示します。
##微調整された量子化戦略
DeepSeek-V3は、細粒の量子化戦略を採用しており、トレーニングのすべての段階でE4M3形式を効果的に利用できるようにします。ハイブリッドFP8形式(前方パスでE4M3、バックワードパスでE5M2)を使用した以前のフレームワークとは異なり、DeepSeek-V3のアプローチにより、アクティベーションがグループ化され、1x128タイルベースでスケーリングされることが保証されますが、ウェイトは128x128ブロックでスケーリングされます[1]。この粒度は、各グループのスケーリング係数を動的に調整することにより、外れ値をより適切に処理するのに役立ちます。これにより、FP8形式に固有の限られた動的範囲の影響が軽減されます[3]。
##ダイナミックスケーリングとオンライン量子化
モデルはオンライン量子化を使用します。ここでは、トレーニング中に各活性化タイルまたは重量ブロックに対してスケーリング係数が動的に計算されます。これにより、履歴の最大値を維持し、フレームワークを簡素化し、精度を向上させる必要性が排除されます[1] [2]。これらのスケーリング因子を動的に調整することにより、DeepSeek-V3は利用可能なFP8数表現バケットの使用を最適化し、ほとんどの値が狭い範囲でクラスター化されないようにします。
##メモリの使用量と計算コストの削減
統一されたE4M3形式は、細粒の量子化と組み合わせて、メモリの使用量を大幅に削減します。アクティベーションとオプティマイザーの状態を低精度形式で保存することにより(アクティベーションのFP8など)、DeepSeek-V3はメモリ要件を最小限に抑えます。これは、大規模モデル[1] [5]に重要です。さらに、主要な計算にFP8を使用すると、FP16やFP32などの高精度形式と比較して処理されるデータが少ないため、計算コストが削減されます[5]。
##増強された数値安定性
DeepSeek-V3は、蓄積中に特定の間隔でFP32レジスタに部分的な結果を促進することにより、FP8トレーニングに関連する数値精度損失の問題にも対処しています。この戦略は、テンソルコアの限られたビット幅の蓄積によって引き起こされるエラーを軽減し、数値の安定性と信頼できるトレーニングを確保します[1] [7]。
要約すると、DeepSeek-V3の統一されたE4M3形式は、細粒の量子化、動的スケーリング、メモリ使用量の減少、数値安定性の改善を可能にすることにより、効率を向上させます。これらのイノベーションにより、DeepSeek-V3は計算リソースを最適化しながら最先端のパフォーマンスを実現できます。
引用:
[1] https://community.aws/content/2rjj1wkztsfywvfsiibhwxeqmf1/four-unique-takeaways-from-deepseek-v3?lang=en
[2] https://research.meekolab.com/deepseeks-low-level-hardware-magic
[3] https://fireworks.ai/blog/deepseek-model-architecture
[4] https://dirox.com/post/deepseek-v3-the-source-ai-revolution
[5] https://cidump.spoto.net/newblog/overview-of-deepseek-v3:-latest-deepseek-technical-report.html
[6] https://adasci.org/deepseek-v3-explaind-optimizing-efficiency-andscale/
[7] https://www.linkedin.com/posts/danielhanchen_deepseek-v3-is-most-powerful-open-source-activity-72784888573006200832-kta_
[8] https://www.reddit.com/r/localllama/comments/1hmmtt3/deepseek_v3_is_officially_releaded_code_paper/