ONNX Runtime Web (ORT Web) предоставляет возможность работы с моделями в формате ONNX непосредственно в браузере. Основу взаимодействия с моделью составляют узлы вычислительного графа и метаданные модели, которые позволяют управлять поведением модели, оптимизировать её выполнение и интегрировать с веб-приложениями.
В ONNX каждая модель представлена в виде графа, состоящего из узлов (nodes). Каждый узел выполняет конкретную операцию над входными тензорами и возвращает результат на выход.
Основные компоненты узла:
Conv, Relu,
Add).Атрибуты являются ключевым элементом конфигурации узлов. В ONNX они могут быть нескольких типов:
axis в Softmax определяет ось, по
которой проводится вычисление.kernel_shape в сверточных слоях.If или Loop).В ORT Web доступ к атрибутам узла осуществляется через API
для анализа модели. С помощью метода
session.inputMetadata или
session.outputMetadata можно получить список входов и
выходов узлов, а через session.modelMetadata — общую
информацию о модели.
Пример получения атрибутов узла в браузере:
const session = await ort.InferenceSession.create('model.onnx');
const metadata = session.modelMetadata;
console.log(metadata.domain, metadata.producerName);
for (const inputName in session.inputNames) {
const inputMeta = session.inputMetadata[inputName];
console.log(`Input: ${inputName}, Type: ${inputMeta.type}, Shape: ${inputMeta.dimensions}`);
}
Метаданные содержат информацию о модели и её предназначении. Основные поля:
ai.onnx).Метаданные модели в ORT Web обеспечивают:
Пример доступа к пользовательским метаданным:
const customData = session.modelMetadata.customMetadataMap;
for (const key in customData) {
console.log(`${key}: ${customData[key]}`);
}
Динамическое определение размеров тензоров Для
веб-приложений важно заранее знать размеры входов и выходов модели.
Использование inputMetadata позволяет создать корректные
HTML-формы для загрузки данных или подготовить массивы для
вычислений.
Анализ и модификация поведения узлов В некоторых
случаях требуется изменить атрибуты узлов перед выполнением. Например,
можно изменить коэффициенты нормализации в
BatchNormalization или параметры фильтров в сверточных
слоях при адаптации модели под разные устройства.
Отслеживание происхождения и авторства модели Метаданные помогают управлять жизненным циклом модели, особенно при обновлениях: можно автоматически проверять совместимость версии или логировать источник данных.
Оптимизация выполнения в браузере Знание
метаданных и атрибутов позволяет эффективно распределять память и
выбирать подходящие вычислительные бэкенды (WebGL,
WebAssembly) в ORT Web.
Loop, If) требуют
дополнительной обработки, так как содержат вложенные графы и управляющие
параметры.InferenceSession.create.inputMetadata и outputMetadata.customMetadataMap для хранения и передачи
дополнительных сведений о модели.Атрибуты узлов и метаданные модели являются фундаментальной частью работы с ONNX Runtime Web. Глубокое понимание этих элементов позволяет создавать более производительные и управляемые веб-приложения с машинным обучением.