「PyTorch 2.13」リリース ─ FlexAttentionのApple Silicon対応など

大規模言語モデル学習のメモリ削減、分散学習やPython 3.15対応強化も

7月11日 12:42

 PyTorch Foundationは7月8日(現地時間)、機械学習フレームワーク「PyTorch 2.13」をリリースした。

 「PyTorch」は、Python向けのオープンソース機械学習フレームワーク。深層学習モデルの研究開発から本番環境での学習・推論などに利用されている。

 「PyTorch 2.13」では、FlexAttentionのApple Silicon対応、Inductor向けCuTeDSLバックエンド、メモリ使用量を削減するnn.LinearCrossEntropyLoss、新しい分散通信バックエンドtorchcommsなど、多数の機能追加と性能改善が行われている。

 「PyTorch 2.13」のハイライトは以下の通り。
〇FlexAttentionがApple SiliconのMetal/MPSに対応
〇CUDA版FlexAttentionで再現可能な勾配計算を行うdeterministic backward pathを追加
〇InductorにCuTeDSLベースの新しいGPUコード生成バックエンドを追加
〇大規模語彙モデル学習向けにnn.LinearCrossEntropyLossを追加
〇safetensorsファイルをtorch.load()で直接読み込み可能に
〇分散学習向けの新しい通信バックエンドtorchcommsを追加
〇FSDP2でreduce-scatterとall-gatherの通信重畳に対応
〇Linux向けにPython 3.15およびfree-threaded 3.15t wheelを提供
〇ROCm、Arm、Intel XPUなどのプラットフォーム対応を強化
〇ExecuTorchをPyTorch Coreへ統合
〇named tensor機能を削除
など。

 「PyTorch 2.13」では、Apple SiliconのMetal/MPS上でFlexAttentionを利用できるようになった。長いシーケンスに対する疎なattentionパターンでは、SDPAと比較して大幅な高速化が得られる可能性がある。

 CUDA版FlexAttentionでは、deterministic backward pathが追加された。新しい経路では、書き込み順序を事前に計算することで、再現可能な勾配計算を行える。

 ニューラルネットワーク関連では、nn.LinearCrossEntropyLossが追加された。大規模語彙を持つ言語モデルの学習では、最終線形層の出力であるlogits行列が非常に大きくなる。nn.LinearCrossEntropyLossは、線形射影とクロスエントロピー損失の計算を融合し、語彙方向を分割して処理することで、完全なlogits行列をメモリ上に展開せずに損失を計算できる。

 モデル重みの読み込みでは、safetensorsファイルをtorch.load()で直接読み込めるようになった。これにより、safetensors形式の重みを扱う際、別途ライブラリを明示的に読み込む必要がなくなる。

 コンパイル関連では、InductorがCuTeDSLを新しいGPUコード生成バックエンドとして利用できるようになった。CuTeDSLはNVIDIAのCuTeを基盤とするPythonネイティブのDSLで、GEMMやRMSNormなど、Transformer学習で重要な処理に対してTritonとは別の高性能なコード生成経路を提供する。

 分散学習では、新しい通信バックエンドtorchcommsが追加された。torchcommsは、大規模クラスタにおける耐障害性、スケーラビリティ、デバッグ性を改善することを目的としており、構造化ログやcollective tracingなどを備える。

 FSDP2では、reduce-scatter用の専用プロセスグループを利用できるようになった。有効にすると、reduce-scatterとall-gatherの通信を重畳でき、Fully Sharded Data Parallelによる分散学習のスループット向上が期待できる。

 Python対応では、Linux向けにPython 3.15 wheelの提供が開始された。ただし、Python 3.15は現時点でプレリリースであり、対応はtorch wheelのみ、Linuxのx86_64およびaarch64向けに限定される。

 後方互換性に関する変更として、非推奨だったnamed tensor機能が削除された。Tensor.namesやTensor.rename()、Tensor.refine_names()などの関連APIは利用できなくなる。また、Bazelビルドサポートも削除され、PyTorchヘッダを利用する場合はC++20が必要となった。

 「PyTorch 2.13」は、Webサイトから入手できる。

(川原 龍人/びぎねっと)

[関連リンク]
リリースアナウンス(Blogによる記事)
リリースノート
PyTorch Foundation

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30