Поддерживаемые браузеры, платформы и ограничения среды

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

Совместимость с браузерами

ORT Web поддерживает современные браузеры, обеспечивающие следующие возможности:

  • WebAssembly (WASM) — ключевая технология, позволяющая запускать модели с высокой производительностью. Практически все современные версии браузеров поддерживают WASM, включая Chrome, Firefox, Safari, Edge.
  • WebGL / WebGPU — используется для ускорения вычислений на графическом процессоре. WebGL поддерживается большинством десктопных и мобильных браузеров, WebGPU находится на стадии активного внедрения и поддерживается экспериментально в последних версиях Chrome и Edge.
  • Web Workers — позволяют выполнять вычисления в фоновом потоке, предотвращая блокировку основного потока интерфейса.

Рекомендованные версии браузеров для стабильной работы ORT Web:

Браузер Минимальная версия
Chrome 92
Firefox 90
Safari 15
Edge 92

Старые версии браузеров, не поддерживающие WebAssembly или WebGL, не смогут использовать ORT Web, что приводит к полной невозможности выполнения моделей.

Поддержка платформ

ORT Web ориентирован на следующие платформы:

  • Десктопные системы: Windows, macOS, Linux через браузеры с поддержкой WASM.
  • Мобильные устройства: iOS и Android, при условии, что браузер поддерживает WebAssembly и WebGL. На мобильных устройствах возможны ограничения по производительности и объему доступной памяти.
  • Node.js: ORT Web может использоваться в среде Node.js через пакет onnxruntime-web, что позволяет запускать модели без браузера, используя реализацию WebAssembly.

Особенности работы в Node.js:

  • Отсутствует ограничение на взаимодействие с DOM, но вычислительные ресурсы и память ограничены возможностями процесса Node.js.
  • Поддерживаются те же механизмы ускорения через WASM SIMD и threading, если платформа позволяет.

Ограничения среды выполнения

  1. Объем памяти: WebAssembly имеет ограничение на доступный объем памяти, которое зависит от браузера и устройства. Обычно это 2–4 ГБ для 32-битных адресов. Модели, превышающие доступный объем памяти, не смогут быть загружены.
  2. Выполнение в главном потоке: Выполнение моделей напрямую в основном потоке может блокировать интерфейс. Рекомендуется использование Web Workers для асинхронного выполнения.
  3. Поддержка SIMD и threading: Для ускорения вычислений ORT Web использует SIMD-инструкции и многопоточность через WASM. Не все браузеры полностью поддерживают эти возможности, что может снижать производительность.
  4. WebGPU ограничена экспериментально: В браузерах, где WebGPU доступен только в экспериментальном режиме, возможны нестабильные результаты или ошибки при выполнении сложных моделей.
  5. Ограничения форматов ввода/вывода: ORT Web поддерживает только стандартные типы данных ONNX (float32, int32, bool и т. д.). Использование сложных пользовательских типов или кастомных операторов требует дополнительной поддержки через WebAssembly-плагины или серверное выполнение.

Особенности использования на мобильных устройствах

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

Итоги по средам выполнения

ORT Web обеспечивает гибкое выполнение моделей на большинстве современных платформ и браузеров, но требует внимательного подхода к ограничениям среды:

  • Всегда учитывать доступный объем памяти и ограничения WebAssembly.
  • Использовать Web Workers для тяжелых вычислений.
  • Проверять поддержку WebGL и WebGPU для ускорения вычислений.
  • Оптимизировать модели для мобильных устройств и браузеров с ограниченными ресурсами.

В совокупности, правильное понимание поддерживаемых платформ и ограничений среды позволяет максимально эффективно использовать возможности ONNX Runtime Web в JavaScript.