Мой блог
Hugging Face выпустила библиотеку @huggingface/kernels для работы с ИИ через WebGPU
Эффективная работа с ИИ через WebGPU теперь становится доступнее благодаря выпуску библиотеки @huggingface/kernels. Этот инструмент позволяет загружать и исполнять оптимизированные ядра непосредственно из репозитория Hugging Face Hub. На старте пользователям доступна коллекция из 207 ядер, охватывающих широкий спектр операций, которые лежат в основе современных архитектур машинного обучения.
Библиотека ядер для WebGPU
Каждое ядро в коллекции представлено как полноценный версионированный пакет. В состав такого пакета входят описание интерфейса, шаблоны шейдеров на WGSL, наборы тестов на корректность, сценарии для бенчмаркинга и подробные инструкции по использованию. Подобный подход обеспечивает прозрачность: разработчики получают не просто «черный ящик», а воспроизводимый контракт для каждой вычислительной операции.
Для оценки производительности представлена утилита Fleet — инструмент для тестирования GPU прямо в браузере. Она позволяет запускать ядра на различном «железе» и фиксировать результаты. Данные о работе компонентов помогают разработчикам выявлять ошибки и совершенствовать стратегии оптимизации для разных графических ускорителей.
Основа высокопроизводительных вычислений
Работа нейросети в браузере сводится к последовательности GPU-операций: умножению матриц, нормализации, сверткам и вычислению механизмов внимания (attention). WebGPU предоставляет унифицированный программный интерфейс для взаимодействия с оборудованием, однако сам факт поддержки стандарта не гарантирует максимального быстродействия.


Разница в скорости одного алгоритма на различных ускорителях может быть колоссальной. На производительность влияют размеры рабочих групп, паттерны доступа к памяти и стратегии слияния операций (fusion strategies). Выбор оптимальной реализации часто зависит от входных данных и версии браузера, поэтому независимый уровень ядер критически важен для эффективности.
Структура репозитория и управление данными
Каждое ядро в проекте имеет собственный репозиторий с документацией: семантику операции, ожидаемые типы данных и примеры вызова. Например, операция ai.onnx.Add представляет собой базовое поэлементное сложение, используемое повсеместно в нейросетях.
Технически за реализацией стоят два основных файла: manifest.json, описывающий контракт операции и формы тензоров, и metadata.json с идентификаторами и хеш-суммами для проверки целостности. Такое разделение позволяет совершенствовать фундамент независимо от высокоуровневых фреймворков.
Практика работы с ИИ через WebGPU
Каждое ядро организовано так, чтобы превратить шейдер в программный артефакт с готовыми тестами и параметризованными реализациями. Установить библиотеку можно через npm install @huggingface/kernels@preview. Проверить поддержку WebGPU можно в консоли браузера конструкцией "gpu" in navigator.
Библиотека выступает связующим звеном между Hub и приложением. Вызов функции getKernel с идентификатором репозитория позволяет передать типизированные данные, после чего загрузчик самостоятельно выполняет выделение памяти и выбор оптимального варианта исполнения для конкретного устройства.
Сравнение производительности
Тесты, проведенные на графическом процессоре Apple M4, показали, что новая библиотека превосходит ONNX Runtime Web (версия 1.30.0-dev). По геометрическому среднему новые ядра оказались в 2,57 раза быстрее, а медианный прирост составил 1,9 раза. Например, операция Add ускорилась в 3,5 раза, а Softmax — в 2,11 раза.
Возможности оптимизации и масштабирования
Специализированные решения показывают выдающиеся результаты в сложных сценариях. В операциях вроде билинейного произведения Эйнштейна (Einsum) или кумулятивной суммы (CumSum) прирост скорости может достигать сотен раз по сравнению со стандартными методами. Эти замеры охватывают время работы GPU, исключая накладные расходы на инициализацию.
Инструмент Fleet позволяет масштабировать тестирование, собирая данные в браузерах пользователей. Это помогает разработчикам выявлять ошибки на различных конфигурациях и уточнять алгоритмы. В планах — объединение низкоуровневых компонентов с высокоуровневыми инструментами для развития всей экосистемы WebAI.
Источник: huggingface.co
