Фундаментальный сдвиг: от шейдеров к версионированным артефактам
Команда WebAI Hugging Face анонсировала релиз @huggingface/kernels — библиотеки для загрузки и выполнения оптимизированных WebGPU-ядер прямо из Hugging Face Hub. Это не просто набор шейдеров, а структурированная система, где каждое ядро (всего их 207) представлено отдельным репозиторием с версионированным контрактом.
Каждое ядро включает манифест (manifest.json), тесты корректности (test.json), бенчмарки (bench.json) и шаблоны WGSL-шейдеров. Такой подход позволяет рантаймам выбирать оптимальную реализацию операции в зависимости от устройства, браузера и входных данных, не ломая совместимость API.
Результаты производительности: 2.57x быстрее ORT
Для оценки эффективности команда провела сравнительное тестирование новых ядер против ONNX Runtime Web (ORT) 1.30.0-dev на GPU Apple M4. В выборку вошли 1756 тестовых случаев, из которых 809 дали сопоставимые результаты по точности.
Оптимизированные ядра Hugging Face показали значительное преимущество:
| Метрика | Результат | Детали сравнения |
|---|---|---|
| Геометрическое среднее | 2.57x быстрее | По 809 тестовым кейсам |
| Медиана | 1.90x быстрее | По 809 тестовым кейсам |
| Количество побед | 629 | Из 809 сравнений |
| Количество поражений | 176 | Из 809 сравнений |
| Ничьи | 4 | Из 809 сравнений |
Инструмент Fleet: краудсорсинг производительности
Параллельно запущен проект Fleet — браузерный инструмент для бенчмаркинга и тестирования. Он позволяет пользователям запускать ядра на своем оборудовании и анонимно отправлять данные о производительности и корректности. Это помогает сообществу выявлять узкие места на реальных устройствах, которые невозможно покрыть в лабораторных условиях.
Как начать работу
Библиотека доступна через npm и лицензирована под Apache-2.0. Для использования требуется браузер с поддержкой WebGPU.
- Установка:
npm install @huggingface/kernels@preview - Проверка поддержки:
'gpu' in navigator - Пример загрузки:
getKernel('webgpu-kernels/ai.onnx.Add', { version: 1 })
Все ядра опубликованы в организации webgpu-kernels на Hugging Face Hub, что делает их доступными для интеграции в любые JS-рантаймы для локального AI.
Источник: Hugging Face blog ↗
