В npm появилась предварительная версия Transformers.js v4 – библиотеки, которая позволяет запускать модели машинного обучения прямо в браузере или в Node.js без необходимости отправлять данные на сервер.
Если коротко: раньше для работы с нейросетями требовался бэкенд – сервер, который принимает запрос, обрабатывает его через модель и возвращает ответ. Transformers.js убирает эту цепочку. Модель загружается в браузер пользователя один раз и работает локально. Никаких задержек на передачу данных, никаких затрат на серверные мощности и полная приватность.
Что нового в четвертой версии
Главное нововведение – поддержка больших языковых моделей (LLM). В предыдущих версиях библиотека справлялась с задачами вроде классификации текста, анализа тональности или работы с эмбеддингами. Но запустить что-то масштабное – например, Llama или Qwen – было проблематично.
Теперь это возможно. В v4 добавлена поддержка генеративных моделей, включая Llama 3.2, Qwen 2.5, Phi-4, SmolLM2 и другие. То есть можно взять относительно компактную версию языковой модели и запустить ее прямо в браузере пользователя для работы чат-бота, автодополнения текста, анализа документов или любых других задач.
Второй важный момент – поддержка WebGPU. Это новый стандарт для работы с графикой и вычислениями в браузере, который позволяет задействовать видеокарту напрямую. Если раньше всё работало на процессоре (что медленно) или через WebGL (что быстрее, но с ограничениями), то теперь можно использовать GPU так же эффективно, как это делают десктопные приложения.
Результат: модели работают в разы быстрее. Например, Qwen 2.5 0.5B на MacBook Air M2 выдает около 50 токенов в секунду – это вполне пригодная для реального использования скорость.
Зачем это нужно
Основная идея – снизить зависимость от серверов. Сейчас большинство приложений с ИИ работают по схеме «клиент-сервер»: пользователь вводит данные, они улетают в облако, обрабатываются там и возвращаются обратно. Это требует постоянного подключения к интернету, создает задержки и, что немаловажно, означает передачу данных третьей стороне.
Transformers.js меняет эту логику. Модель один раз загружается в браузер (да, это может занять время, если модель большая), а дальше работает полностью автономно. Данные пользователя остаются на его устройстве. Не нужны API-ключи, не нужна оплата за каждый запрос, не нужен даже стабильный интернет – достаточно загрузить модель один раз.
Это особенно актуально для приложений, где важна конфиденциальность: медицинские сервисы, финтех-проекты, внутренние корпоративные инструменты. Или для задач, где нужна мгновенная реакция без сетевых задержек – например, автодополнение кода прямо в браузерном редакторе.
Что под капотом
Технически v4 построена на ONNX Runtime Web – это среда выполнения для моделей в формате ONNX, которая оптимизирована для WebAssembly и WebGPU. Библиотека берет модели из Hugging Face Hub (там их тысячи), конвертирует в нужный формат и запускает локально.
Поддерживается квантизация – сжатие моделей для уменьшения их размера и ускорения работы. Например, модель на 7 миллиардов параметров в исходной точности весит десятки гигабайт, а в квантованном виде – всего несколько. Это критично для браузера, где каждый мегабайт имеет значение.
Ограничения и реальность
Важно понимать: это не замена серверным решениям для всех случаев. Большие модели всё еще требуют значительных ресурсов. Запустить в браузере что-то вроде GPT-4 не получится – модель слишком тяжелая. Речь идет о компактных моделях, оптимизированных для работы на конечном устройстве пользователя.
Кроме того, WebGPU пока поддерживается не везде. Технология работает в Chrome, Edge и недавно появилась в Safari, но в Firefox поддержка всё еще остается экспериментальной. Это значит, что для части аудитории придется либо задействовать CPU (что медленнее), либо ограничивать доступ к функциям.
И наконец, загрузка модели требует времени. Даже компактная модель на несколько сотен мегабайт будет скачиваться заметно долго. Для пользователей с медленным интернетом это может стать проблемой. Хотя модель кэшируется после первой загрузки, стартовый запуск может быть длительным.
Что дальше
Версия v4 пока находится в статусе превью (preview) – это означает, что API может меняться, возможны ошибки, а документация еще дорабатывается. Но основная функциональность уже доступна, и ее можно протестировать прямо сейчас через npm.
Если концепция станет популярной, это может изменить подход к разработке ИИ-приложений. Вместо того чтобы платить за каждый запрос к API, разработчик один раз подключает библиотеку, и модель работает на стороне пользователя. Вместо отправки данных в облако они обрабатываются локально. Это открывает новые возможности: от офлайн-ассистентов до инструментов, не требующих регистрации и подписок.
Конечно, многое зависит от того, насколько стабильно модели будут работать в реальных условиях и насколько удобным инструмент окажется для разработчиков. Но сам факт того, что запуск языковой модели в браузере превращается из экзотики в стандартную практику, уже говорит о многом.