機械学習ライブラリPyTorchのバージョン2.15は、MacでのFP8フォーマットのサポートと、エキスパート混合モデル(mixture-of-experts)のデコードを大幅に高速化します。発表を行ったHugging FaceのPyTorchチームによると、このバージョンにはオーディオ、ビデオ、トレーニング用の新しいMetalカーネルも含まれています。これらの作業の対象であるMPSバックエンドは、MacのGPU上でPyTorchモデルを実行することを可能にします。
言語モデルにおいて、最も目立つ改善はエキスパート混合モデルで、各レイヤーがトークンを複数のエキスパートに分散します。情報源によると、これらのモデルのデコード速度はPyTorch 2.14と比べて5倍から6.5倍速くなっています。torch.compileを使用したM3 Ultraでは、Qwen3.6-35B-A3Bは1秒あたり9.4トークンから61.3トークンに、LFM2.5-8B-A1Bは23.6トークンから123.6トークンに向上しました。密なモデルも、より高速な線形レイヤーの恩恵を受けています。テキストサンプリングはsoftmax計算によって高速化されました:FP32でサイズ[1, 128256]のロジット行の場合、時間は57µsから7µsに短縮され、MPSGraphバージョンと比べて約8倍高速です。
MacへのFP8導入
PyTorch 2.15は、MPS上でtorch.float8_e4m3fnテンソルを追加します。各値は1バイトを占有し、FP16やBF16の半分のスペースであるため、モデルの重みに必要なメモリを削減します。これらのテンソルは、テンソル単位および行単位のスケーリングを処理するF.scaled_mmで乗算されます。情報源はまた、CUDAとCPUでサポートされている他の操作が、MPSでもサポートされるようになったと述べています。
ビデオ生成のパフォーマンスも対象です。Wan2.2のタイル化VAEのデコードでは、一定のパディングにより28タイルの完全デコードで8,764回の呼び出しが生成され、ドライバーメモリが270 GiBまで増加していました。Metalで書き直されたパディングにより、ピークは約8 GiBに減少しました。同じ変更により、ComfyUIで報告されていた、Qwen-Image-2.1のVAEエンコーダーがMPS上で画像を暗黙的に劣化させていた問題も修正されました。エンコード-デコードの往復処理は、以前の10.06 dBに対して、CPUと比較して29.95 dBのPSNRを達成するようになりました。
このバージョンを使用するには、Appleシリコンチップを搭載したMac、macOS 15以降、およびPython 3.11以降が必要です。チームは、リリース候補版を専用のインデックスを使用して、uv pip install torch==2.15.0コマンドで分離された環境にインストールできると述べています。また、MPSの可用性チェックが、OSが古すぎる、Metal GPUがないなど、失敗の理由を表示するようになったことも説明しています。
