Hugging Face 发布 @huggingface/kernels:207个WebGPU优化内核,大幅提速浏览器本地AI推理

工具4周前发布 小马良
57 0

Hugging Face WebAI团队发布@huggingface/kernels,配套上线包含207个WebGPU内核的初始算子库,Apache-2.0协议开源,目标夯实浏览器端本地AI推理的底层加速能力。整套方案可以直接从Hugging Face Hub拉取、运行优化后的WebGPU内核。

  • 地址:https://www.npmjs.com/package/@huggingface/kernels
  • Hugging Face:https://huggingface.co/webgpu-kernels

模型在浏览器执行,本质是大量GPU算子运算,包括矩阵乘法、归一化、卷积、注意力、量化等。WebGPU提供跨浏览器的可移植API,WGSL作为着色器语言;但可移植不等于高性能,同样算子在不同硬件、浏览器、驱动上性能差距巨大。

Hugging Face 发布 @huggingface/kernels:207个WebGPU优化内核,大幅提速浏览器本地AI推理

因此Hugging Face把算子内核拆成独立版本化包,每个内核附带接口、WGSL着色器模板、正确性测试、基准案例,托管在Hub,上层推理运行时可以独立调用、迭代优化,保持API契约稳定。

项目两大核心组成

  1. @huggingface/kernels JS加载器

npm包,可直接从Hub下载并实例化内核。每个内核拥有独立仓库与内核卡片,包含manifest契约定义、元信息、测试集、基准配置、参数化WGSL模板。开发者只需指定仓库ID和版本,传入张量数据与形状,即可执行运算,框架自动推导输出形状、分配内存。
算子提供多套实现变体,例如加法算子区分等形状、广播、标量分支,运行时自动匹配当前硬件与输入,上层业务代码无需改动。

  1. Fleet 浏览器基准测试套件

在本地浏览器完成内核正确性校验与性能跑分。用户授权后,测试结果会匿名回传,收集海量不同GPU、浏览器的真实设备数据,弥补传统实验室硬件覆盖不足的短板,方便团队定位设备专属bug、调优内核选择策略。

性能实测

在Apple M4 GPU上,和ONNX Runtime WebGPU对比,有效809组测试案例:

  • 几何平均提速 2.57倍,中位数提速1.90倍
  • Add算子 3.52x、Softmax 2.11x、LayerNorm 2.22x
  • 极端案例:Einsum算子最高超过10000倍加速,CumSum算子最高301倍加速

说明:该数据为单算子性能,不是完整模型推理;仅统计GPU运算耗时,不含着色器编译、数据传输开销,不同硬件结果存在差异。Hugging Face正在和ONNX Runtime团队合作,将这些优化合并进上游,惠及整个ONNX Web生态。

代码最简示例

npm install @huggingface/kernels@preview
import { getKernel } from "@huggingface/kernels";
const add = await getKernel("webgpu-kernels/ai.onnx.Add", { version: 1 });
const { c } = await add({
  a: { data: new Float32Array([1, 2, 3, 4, 5, 6]), shape: [2, 3] },
  b: { data: new Float32Array([10, 20, 30]), shape: [3] },
});

要点总结

  1. 产品:@huggingface/kernels + 207个WebGPU内核,Apache2.0许可,托管于HF Hub;
  2. 架构:每个内核独立版本化,自带契约、测试、基准、WGSL着色器,可复用、可独立迭代;
  3. 配套工具:Fleet,浏览器内众包基准,收集跨硬件性能与正确性数据;
  4. 性能:对比ORT WebGPU,算子平均显著提速,部分病态场景有上万倍提升;
  5. 生态规划:向上游ONNX Runtime贡献优化,作为WebAI浏览器推理底层基础,持续扩充算子覆盖。
© 版权声明

相关文章