Представляем @huggingface/kernels: 200+ WebGPU ядер для локального AI
Введение
Команда WebAI в Hugging Face стремится сделать использование ИИ в браузерах быстрым и удобным. Эта задача требует многослойного подхода, включая создание моделей, которые могут эффективно работать в браузере.
Что такое @huggingface/kernels?
Сегодня мы представляем @huggingface/kernels — минимальную библиотеку для загрузки и выполнения оптимизированных WebGPU ядер, которая включает начальную коллекцию из 207 ядер, доступных на huggingface.co/webgpu-kernels.
Что включает коллекция?
Эта коллекция охватывает операции, используемые в различных архитектурах машинного обучения. Каждое ядро публикуется как полный пакет с версиями, включая интерфейсы, шаблоны шейдеров, тесты корректности и инструкции по использованию.
Что такое Fleet?
Мы также запускаем Fleet — инструмент для тестирования и бенчмаркинга GPU в браузере, который позволяет пользователям оценивать производительность ядер на своем оборудовании. Это не только предоставляет результаты для вашего устройства, но и позволяет сообществу вносить вклад в оценку производительности и корректности.
Почему ядерная архитектура?
Модель в браузере требует выполнения последовательности операций GPU, таких как умножение матриц и нормализация. WebGPU предоставляет эти операции через переносимый API, а WGSL обеспечивает общий язык для шейдеров.
Структура ядер
Каждое ядро имеет свой репозиторий, в котором документируются семантика операции, входные и выходные данные. Например, ai.onnx.Add реализует поэлементное сложение с многослойным широковещанием.
Практические советы
- Изучите документацию каждого ядра для лучшего понимания его работы.
- Используйте Fleet для тестирования производительности на разных устройствах.
- Обратите внимание на параметры и ограничения, указанные в манифестах ядер.