ONNX Runtime Web (ORT Web) предоставляет высокопроизводительную среду для запуска моделей машинного обучения в браузере с использованием JavaScript. Одним из ключевых аспектов оптимизации приложений является измерение и анализ времени инференса. ORT Web включает механизмы для точного профилирования, позволяя выявлять узкие места в вычислительных графах и оценивать эффективность выбранных устройств и бэкендов.
Performance API является стандартной веб-технологией, интегрированной в современные браузеры, позволяющей измерять время выполнения кода с высокой точностью. В контексте ONNX Runtime Web используется для оценки времени инференса модели на конкретных данных.
Основные возможности Performance API в инференсе:
performance.now() — возвращает время в
миллисекундах с высокой точностью (до тысячных долей миллисекунды), что
позволяет измерять отдельные этапы инференса.Пример замера времени инференса:
const startTime = performance.now();
const output = await session.run(feeds);
const endTime = performance.now();
console.log(`Время инференса: ${endTime - startTime} мс`);
Рекомендации по использованию:
ORT Web включает встроенный механизм профилирования ORT Profiling, который позволяет получать детализированную информацию о выполнении модели на уровне операций и узлов графа.
Включение профилирования:
const session = await ort.InferenceSession.create(modelUrl, {
executionProviders: ['wasm'],
enableProfiling: true
});
Ключевые функции ORT Profiling:
Пример получения профиля после инференса:
const output = await session.run(feeds);
const profile = session.endProfiling();
console.log(profile); // JSON с временными метками для каждой операции
Использование данных профиля:
| Возможность | Performance API | ORT Profiling |
|---|---|---|
| Гранулярность | Общий блок кода, сцена инференса | Отдельные узлы и операции графа |
| Точность | Высокая, ограничена временем JS | Высокая, детализированная по узлам |
| Формат | Числовое значение в мс | JSON с полными временными метками |
| Цель | Быстрый замер времени для сценариев | Глубокий анализ производительности модели |
Оптимальная практика: использовать Performance API для общей оценки и ORT Profiling для детального анализа, особенно при оптимизации крупных моделей или сложных графов.
Использование Performance API совместно с ORT Profiling позволяет получить всестороннее понимание времени инференса, выявить узкие места и принимать обоснованные решения по оптимизации моделей ONNX для веб-приложений.