Hugging Face открыла 207 WebGPU-ядер — локальный AI в браузере без облака

Hugging Face запустила библиотеку @huggingface/kernels и коллекцию 207 WebGPU-ядер на Hub под Apache-2.0, в организации webgpu-kernels. Вместо того чтобы вшивать шейдеры в свой проект, ты подтягиваешь готовую операцию с контрактом, тестами корректности и шаблоном WGSL. Это нижний слой для быстрого inference в браузере: матричные умножения, attention, квантование, нормализации.
Любая модель в браузере в итоге превращается в цепочку GPU-операций. WebGPU даёт единый API, но один и тот же шейдер на разных видеокартах может работать совсем по-разному: от формы тензора, браузера и драйвера зависит и скорость, и корректность. Пока внизу стека операции тормозят, верхний рантайм не ускоришь.
Что в репозитории ядра
Каждое ядро это отдельный версионированный репозиторий с kernel card на Hub: семантика операции и пример вызова рядом.
manifest.jsonзадаёт контракт: входы, выходы, типы и правила форм.test.jsonиbench.jsonхранят кейсы корректности и бенчмарков.*.wgsl.jinjaсодержит шаблоны шейдеров под конкретный вызов и устройство.
Как вызвать из JavaScript
Пакет ставится через npm install @huggingface/kernels@preview; нужен браузер с WebGPU. Проверка в JS: "gpu" in navigator. Загрузчик getKernel берёт репозиторий на Hub по ID и версии контракта, например webgpu-kernels/ai.onnx.Add с version: 1. Выходной shape и тип данных выводятся из манифеста, буфер под результат аллоцируется сам. Для тяжёлых операций вроде ai.onnx.MatMul паттерн тот же, меняются только ID и входы.
Сравнение с ORT WebGPU
На Apple M4 команду сравнили коллекцию с ORT WebGPU (ONNX Runtime Web 1.30.0-dev): из 1756 кейсов остались 809, где обе стороны дали совпадающий результат и стабильный тайминг. Геометрическое среднее: 2,57× быстрее, медиана 1,90×; 629 побед, 176 поражений.
Add ускорился в 3,52 раза (0,064 мс против 0,227 мс), Softmax дал 2,11×, LayerNormalization 2,22×. MatMul почти наравне, 1,14×. Замеры только по работе на GPU, без загрузки шейдеров и upload; отдельные экзотические кейсы давали тысячекратный выигрыш, но для целой модели это не норма.
Fleet
Fleet это браузерный инструмент для тестов и бенчмарков на своём железе. С согласия пользователя прогоны добавляют приватные данные о корректности и скорости на реальных GPU. Часть улучшений планируют передать в upstream ONNX Runtime Web.
Источник: Introducing @huggingface/kernels: 200+ WebGPU Kernels for Local AI.