ExecuTorch、WebGPUでブラウザ上のPyTorch推論を実現
概要
PyTorchモデルをブラウザで動かす場合、これまではONNX、GGUF、TFLiteなど別の形式へ変換してから、ブラウザ向けランタイムに載せるケースが一般的だった。ExecuTorchの新しいWebGPUバックエンドは、この変換を必須にしない。開発者はtorch.exportでモデルをExecuTorchの.pteファイルへ書き出し、WebGPU対応ブラウザ上のランタイムで読み込める。
主なポイント
- PyTorchに近い導入経路。
WebGPUPartitionerが対応演算をWebGPUへ割り当て、WGSLの計算シェーダーで処理する。別フレームワーク向けの形式を主要な配布物にする必要がない。 - タブ内でGPU推論。 C++製の動的ランタイムはEmscriptenでWebAssembly化され、emdawnwebgpuを介してブラウザのWebGPU JavaScript APIへ接続する。シェーダーはmacOSではMetal、LinuxとAndroidではVulkan、WindowsではD3D12へ対応する。
- 対象はLLMだけではない。 Llama、Qwen、Gemmaに加え、SmolVLM、深度推定、SAM 2によるセグメンテーション、物体検出、超解像、Whisperの音声認識、音声合成まで検証されている。一部の言語モデルでは、端末上のLoRAおよびDiReFT微調整も示されている。
- CPU経路との比較。 Apple M1 Pro上のChromeで、量子化したLlama 3.2 1BとQwen3-0.6Bを比較したところ、ExecuTorchのマルチスレッドWasm/XNNPACK経路に対して、WebGPUはprefillで約4~7倍、decodeで約2~10倍速かった。これは特定の環境での測定値であり、すべての端末にそのまま当てはまるわけではない。
技術的な特徴と課題
動的形状には、最大サイズのバッファーを確保し、ディスパッチごとにworkgroupを再計算する方式を採用している。実行時の形状に応じて専用WGSLカーネルを選ぶことで、バッチ処理にも対応する。同じ.pteを複数のブラウザやデバイスで使える点も特徴だ。
一方、バックエンドはまだ初期開発段階にある。演算子とデータ型の対応範囲、モデルの互換性、安定性、性能は今後も改善される。ブラウザのWebGPU対応状況、GPU性能、モデルの容量、初回ダウンロード時間、メモリー使用量も実用性を左右する。
意味と影響
ブラウザは非常に広い配布基盤であり、端末内推論が普及すれば、通信遅延やサーバー側の推論コストを抑えられる可能性がある。プロンプト、画像、カメラ映像、音声を端末外へ送らずに済むため、プライバシーを重視するアシスタントやメディア処理にも適する。
ただし、すべてのモデルがブラウザ向きになるわけではない。ExecuTorch WebGPUは、PyTorchからブラウザGPUへつなぐ有力な選択肢の一つであり、今後は実機での互換性と対応範囲が評価の焦点になる。
コメント
ログイン状態を確認中…
コメントを読み込み中…