Back

Состояние On-Device AI в браузере

Состояние On-Device AI в браузере

Запуск AI непосредственно в браузере звучит просто, пока вы не попытаетесь внедрить это в продакшн. API фрагментированы, требования к оборудованию сильно различаются, и то, что работает на одном устройстве, молча отказывает на другом. Прежде чем подключать свой первый вызов инференса, полезно понять, что на самом деле доступно, как слои взаимодействуют между собой и где находятся реальные пробелы в начале 2026 года.

Ключевые выводы

  • On-device AI в браузере охватывает три различных уровня: встроенные браузерные API, JavaScript-библиотеки для инференса и низкоуровневые примитивы аппаратного ускорения. Выбор неправильного уровня для вашего случая использования приводит к проблемам совместимости и производительности.
  • Встроенные AI API Chrome, включая Summarizer, Translator и Language Detector, не требуют хостинга моделей, но привязывают вас к реализации Chrome и модели, которую вы не контролируете.
  • Transformers.js и ONNX Runtime Web предлагают широкий инференс моделей в браузере с полным выбором модели, хотя размер модели, поддержка бэкендов и стратегия кэширования остаются ключевыми ограничениями.
  • WebNN обещает аппаратно-ускоренное ML с доступом к NPU, но поддержка браузерами все еще частичная. Большинство команд получат от него пользу косвенно через фреймворки, прежде чем использовать его напрямую.
  • Гибридный подход с попыткой локального инференса в первую очередь и откатом к облачной конечной точке является наиболее реалистичным продакшн-паттерном на сегодняшний день.

Три различных уровня, а не одно целое

Самый большой источник путаницы в on-device AI в браузере — это рассматривать все подходы как взаимозаменяемые. Это не так. Существует три различных уровня, и выбор неправильного для вашего случая использования создает реальные проблемы.

Уровень 1: AI API, предоставляемые браузером

Chrome поставляется со встроенными AI API, поддерживаемыми моделями, которые он предоставляет и управляет непосредственно в браузере, включая Gemini Nano. Как описано в документации Chrome built-in AI, эти модели загружаются и обрабатываются самим Chrome. Chrome сделал доступными такие API, как Summarizer, Translator и Language Detector в стабильных версиях, в то время как другие остаются более ограниченными. Prompt API стабилен для расширений Chrome, но использование на веб-страницах все еще экспериментальное или основано на origin trial. Writer и Rewriter также не следует рассматривать как универсально готовые к продакшну.

Microsoft Edge использует аналогичный подход с Phi-4-mini и предоставляет свою собственную поверхность API. Модель встроена непосредственно в браузер и доступна через такие API, как Prompt API, который в настоящее время доступен в предварительной версии для разработчиков в сборках Edge Canary и Dev. Однако эти API все еще экспериментальные и не широко доступны в продакшн-окружениях. Firefox имеет AI-функции, такие как интеграция чат-ботов и эксперименты Smart Window, но в настоящее время не предоставляет поверхность встроенных AI API в стиле Chrome для веб-разработчиков.

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

// Проверка поддержки функции перед использованием встроенного браузерного AI API
if ('Summarizer' in self) {
  const availability = await Summarizer.availability();

  if (availability !== 'unavailable') {
    const summarizer = await Summarizer.create();
    const summary = await summarizer.summarize(articleText);
  }
} else {
  // Откат к облаку или пропуск функции
}

Уровень 2: JavaScript-инференс с Transformers.js и ONNX Runtime Web

Если вам нужна более широкая поддержка браузеров или вы хотите выбрать собственную модель, Transformers.js является одним из наиболее практичных вариантов на данный момент. Он запускает модели Hugging Face непосредственно в браузере, используя формат ONNX, и может использовать ускорение WebGPU, когда доступно, с откатом к WebAssembly там, где поддерживается.

ONNX Runtime Web дает вам аналогичный охват с большим контролем над провайдерами выполнения. Оба являются разумным выбором для задач классификации, перевода, анализа тональности, эмбеддингов и легковесной генерации текста.

Обратите внимание, что Transformers.js v3 перешел на пакет @huggingface/transformers. Импорт @xenova/transformers, показанный ниже, относится к v2, который остается распространенным в существующих проектах:

// Transformers.js v2
import { pipeline } from '@xenova/transformers';

// Transformers.js v3+
// import { pipeline } from '@huggingface/transformers';

const classifier = await pipeline('sentiment-analysis');
const result = await classifier('This article is genuinely useful.');

Размер модели является основным ограничением. Квантованная модель, подходящая для браузерного инференса, может варьироваться от десятков до сотен мегабайт в зависимости от задачи. Более крупные модели становятся непрактичными без тщательного кэширования через IndexedDB или Cache API.

Уровень 3: WebGPU и WebAssembly как примитивы ускорения

WebGPU и WebAssembly — это не AI API. Это низкоуровневые примитивы, которые фреймворки, такие как Transformers.js, ONNX Runtime Web и TensorFlow.js, могут использовать внутренне для более быстрого выполнения инференса. Вы редко взаимодействуете с ними напрямую, если только не создаете фреймворк или не выполняете кастомные вычислительные работы.

WebGPU, в частности, открывает значимое GPU-ускорение для матричных операций, что важно для всего, что выходит за рамки крошечных моделей. Поддержка намного шире, чем раньше, но все еще требуется проверка функций, поскольку поддержка браузера, операционной системы, устройства, драйвера и мобильных платформ различается.

Что WebNN добавляет к картине

WebNN (Web Neural Network API) — это W3C API, разработанный для предоставления аппаратно-ускоренных операций нейронных сетей, включая доступ к NPU на поддерживаемых устройствах, через единообразный браузерный интерфейс. Он находится между вашим фреймворком и оборудованием, как и WebGPU, но специально разработан для ML-рабочих нагрузок.

Поддержка браузерами ограничена в начале 2026 года. Chrome имеет частичную реализацию, и более широкая поддержка в других браузерах все еще в процессе. Фреймворки, такие как ONNX Runtime Web, уже добавляют WebNN в качестве бэкенда выполнения, поэтому вы, вероятно, получите от него пользу косвенно, прежде чем использовать его напрямую.

Честные компромиссы

ПодходПоддержка браузерамиКонтроль моделиСтоимость настройкиЛучше всего для
Встроенные APIСтабильные API Chrome; превью EdgeОтсутствуетМинимальнаяСуммаризация, перевод, определение языка
Transformers.jsШирокая поддержка современных браузеровПолныйСредняяКросс-браузерный NLP, классификация
ONNX Runtime WebШирокая поддержка современных браузеровПолныйСредняяКастомные модели, мультизадачный инференс
WebNN (напрямую)ЧастичнаяПолныйВысокаяБудущее аппаратное ускорение

Преимущества приватности реальны, но условны. Локальный инференс означает, что входные данные не покидают устройство во время обработки, но веб-сайт все еще может логировать то, что вводят пользователи, прежде чем это достигнет модели. «Локальный» не означает автоматически приватность end-to-end.

Возможность работы офлайн аналогично условна. После кэширования модели инференс может работать без подключения. Но первоначальная загрузка требует его, и обновления моделей требуют повторного подключения.

Гибридный подход — реалистичный вариант по умолчанию

Большинство продакшн-приложений не будут полностью on-device. Практичный паттерн — попытаться выполнить локальный инференс, проверить доступность API и возможности оборудования, затем откатиться к облачной конечной точке, когда чего-либо не хватает. Это дает способным устройствам более быстрый и приватный опыт, не нарушая функцию для всех остальных.

Заключение

On-device AI в браузере действительно полезен сегодня для конкретных, ограниченных задач: суммаризации документа, определения языка, классификации короткого текста, генерации эмбеддингов или запуска легковесного ассистента. Полномасштабные LLM-опыты в браузере остаются непоследовательными и зависимыми от оборудования. Стройте для реалистичной золотой середины, и вы выпустите что-то, что действительно работает.

Часто задаваемые вопросы

Не через встроенные AI API, сравнимые с текущими API Chrome. Однако JavaScript-библиотеки для инференса, такие как Transformers.js и ONNX Runtime Web, могут работать в современных браузерах, обычно с откатом к WebAssembly, когда WebGPU или другие бэкенды ускорения недоступны.

Встроенные модели Chrome управляются браузером и могут требовать значительной однократной загрузки. Для библиотек, таких как Transformers.js, квантованные модели часто варьируются от десятков до сотен мегабайт в зависимости от задачи и модели. Кэширование их с помощью IndexedDB или Cache API позволяет избежать повторных загрузок, но первая загрузка все равно требует сетевого подключения.

Входные данные могут оставаться на устройстве во время инференса, что является реальным преимуществом приватности по сравнению с облачной обработкой. Однако собственный JavaScript веб-сайта все еще может читать, логировать или передавать пользовательский ввод до или после того, как он достигнет модели. Локальный инференс снижает уязвимость, но сам по себе не гарантирует приватность end-to-end.

Если ваша аудитория — в основном пользователи Chrome на десктопе, и фиксированная модель, управляемая браузером, соответствует вашим потребностям, встроенные API предлагают самую простую настройку. Если вам нужна более широкая поддержка браузеров, выбор кастомной модели или предсказуемое версионирование, Transformers.js дает вам больше контроля ценой самостоятельного управления загрузкой и кэшированием моделей.

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay