ONNX Runtime Web (ORT Web) предоставляет возможность выполнения моделей машинного обучения в браузере с помощью WebAssembly (WASM) или WebGPU. Ключевым элементом этой инфраструктуры являются WASM-файлы — исполняемые модули, которые обеспечивают работу движка в клиентской среде. Организация доступа к этим файлам напрямую влияет на производительность, время загрузки и масштабируемость приложений.
Размещение WASM-ассетов в публичной папке приложения
(/public или аналогичной) является наиболее прямым и часто
используемым способом интеграции. Основные особенности:
public.Недостатки публичного размещения:
Размещение WASM-ассетов на CDN (Content Delivery Network) позволяет эффективно доставлять файлы пользователям по всему миру. Основные преимущества:
Особенности работы с ORT Web через CDN:
Настройка пути к ассетам. Параметр
wasmPaths при инициализации Ort.env должен
указывать на URL CDN. Например:
Ort.env.wasm.wasmPaths = "https://cdn.example.com/ort/";CORS-политики. WASM-модули загружаются как
обычные бинарные ресурсы, поэтому сервер CDN должен поддерживать
CORS-заголовки Access-Control-Allow-Origin для домена
приложения.
Версионирование файлов. Для стабильной работы
рекомендуется включать хэш или номер версии в имя файла, например:
ort-wasm-v1.15.0.wasm. Это предотвращает ошибки при
обновлении ORT.
| Критерий | Публичная папка | CDN |
|---|---|---|
| Простота настройки | Очень высокая | Требует настройки URL и CORS |
| Контроль версий | Прямой | Через имена файлов или версионирование URL |
| Время загрузки для глобальных пользователей | Среднее | Минимальное |
| Масштабируемость | Ограничена сервером | Высокая, благодаря сети CDN |
| Кэширование | Браузерное | CDN + браузерное |
| Размер проекта | Увеличивает сборку | Не влияет на основной проект |
wasm и webgl. Для каждого движка можно
настроить отдельный путь к ассетам.Ort.InferenceSession.create с
указанием wasmPaths позволяет корректно управлять загрузкой
и предотвращать блокировку UI.Размещение WASM-ассетов — ключевой фактор производительности и удобства разработки с ONNX Runtime Web. Выбор между публичной папкой и CDN зависит от масштаба проекта, требований к скорости загрузки и стратегии кэширования. Правильная организация ассетов позволяет минимизировать задержки и обеспечить стабильное выполнение моделей на клиентской стороне.