Hugging Face 发布 200+ WebGPU

来自 Hugging Face · 期号 2026-09-01

摘要

Hugging Face 发布 @huggingface/kernels,一个包含 200 多个 WebGPU 内核的库,用于在浏览器中本地运行 AI 模型。这些内核针对推理进行了优化,覆盖了常见的 Transformer 算子,如注意力机制、前馈网络和归一化层。开发者可以直接在浏览器中调用这些高性能内核,无需依赖后端服务器,从而降低延迟并保护用户隐私。 该库旨在解决 WebGPU 生态中缺乏高质量、可复用内核的问题,让开发者能更轻松地在浏览器中部署和运行 AI 应用。

深读

导读 Hugging Face 的 WebAI 团队发布了 @huggingface/kernels,一个包含 207 个 WebGPU 内核的库,旨在让浏览器端 AI 推理更快、更易用。每个内核都以独立、带版本的仓库形式发布在 Hub 上,附带接口定义、正确性测试和基准测试用例。同时推出的 Fleet 工具允许用户在真实硬件上运行基准测试并贡献数据。读完本文可以了解这套基础设施的设计思路、性能基准,以及它如何解决 WebGPU 生态中缺乏高质量可复用内核的问题。 关键信息 - 首批发布 207 个 WebGPU 内核,覆盖矩阵乘法、归一化、注意力机制、量化操作等常见 Transformer 算子,Apache-2.0 许可。 - 在 Apple M4 GPU 上与 ONNX Runtime Web (ORT WebGPU) 1.30.0-dev 对比,809 个可比较测试用例中,几何平均快 2.57 倍,中位数快 1.90 倍,629 胜 176 负 4 平。 - 单个极端案例中,一个双线性 Einsum 操作 (i,ij,j, size 4096) 跑出 0.136 ms vs 1,396 ms,加速超过 10,000 倍;一个行方向 CumSum 在 [256, 4096] 上加速 301 倍。 - 每个内核仓库包含 manifest.json(操作契约)、metadata.json、test.json(正确性用例)、bench.json(基准测试用例)和 *.wgsl.jinja(参数化 WGSL 着色器模板)。 - Fleet 是一个浏览器内 GPU 基准测试套件,用户运行后可选择贡献数据,帮助发现设备特定的失败、比较变体并改进选择规则。 逐节讲解 为什么从内核开始 浏览器中运行的模型最终会分解为一系列 GPU 操作:矩阵乘法、归一化、卷积、注意力原语、量化操作、数据布局变换等。WebGPU 提供了跨浏览器的可移植 API,WGSL 提供了执行这些操作的着色器语言。但可移植性不等于性能,两个实现同一操作的着色器在不同加速器上可能表现截然不同。工作组大小、内存访问模式、向量化、数据类型和融合策略都会影响性能,且最优选择会随输入形状、设备、浏览器和可用 WebGPU 特性而变化。因此,内核构成了快速浏览器推理的基础层:上层运行时只能做到其调度的操作那么高效。 内核仓库,不只是着色器 每个内核拥有独立的仓库和内核卡片,文档化操作的语义、输入、输出、属性、支持的数据类型、源文件以及可直接运行的 @huggingface/kernels 示例。例如 ai.onnx.Add 实现了带多方向广播的元素级加法,其卡片记录了两种输入、广播后的输出形状、支持的数据类型以及针对不同形状和设备的变体。仓库内的 manifest.json 是操作契约的真相来源,定义了输入、…

读原文

本站只做摘要与索引,全部内容版权归原作者所有。