WebLLM: выполнение языковых моделей в браузере с ускорением

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 →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте