Hugging Face 发布 @huggingface/kernels:200+ WebGPU 内核助力本地 AI
Hugging Face 发布了 @huggingface/kernels,一个包含 200 多个 WebGPU 内核的库,旨在加速本地 AI 推理。该库利用 WebGPU 在浏览器中实现高性能计算,为开发者提供更高效的本地 AI 运行方案。
Hugging Face 发布了 @huggingface/kernels,一个包含 200 多个 WebGPU 内核的库,旨在加速本地 AI 推理。该库利用 WebGPU 在浏览器中实现高性能计算,为开发者提供更高效的本地 AI 运行方案。
SynthePulse Insight · AI 深度解读
版本 1 · 1 个来源
Hugging Face 推出 @huggingface/kernels 库和 207 个 WebGPU 内核,旨在通过可复现、可基准测试的内核层加速浏览器端 AI 推理,并借助 Fleet 众包测试覆盖真实硬件。
Hugging Face WebAI 团队的目标是让浏览器推理尽可能快速和易用。这需要多层努力:模型需要浏览器友好的表示,运行时需要构建高效执行计划,而底层 GPU 操作需要适配多种设备和浏览器实现。
内核是快速浏览器推理的基础层,因为高层运行时只能与它们调度的操作一样高效。通过使操作可发现、可测试、可基准测试和版本化,可以在保持上层稳定契约的同时独立改进基础层。
每个内核在 Hub 上有自己的仓库和内核卡片,记录操作语义、输入、输出、属性、支持的数据类型、源文件和可运行的示例。例如,ai.onnx.Add 实现元素级加法,支持多维广播,其卡片记录了输入、输出形状、数据类型和不同形状/设备的变体。
仓库包含 manifest.json(操作契约的真相来源)、metadata.json(内核标识符和来源)、test.json(正确性测试)、bench.json(基准测试用例)和 *.wgsl.jinja 文件(参数化 WGSL 实现)。这种结构将着色器转变为可复用的软件工件,接口无需阅读 WGSL 即可检查,正确性和性能用例随实现一起发布,版本可显式加载。
通过 npm 安装 @huggingface/kernels@preview,需要支持 WebGPU 的浏览器。getKernel 函数接受 Hub 仓库 ID 和契约版本,返回一个函数,调用时传入类型化数据和形状。例如,ai.onnx.Add 的调用模式与重型操作(如 MatMul)相同,只是仓库 ID 和输入不同。
版本选项(如 version: 1)选择发布的内核契约版本,与 ONNX opset、运算符 since_version 或模型修订分开,使应用可以依赖稳定的 JavaScript 契约,同时内核实现可以演进。
团队将集合与 ORT WebGPU 在 Apple M4 GPU 上进行了对比,使用 ONNX Runtime Web 1.30.0-dev.20260826-b1f76d586a。从 1,756 个测试用例开始,保留了 809 个双方输出匹配的用例。
文章提到优化内核带来了显著差异,但具体数字未在摘要中提供。性能取决于工作组大小、内存访问模式、向量化、数据类型和融合策略,最佳选择随输入形状、设备、浏览器和 WebGPU 功能而变化。
Fleet 是一个浏览器内的 GPU 基准测试和测试套件,可在用户硬件上运行和评分内核。它允许社区贡献来自传统测试实验室无法覆盖的设备的性能和正确性证据。
经用户同意,每次运行都会添加私有证据,帮助团队发现失败(不正确结果、病态慢案例等),改进内核变体,并在真实硬件上做出更好的优化决策。
本文基于 Hugging Face 官方博客,属于第一方发布。性能对比的具体数字未在摘要中提供,因此未包含。所有信息均来自该来源。
Hugging Face 通过发布 207 个 WebGPU 内核和 Fleet 工具,为浏览器 AI 推理奠定了可复现、可优化的基础层,有望加速本地 AI 应用的发展。
主报道
主报道来源