🤖 24 AI
🟡 🏥 実践 2026年4月18日土曜日 · 4 分で読めます

PyTorchとMeta:40以上の最適化で有効トレーニング時間90%超を達成、MegaCacheがPT2コンパイルを40%短縮

なぜ重要か

Metaは2025年末に推薦モデルのオフライントレーニングで有効トレーニング時間(ETT)90%超を達成した方法を発表しました。手法にはPyTorchエコシステムの40以上の新たな最適化、PT2コンパイル時間を40%短縮するMegaCache、ジョブあたり30分節約するスタンドアロンモデル発行、非同期チェックポイントが含まれます。改善はPyTorchとTorchRecを通じてオープンソース化されています。

Metaの16名のエンジニアチームとPyTorchプロジェクトの協力者が2026年4月17日に、2025年末に推薦モデルのオフライントレーニングで有効トレーニング時間(ETT)90%超を達成した方法についての詳細な記事を発表しました。Ruilin Chen、Yuzhen Huang、Hang Qiらの共著で、40以上の具体的な最適化のリストを含んでいます。

ETTとは何か、なぜ重要なのか

Metaは新しい指標——有効トレーニング時間(ETT%)——を導入しました。これは実際に生産的なトレーニングに使われる総エンドツーエンドの壁時計時間のパーセンテージを測定します。

式は単純です:

ETT% = 100% - アイドル% - 失敗%

MetaはETTを3つのサブメトリクスに分解します:

  1. 起動時間(Time to Start) — ハードウェア割り当てから最初のバッチ消費まで
  2. 回復時間(Time to Recover) — 障害後の再起動とレジュームにかかる時間
  3. 失敗回数(Number of Failures) — インフラ関連の中断の総数

これが重要な理由:従来の指標モデルFLOPs利用率(MFU)はトレーニング内の効率のみを測定しますが、その前、間、後のすべてを無視します。スケーリングでは、「中間」フェーズが支配的なコストとなります

MegaCache:コンパイル時間40%削減

主要なイノベーションの一つはMegaCache——PT2(PyTorch 2.0)コンポーネントの統合キャッシュシステムです:

  • Inductorキャッシュ
  • Triton bundler
  • AOT Autograd
  • Dynamo PGO
  • 自動チューニング設定

Metaはこれらを単一のキャッシュに統合し、一度実行してから後続のジョブで再利用できます。

結果:平均PT2コンパイル時間が約40%削減。追加の利点はリモートサーバーへのリクエスト削減、より速いモデルセットアップ、リトライされたジョブのより信頼性の高い起動です。

チェックポイント管理

チェックポイントは回復に不可欠ですが、通常はトレーニングをブロックします。Metaは3つの方向で取り組みました:

非同期チェックポイント:

  • チェックポイントのCPUメモリコピーを作成
  • メイントレーナーはバックグラウンドプロセスがアップロードしている間も継続
  • GPUアイドル時間を削減

PyTorchネイティブステージング:

  • カスタムC++ステージング実装を置換
  • 新しいPyTorchネイティブAPIを使用
  • トレードオフ:トレーナーのメモリ増加でブロッキング時間を削減

間隔最適化:

  • 未保存トレーニング時間 = (失敗回数) × (チェックポイント間隔) / 2
  • チェックポイント保存ブロッキング時間 = (トレーニングループ時間) / (チェックポイント間隔) × (チェックポイントあたりのブロッキング時間)
  • 最適間隔は総損失時間を最小化

スタンドアロンモデル発行:30分節約

従来のフロー:トレーニングが終了し、その後同じGPUがモデル発行(本番フォーマットへのエクスポート、検証、アップロード)を行います。

Metaは発行とトレーニングを分離しました

  • トレーニングがアンカーチェックポイントを作成
  • 別のCPUベースのスタンドアロンジョブが並行してモデルを発行

結果:ジョブあたり約30分節約。毎日数百のトレーニングを実行する企業にとって、毎月数百時間の節約になります。

トレーナー初期化

通信最適化:

  • 不要なプロセスグループ作成を排除
  • メタデータの不要なall_gatherコールを排除
  • 代わりに、シャーディングプランブロードキャスト後にグローバルランクメタデータをローカルに構築

パイプライン最適化:

  • 独立した初期化フェーズの並列化
  • 「ファストバッチ」データを使用したDPPウォームアップとPT2コンパイルをオーバーラップ
  • 長いデータローディングを持つファンデーションモデルに特に有用

障害削減

Metaは2つの主要な障害原因を特定しました:

  1. ジョブのプリエンプション(並行ジョブが多い=競合が多い)
  2. サービスの回帰

対応は二方向:新しいスケジューリングアルゴリズムのためのインフラチームとの協力+TTS、TTR、未保存トレーニング時間、チェックポイント保存時間をリアルタイムで表示するコンポーネントレベルの可観測性ダッシュボード

オープンソースへの貢献

PyTorch 2.0の改善:

  • 動的シェイプ処理のためのTORCH_COMPILE_DYNAMIC_SOURCES
  • MegaCacheエンドツーエンドキャッシュシステム
  • PyTorchネイティブステージングAPI

TorchRecの改善:

  • シャーディングプランの最適化(all_gatherオーバーヘッドを排除)
  • 通信最適化パターン

すべてPyTorchドキュメントで他の組織が再現できるよう公開されています。

業界へのメッセージ

Metaの投稿から最も深い教訓は最適化のパラダイムシフトです:「各イテレーションをどう速くするか」から「真のトレーニング以外のすべてをどう減らすか」へ。コミュニティがMFUとスループット向上に集中している間、Metaは10%のETT向上が10%のMFU向上と同様に価値があること——そして多くの場合エンジニアリングによってはるかに簡単に達成できることを示しています。

AIトレーニングを拡大している組織にとって、ETTはMFUと同様に重要な指標となります。

🤖

この記事はAIにより一次情報源から生成されました。