WebGPU даёт возможность запускать ИИ прямо в браузере, но добиться высокой скорости на разных устройствах — непростая задача. Hugging Face выпустила @huggingface/kernels — библиотеку из 207 оптимизированных GPU-операций, а также платформу Fleet для их совместного улучшения.
Библиотека @huggingface/kernels позволяет загружать и запускать оптимизированные WebGPU ядра (отдельные GPU-операции) прямо из Hugging Face Hub. Коллекция из 207 ядер на huggingface.co/webgpu-kernels охватывает операции, используемые в различных архитектурах машинного обучения. Каждое ядро публикуется как полноценный версионированный пакет со своим интерфейсом, шаблонами шейдеров, тестами корректности и бенчмарками.
Hugging Face объясняет, что запуск модели в браузере в конечном итоге сводится к последовательности GPU-операций: умножению матриц, нормализации, свёрткам. WebGPU предоставляет переносимый API для этих операций, но переносимость не означает автоматическую производительность. Скорость работы сильно зависит от размера рабочих групп, паттернов доступа к памяти, векторизации, типов данных, стратегий слияния и даже от входных форм, конкретного устройства и браузера. Именно поэтому ядра становятся фундаментальным слоем для быстрого инференса в браузере, позволяя улучшать их независимо от высокоуровневых сред выполнения.
Для сбора данных об оптимизации запущена платформа Fleet — это встроенный в браузер набор для бенчмаркинга и тестирования GPU. Он запускает и оценивает ядра на оборудовании пользователя. Результаты на конкретной машине, с согласия пользователя, добавляют анонимные данные, которые помогают Hugging Face находить ошибки (некорректные результаты, медленные случаи) и улучшать варианты ядер для реального оборудования.
Hugging Face решает проблему производительности WebGPU не новыми моделями, а через создание общей, оптимизированной базы для GPU-операций. Успех проекта напрямую зависит от готовности сообщества делиться данными о работе на своём оборудовании, превращая каждый запуск в вклад в общую оптимизацию.