Запуск LLM в браузере: WebLLM, Transformers.js и ONNX Runtime Web в 2026 году

技术架构

LLM Больше Не Нужны Серверы

GPT-4 требует облачных API? Это мышление 2024 года. К 2026 году модели на 7B параметров работают плавно в браузере, и ваши данные никогда не покидают ваше устройство.

Конфиденциальность + Нулевая стоимость + Офлайн = Три главных преимущества браузерного ИИ

Хронология Эволюции Браузерного ИИ

2023 Q4    WebLLM запущен, Llama 2 на 2 tok/s в браузере
2024 Q2    Transformers.js выпущен, экосистема Hugging Face подключена
2024 Q4    Полная поддержка WebGPU, ускорение вывода в 5 раз
2025 Q2    ONNX Runtime Web поддерживает WebGPU, корпоративный уровень
2025 Q4    Прорыв в квантизации, модели 7B сжаты до 3 ГБ
2026 Q2    Gemma 3 4B достигает 25 tok/s в браузере — точка перелома по качеству

Три Фреймворка Сравнение

Фреймворк Фокус Ключевая технология Лучше всего для
WebLLM Высокопроизводительный вывод LLM WebGPU + MLCEngine Чат, автодополнение кода
Transformers.js Полный стек ML-вывода ONNX + WASM/WebGPU NLP, зрение, аудио
ONNX Runtime Web Корпоративный движок вывода ONNX + WebGPU/WASM Продакшен-развёртывание

WebLLM — Король Производительности Браузерных LLM

Архитектура

┌──────────────────────────────────────────────────┐
│                  Слой приложения                  │
│   Чат UI │ Автодополнение │ Резюмирование │ ...   │
├──────────────────────────────────────────────────┤
│              Движок WebLLM                        │
│   ChatModule │ Pipeline │ Tokenizer │ Scheduler   │
├──────────────────────────────────────────────────┤
│              MLCEngine (Оптимизация компиляции)   │
│   Model Compile │ Kernel Opt │ Quantization       │
├──────────────────────────────────────────────────┤
│              Среда выполнения WebGPU              │
│   Compute Shader │ GPU Buffer │ Pipeline State    │
└──────────────────────────────────────────────────┘

Быстрый Старт

import { CreateMLCEngine } from "@mlc-ai/web-llm";

const engine = await CreateMLCEngine("gemma-3-4b-it-q4f16_1-MLC", {
  initProgressCallback: (progress) => {
    console.log(`Loading: ${(progress.progress * 100).toFixed(1)}%`);
  },
});

const reply = await engine.chat.completions.create({
  messages: [
    { role: "system", content: "You are a helpful AI assistant." },
    { role: "user", content: "Write a quicksort in TypeScript" },
  ],
  temperature: 0.7,
  max_tokens: 1024,
  stream: true,
});

for await (const chunk of reply) {
  process.stdout.write(chunk.choices[0]?.delta?.content || "");
}

Поддерживаемые Модели и Производительность (Июнь 2026)

Модель Параметры Квантованный размер Скорость (tok/s) Первая загрузка
Gemma 3 4B IT 4B 2.3 ГБ 25
Phi-4 Mini 3.8B 2.1 ГБ 28
Qwen2.5 3B 3B 1.8 ГБ 32
SmolLM2 1.7B 1.7B 1.0 ГБ 45
Qwen2.5 0.5B 0.5B 0.4 ГБ 85

Тестовая среда: M3 MacBook Pro / Chrome 126 / WebGPU


Transformers.js — Экосистема Hugging Face в Браузере

Ключевое Преимущество: Самая Богатая Экосистема Моделей

import { pipeline } from "@xenova/transformers";

const classifier = await pipeline("text-classification", "Xenova/distilbert-base-uncased-finetuned-sst-2-english");
const result = await classifier("This browser AI is amazing!");
// [{ label: "POSITIVE", score: 0.9998 }]

Поддерживаемые Пайплайны

Пайплайн Вариант использования Пример модели
text-classification Анализ тональности distilbert-sst2
question-answering Система вопросов и ответов distilbert-qa
summarization Резюмирование distilbart-cnn
translation Перевод opus-mt-en-zh
image-classification Классификация изображений vit-base-patch16
automatic-speech-recognition Распознавание речи whisper-tiny

ONNX Runtime Web — Корпоративный Движок Вывода

Базовое Использование

import ort from "onnxruntime-web";

async function runInference(modelPath: string, input: Float32Array) {
  const session = await ort.InferenceSession.create(modelPath, {
    executionProviders: ["webgpu", "wasm"],
    graphOptimizationLevel: "all",
  });

  const inputTensor = new ort.Tensor("float32", input, [1, input.length]);
  const results = await session.run({ input: inputTensor });
  return results.output.data;
}

Стратегия Выбора Провайдера

function getBestProvider(): string {
  if (navigator.gpu) return "webgpu";
  if (document.createElement("canvas").getContext("webgl2")) return "webgl";
  return "wasm";
}

Бенчмарки Производительности: Полное Сравнение

Вывод LLM (Gemma 3 4B, 4-битная квантизация)

Метрика WebLLM Transformers.js ONNX Runtime Web
Скорость (tok/s) 25 18 22
Первая загрузка 12с 10с
Память 3.2 ГБ 3.8 ГБ 3.5 ГБ
Стриминг
Совместимость с OpenAI API

Стратегии Продакшен-Развёртывания

Изящная Деградация

async function createEngineWithFallback() {
  if (navigator.gpu) {
    try { return await CreateMLCEngine("gemma-3-4b-it-q4f16_1-MLC"); }
    catch (e) { console.warn("WebGPU failed, falling back to smaller model"); }
  }
  try { return await CreateMLCEngine("SmolLM2-1.7B-q4f16_1-MLC"); }
  catch (e) { console.warn("Small model failed, falling back to API"); }
  return new APIFallbackEngine({ endpoint: "/api/chat" });
}

Офлайн-Поддержка через Service Worker

const MODEL_CACHE = "ai-models-v1";
self.addEventListener("install", (event) => {
  event.waitUntil(
    caches.open(MODEL_CACHE).then((cache) =>
      cache.addAll(["/models/smolm2-1.7b-q4.onnx", "/models/tokenizer.json"])
    )
  );
});

Матрица Решений

Ваша потребность?
├─ Чат / Разговорный ИИ → ✅ WebLLM
├─ Мультимодальный ИИ → ✅ Transformers.js
├─ Корпоративный продакшен → ✅ ONNX Runtime Web
├─ Офлайн-приложение → ✅ WebLLM + Service Worker
└─ Быстрый прототип → ✅ Transformers.js

Тренды H2 2026

Тренд Описание
Повсеместный WebGPU Поддержка в Safari 18+, больше нет проблем совместимости
MoE в Браузере Разреженные модели Mixtral работают в браузере
Файн-тюнинг на устройстве Веса LoRA загружаются, персонализированные модели без сервера
W3C Web AI API Стандартизированные встроенные ИИ-возможности браузера

Итоги

  1. Браузерный ИИ превратился из «игрушки» в «инструмент» — модель 4B на 25 tok/s применима на практике
  2. Три фреймворка, три сильные стороны — WebLLM быстрый, Transformers.js полный, ONNX стабильный
  3. Конфиденциальность — главная фишка — Данные никогда не покидают браузер, нулевые серверные расходы
  4. Стратегия деградации — ключ к успеху — WebGPU → маленькая модель → облачный API, гарантированная доступность

Если ваш ИИ-продукт в 2026 году по-прежнему отправляет каждый запрос в облако, вы не просто тратите серверные ресурсы — вы упускаете защиту конфиденциальности, главное конкурентное преимущество.

Попробуйте эти локальные браузерные инструменты — регистрация не требуется →

#WebLLM#Transformers.js#ONNX#WebGPU#浏览器AI#边缘推理#大模型#本地AI