Главная/Блог/Аналитика/Hugging Face Kernels: 200+…
Аналитика3 мин чтения · 1 сентября 2026 г.

Hugging Face Kernels: 200+ WebGPU-оптимизаций для локального AI

Запуск библиотеки @huggingface/kernels: 207 оптимизированных WebGPU-ядер, которые работают в 2.5 раза быстрее ORT WebGPU на Apple M4. Разбор архитектуры, бенчмарков и интеграции.

Hugging Face Kernels: 200+ WebGPU-оптимизаций для локального AI

Команда Hugging Face представила фундаментальный сдвиг в области браузерного инференса: библиотеку @huggingface/kernels и репозиторий с оптимизированными WebGPU-ядрами. Это не просто набор шейдеров, а структурированная система версионирования, тестирования и загрузки GPU-операций прямо с Hugging Face Hub. Цель — обеспечить максимальную производительность локального AI в браузере, минуя накладные расходы общих рантаймов.

01Архитектура: Ядро как программный артефакт

Каждое ядро (kernel) — это отдельный репозиторий с четким контрактом. Вместо разрозненных WGSL-файлов вы получаете пакет, включающий манифест, тесты корректности и бенчмарки. Это позволяет рантаймам динамически выбирать оптимальную реализацию операции под конкретное железо и браузер.

Структура репозитория ядра включает:

  • manifest.json: Источник истины. Определяет входные/выходные данные, атрибуты, ограничения типов и правила вывода форм.
  • metadata.json: Идентификатор ядра, дайджесты и происхождение.
  • test.json: Кейсы для проверки корректности (correctness cases).
  • bench.json: Кейсы для бенчмарков и тюнинга.
  • *.wgsl.jinja: Шаблоны шейдеров WGSL, которые компилируются в зависимости от запроса и устройства.
💡
Версионирование контракта. Параметр version в API относится к контракту JavaScript-интерфейса, а не к версии модели или ONNX opset. Это позволяет эволюционировать реализации шейдеров, не ломая совместимость приложений.

02Бенчмарки: @huggingface/kernels vs ORT WebGPU

Сравнение проводилось в рамках кросс-платформенного тестирования. Из множества тестовых кейсов отобраны те, где результаты совпали. В среднем новые ядра работают заметно быстрее по геометрическому среднему и медиане.

Ниже приведены результаты для ключевых операций:

Операция Кейсов @huggingface/kernels ORT WebGPU Ускорение
Add
MatMul
Softmax
LayerNormalization

Отдельные кейсы показывают экстремальные различия. Например, сложные случаи билинейного Einsum и Row-wise CumSum демонстрируют значительное ускорение по сравнению с ORT.

⚠️
Важно о метриках. Тайминги включают только выполнение на GPU. Не учитывается загрузка ядер, создание сессий, загрузка входных данных, компиляция шейдеров и чтение результатов обратно. Для коротких задач это может быть не репрезентативно.

03Интеграция: Загрузка и запуск

Библиотека @huggingface/kernels выступает мостом между репозиторием на Hub и вашим приложением. Она автоматически скачивает, подготавливает и запускает ядра. Требуется браузер с поддержкой WebGPU.

Установка:

terminalbash
npm install @huggingface/kernels@preview

Проверка поддержки WebGPU в JS:

terminaljavascript
const isSupported = "gpu" in navigator;

Пример загрузки и выполнения операции сложения (bias-add):

terminaljavascript
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],
  },
});
// Результат c имеет shape [2, 3] благодаря автоматическому выводу формы из манифеста

Библиотека автоматически выводит форму выхода и тип данных на основе манифеста и входных тензоров. Для тяжелых операций, таких как ai.onnx.MatMul, паттерн вызова остается неизменным, что обеспечивает масштабируемость.

04Fleet: Краудсорсинговое тестирование

Параллельно запущен инструмент Fleet — система бенчмарков в браузере. Он позволяет пользователям добровольно запускать тесты на своем оборудовании. Результаты (с согласия пользователя) анонимизируются и помогают разработчикам находить узкие места, ошибки корректности и оптимизировать варианты шейдеров для реального железа, которое невозможно покрыть в лабораторных условиях.

05Кому подойдёт / что запустится

  • Разработчики браузерных AI-приложений: Если вы строите инференс прямо в клиенте, переход на @huggingface/kernels даст значительный прирост FPS и снижение задержек по сравнению с ORT WebGPU.
  • Создатели кастомных рантаймов: Структура репозиториев (манифест + WGSL + тесты) служит эталонной реализацией для интеграции WebGPU-операций в свои движки.
  • Железо: Требуется GPU с поддержкой WebGPU. Архитектура предназначена для кросс-браузерной совместимости (Chrome, Edge, Firefox, Safari). Для локального запуска на десктопах с NVIDIA/AMD видеокартами потребуется актуальная версия браузера и драйверов.
  • Источник: Hugging Face ↗