WebLLM: выполнение языковых моделей в браузере с ускорением
WebLLM — это высокопроизводительный движок для выполнения LLM прямо в браузере с аппаратным ускорением. Проект решает задачу запуска языковых моделей в браузере без необходимости серверной поддержки, что позволяет обеспечить конфиденциальность и доступность работы моделей.
Отличительная особенность WebLLM в том, что он совместим с OpenAI API, что позволяет использовать открытые модели локально так же, как и с API OpenAI. Если тебе нужно создать AI-ассистента или другой инструмент на базе языковой модели, этот проект подойдет для быстрого прототипирования и разработки веб-приложений. Он использует WebGPU для аппаратного ускорения, что заметно улучшает производительность по сравнению с другими решениями.
Чтобы запустить WebLLM, достаточно установить npm-пакет @mlc-ai/web-llm. Учти, что проект находится на ранней стадии, и некоторые фишки, такие как function-calling, еще в разработке. Подходит для разработчиков, стремящихся объединить модели ИИ с веб-технологиями.
WebLLM — это высокопроизводительный движок вывода языковых моделей, работающий непосредственно в браузере с использованием аппаратного ускорения. Он позволяет выполнятьInference языковых моделей прямо в браузере без необходимости обращения к серверу, при этом применяя WebGPU для ускорения вычислений.
Проект совместим с OpenAI API, что позволяет использовать аналогичные функции и возможности при работе с любыми моделями с открытым исходным кодом.
WebLLM может быть использован в качестве npm-пакета для создания собственных веб-приложений, а также предоставляет ряд примеров для облегчения интеграции.
Ключевые функции
- Вывод в браузере: Поддержка мощных операций языковой модели в самом браузере без серверной обработки.
- Совместимость с OpenAI API: Легкая интеграция с приложениями через OpenAI API.
- Структурированная генерация JSON: Поддержка режима JSON для эффективного создания выходных данных в формате JSON.
- Широкая поддержка моделей: Включает Llama 3, Phi 3, Gemma и другие.
- Интеграция пользовательских моделей: Возможность легко адаптировать WebLLM под специфические требования.
- Поддержка потоковой передачи и взаимодействия в реальном времени: Поддержка потоковой генерации чата для интерактивных приложений.
- Поддержка Web Worker и Service Worker: Оптимизация производительности за счет выполнения вычислений в отдельных потоках.
Установка и запуск
WebLLM можно установить через менеджеры пакетов, такие как npm или yarn:
npm install @mlc-ai/web-llm
yarn add @mlc-ai/web-llm
Также можно подключить WebLLM напрямую через CDN:
import * as webllm from "https://esm.run/@mlc-ai/web-llm";
После установки необходимо инициализировать двигатель модели с использованием интерфейса MLCEngine. Это может занять некоторое время, так как необходимо будет загрузить модель:
const engine = await CreateMLCEngine(selectedModel);
Ограничения
В проекте есть несколько ограничений, на которые стоит обратить внимание:
- Загрузка моделей может занять значительное время, особенно при первом запуске.
- Для оптимального использования нужно правильно настроить кэширование и выбирать подходящие методы кэширования, такие как
indexeddbилиcache. - Некоторые функции, такие как вызов функций, могут находиться на стадии разработки (WIP).
Дополнительные возможности
WebLLM поддерживает кэширование для улучшения производительности и интеграцию модели с помощью рабочего процесса для обработки тяжелых вычислений. Также доступны примеры использования, которые можно просмотреть для ознакомления с проектом.
Открыть на GitHub: mlc-ai/web-llm →
RepoRadar