Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Hugging Face выпустила библиотеку @huggingface/kernels для работы с ИИ через WebGPU

Hugging Face выпустила библиотеку @huggingface/kernels для работы с ИИ через WebGPU

Эффективная работа с ИИ через WebGPU теперь становится доступнее благодаря выпуску библиотеки @huggingface/kernels. Этот инструмент позволяет загружать и исполнять оптимизированные ядра непосредственно из репозитория Hugging Face Hub. На старте пользователям доступна коллекция из 207 ядер, охватывающих широкий спектр операций, которые лежат в основе современных архитектур машинного обучения.

Библиотека ядер для WebGPU

Каждое ядро в коллекции представлено как полноценный версионированный пакет. В состав такого пакета входят описание интерфейса, шаблоны шейдеров на WGSL, наборы тестов на корректность, сценарии для бенчмаркинга и подробные инструкции по использованию. Подобный подход обеспечивает прозрачность: разработчики получают не просто «черный ящик», а воспроизводимый контракт для каждой вычислительной операции.

Для оценки производительности представлена утилита Fleet — инструмент для тестирования GPU прямо в браузере. Она позволяет запускать ядра на различном «железе» и фиксировать результаты. Данные о работе компонентов помогают разработчикам выявлять ошибки и совершенствовать стратегии оптимизации для разных графических ускорителей.

Реклама

Основа высокопроизводительных вычислений

Работа нейросети в браузере сводится к последовательности GPU-операций: умножению матриц, нормализации, сверткам и вычислению механизмов внимания (attention). WebGPU предоставляет унифицированный программный интерфейс для взаимодействия с оборудованием, однако сам факт поддержки стандарта не гарантирует максимального быстродействия.

Файловая структура репозитория ai.onnx.Add для WebGPU
Пример организации файлов в репозитории ядра: от манифеста до шаблонов шейдеров.
Список из 207 доступных ядер WebGPU на платформе Hugging Face
Обзор коллекции из 207 ядер, доступных для разработчиков на платформе Hugging Face.

Разница в скорости одного алгоритма на различных ускорителях может быть колоссальной. На производительность влияют размеры рабочих групп, паттерны доступа к памяти и стратегии слияния операций (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

01.