PyTorch 2.13:LLMトレーニングのGPUメモリを最大4分の1に削減、FlexAttentionが12.3倍高速化
PyTorch 2.13が526名の貢献者による3,328コミットとともにリリース。主要な新機能:nn.LinearCrossEntropyLossがLLMトレーニングのピークGPUメモリフットプリントを最大4倍削減、Apple SiliconでのFlexAttentionが最大12.3倍高速化、新しいtorchcommsバックエンドが分散トレーニングを刷新。
この記事はAIにより一次情報源から生成されました。
PyTorch 2.13が2026年7月8日に526名の貢献者による3,328コミットとともにリリースされた。MLエンジニアの3つの慢性的な課題を直接解消する変更が含まれる:大規模モデルトレーニング時のGPUメモリ、Apple SiliconでのアテンションB速度、分散トレーニングの複雑さだ。また、Arm Armv9-A、Intel XPU、Python 3.15へのプラットフォームサポートが拡大され、safetensorsフォーマットが外部ライブラリなしでネイティブサポートされた。
損失の融合:GPUメモリを最大4分の1に削減
PyTorch 2.13で最も印象的な新機能は新しいクラス**nn.LinearCrossEntropyLoss**だ。一見すると技術的な細部のように見えるが、大規模語彙の言語モデルをトレーニングするすべての人にとって影響は大きい。
LLMトレーニングの標準的なフロー:最終線形層がモデルの隠れ状態を語彙空間(例えば10万トークン)に射影し、クロスエントロピー損失が正しい答えとの誤差を計算する。問題は中間結果のサイズにある:10万以上のトークンを持つ語彙のモデルでは、その線形射影に逆伝播の勾配計算のためにGPU上に保存しなければならない巨大テンソルが必要になる。
nn.LinearCrossEntropyLossはこの2ステップを1つの演算に融合する——射影と損失を共に計算し、カーネルが完全な中間結果を実体化してVRAMに保持することはない。結果として:大規模語彙のモデルトレーニングでピークGPUメモリフットプリントが最大4分の1に削減される。APIはドロップイン代替品として設計されており、ラベルスムージング、ウェイトタイイング、z損失正則化で動作し、移行に必要なコード変更は最小限だ。
LinearCrossEntropyLossがなぜ重要なのか?
80GB VRAMを持つ最新のGPUでさえ、LLMトレーニングはバッチサイズ、シーケンス長、トレーニング可能なモデルの最大サイズを左右するメモリ制約に直面している。メモリの壁は抽象的ではない——利用可能なハードウェアでどのような実験ができるかを決定する。
ピークメモリフットプリントの4倍削減は実際的な意味を持つ:同じGPUでより大きなモデルをトレーニングし、より大きなバッチを使用し、より長いコンテキストで作業できる。数百台のGPUクラスターにアクセスできない研究室やスタートアップにとって、これは利用可能なリソースで何が達成できるかを変える具体的な進歩だ——高価な機材を購入することなく。
Apple SiliconでのFlexAttention:最大12.3倍高速化
PyTorch 2.13はMPSバックエンド(Apple Silicon)にFlexAttentionをもたらす。スライディングウィンドウアテンションのようなスパース(疎な)アテンションパターンでは、SDPA(スケールドドットプロダクトアテンション)と比較して最大12.3倍の高速化を達成する。
具体的な測定値が物語る:256要素のスライディングウィンドウを持つ32,768トークンのシーケンスは、同じApple Siliconチップ上でFlexAttentionを使用すると約35msかかるのに対し、標準的なSDPAでは約431msかかる。この差は長いコンテキスト推論をMacで理論的に可能な範囲から実際に高速な範囲へと変える。
FlexAttentionには決定論的逆伝播も追加されている——torch.use_deterministic_algorithms(True)でビット単位で再現可能な勾配が有効になり、長いシーケンスで1%未満の時間オーバーヘッドがかかる。勾配の再現性はデバッグや、実行間の一貫性が期待されるプロダクショントレーニングパイプラインにとって重要だ。
新しいコンパイルバックエンドと分散トレーニング
PyTorch 2.13はInductorにCuTeDSL「ネイティブDSL」バックエンドを導入する——NVIDIA GPU上のGEMMおよびRMSNorm演算に対してTritonの代替となる。カーネルコンパイルはサブプロセスプールによって高速化され、GILのボトルネックを解消する:カーネルの並列コンパイルがPythonのグローバルインタープリターロックでブロックされなくなり、多コアシステムでのコンパイルプロセス全体が高速化される。
分散トレーニングのフロントでは、新しいライブラリtorchcommsが古いc10dバックエンドを分散トレーニングのモダンな通信層として置き換える。構造化ロギング、集合トレーシング、耐障害性の向上——グレースフルタイムアウトとクラスターの一部が一時的にダウンした際の部分ノードグループからの回復サポートをもたらす。FSDP2は通信オーバーラップを獲得する:reduce-scatterとall-gather操作が並列に流れるようになり(set_separate_reduce_scatter_group経由でオプトイン)、高速ネットワーク接続を持つクラスターでの分散トレーニングのスループットが向上する。
統合の手間を省く実用的な細部:**torch.load("foo.safetensors")**が外部のsafetensorsライブラリをインストールすることなくネイティブに動作するようになった——フォーマットが自動的に検出されて読み込まれる。
より広いプラットフォームサポート:Arm、Intel XPU、Python 3.15、破壊的変更
PyTorch 2.13はプラットフォームサポートを複数の面で同時に拡大する:
Arm Armv9-A:torch.compileがNeoverse V2およびAWS Graviton4シリーズのAArch64プロセッサをサポートし、128ビットおよび256ビットSVE機能を伝播する。Armv9-Aアーキテクチャベースのクラウドサーバーがコンパイル済みPyTorchの完全なプラットフォームとなった。
Intel XPUテレメトリ:Intel XPUデバイス追跡用の新しいAPI——torch.xpu.device_memory_used()、プロセッサ使用率、電力消費、クロック速度、温度——がMLエンジニアにCUDAデバイスでのみ持っていた可視性を提供する。
Python 3.15:Linux(x86_64およびaarch64)でのバイナリサポート(フリースレッド版3.15tを含む)。注意:Python 3.15でのtorch.compileはまだ利用できず、3.15用のtorchvisionバイナリパッケージは構築されていない——どちらも今後のバージョンで提供される。
CUDA:デフォルトバージョンがCUDA 13.0になる。CUDA 12.8および12.9のビルドはバイナリパッケージのマトリックスから削除される。
破壊的変更:名前付きテンソル(named tensors)がこのリリースでPyTorchから最終的に削除された——複数バージョン前から予告されていたハード非推奨化だ。分散コレクティブall_gather_into_tensorとreduce_scatter_tensorはall_gather_singleとreduce_scatter_singleに改名された。Bazelビルドが削除され、CPython 3.13tがLinuxバイナリマトリックスから外れた。
Apple Silicon MPSバックエンドは大規模な内部移行を受ける:コピー、キャスト、リダクション、ソート、scatter/gather、埋め込み逆伝播の演算がネイティブのMetal計算カーネルに直接移行し、初回実行レイテンシを遅らせていたMPSGraphコンパイルのオーバーヘッドを排除する。
詳細を著者から直接聞きたいユーザー向けに:2026年7月22日太平洋時間午前11時にAlban Desmaison、Andrey Talman、Piotr Białecki(司会:Chris Gottbrath)によるライブQ&Aが予定されている。
よくある質問
- nn.LinearCrossEntropyLossとは何ですか?なぜ重要なのですか?
- nn.LinearCrossEntropyLossは最終線形射影とクロスエントロピー損失を1つの演算に融合し、大規模語彙モデルのピークGPUメモリフットプリントを最大4分の1に削減します。nn.LinearとCrossEntropyLossの組み合わせのドロップイン代替品です。
- PyTorch 2.13でApple SiliconのFlexAttentionはどのくらい高速になりましたか?
- スライディングウィンドウアテンションなどのスパースアテンションパターンでSDPAと比較して最大12.3倍高速化。32,768トークンのシーケンスでレイテンシが約431msから約35msに短縮されます。
- torchcommsとは何ですか?既存のシステムの何を置き換えますか?
- torchcommsはc10dを置き換える新しい分散トレーニング通信バックエンドです。構造化ロギング、集合トレーシング、グレースフルタイムアウト、大規模ノードグループでの耐障害性向上をもたらします。