返回文章列表
框架与工具

ExecuTorch 为浏览器中的 PyTorch 模型接入 WebGPU

阅读约 3 分钟

导语

将 PyTorch 模型带入浏览器,过去通常需要先转换为其他推理框架的格式,再处理浏览器端运行时、设备兼容和数据隐私问题。ExecuTorch 的新 WebGPU 后端试图缩短这条链路:开发者使用 torch.export 将模型导出为 ExecuTorch 的 .pte 文件,随后即可在支持 WebGPU 的浏览器中运行同一份模型文件。

核心要点

  • 不必离开 PyTorch 工具链。 模型通过 WebGPUPartitioner 分配到 WebGPU 后端,并由 WGSL 计算着色器执行,避免了为浏览器额外维护 ONNX、GGUF 或 TFLite 等格式。
  • 浏览器端 GPU 推理。 动态 C++ 运行时会通过 Emscripten 编译为 WebAssembly,借助 emdawnwebgpu 连接浏览器的 WebGPU JavaScript API。底层可对应 macOS 的 Metal、Linux 和 Android 的 Vulkan,以及 Windows 的 D3D12。
  • 覆盖场景较广。 当前验证范围包括 Llama、Qwen、Gemma 等语言模型,也包括 SmolVLM、深度估计、SAM 2 分割、目标检测、超分辨率、Whisper 语音识别和 Phonon-31M-EN 文本转语音等任务。项目还展示了面向部分语言模型的 LoRA 与 DiReFT 端侧微调。
  • 性能优于同项目 CPU 路径。 在 Apple M1 Pro 的 Chrome 中,以量化版 Llama 3.2 1B 和 Qwen3-0.6B 测试,WebGPU 相比多线程 Wasm CPU 后端,在 prefill 阶段快约 4–7 倍,在 decode 阶段快约 2–10 倍。该比较是在相同设备和输入条件下进行的,不能直接等同于所有浏览器或硬件上的表现。

技术与限制

后端采用按最大尺寸分配缓冲区、在每次派发时重新计算 workgroup 的方式处理动态形状,并根据运行时形状选择专用 WGSL 内核。这样可以支持批量 prefill,同时让同一 .pte 文件适配不同浏览器和设备。不过,WebGPU 后端目前仍在早期阶段,算子、数据类型和模型覆盖仍需扩大,稳定性与性能也在持续改进。

意义与影响

浏览器是覆盖面最广的软件分发入口。若模型能够直接在标签页内运行,应用就可以减少服务器推理请求,降低网络延迟,并支持一定程度的离线体验。更重要的是,提示词、图片、摄像头画面和音频无需离开设备,适合对隐私敏感的本地助手、视觉工具和语音应用。

当然,端侧推理并不意味着所有模型都适合浏览器。设备 GPU 能力、浏览器 WebGPU 支持、模型体积、首次加载时间和内存占用,都会影响实际体验。ExecuTorch WebGPU 的价值,在于提供了一条更接近原生 PyTorch 的部署路径;它能否成为通用方案,还要取决于后续的算子覆盖、兼容性和真实设备表现。

体验入口是 ExecuTorch WebGPU Playground,相关模型仓库也提供 .pte 文件与导出配方。

PyTorch Blog

评论

正在确认登录状态……

正在加载评论……

相关文章