Настраивайтесь на YOLO Vision 2025!
25 сентября 2025 г.
10:00 — 18:00 BST
Гибридное мероприятие
Yolo Vision 2024
Глоссарий

ONNX (Open Neural Network Exchange)

Узнайте, как ONNX повышает переносимость и интероперабельность моделей ИИ, обеспечивая беспрепятственное развертывание моделей Ultralytics YOLO на различных платформах.

ONNX (Open Neural Network Exchange) — это формат с открытым исходным кодом для представления моделей машинного обучения (ML). ONNX, совместно разработанный такими компаниями, как Microsoft и Facebook, действует как универсальный транслятор, позволяя разработчикам перемещать модели между различными ML-фреймворками и инструментами. Эта интероперабельность имеет решающее значение для оптимизации пути от разработки модели до ее внедрения в производство. Вместо того чтобы быть привязанными к одной экосистеме, команды могут обучать модель в одном фреймворке, например, PyTorch, и развертывать ее для вывода с использованием другого, такого как TensorFlow или специализированный механизм вывода. Модели Ultralytics YOLO, например, можно легко экспортировать в формат ONNX, обеспечивая максимальную гибкость для развертывания на различных платформах.

Как работает ONNX

ONNX предоставляет стандартное определение для вычислительного графа, а также список встроенных операторов. Когда вы преобразуете модель в формат ONNX, ее архитектура, состоящая из слоев и математических операций, сопоставляется с этим универсальным стандартом. Полученный .onnx файл содержит как структуру сети, так и обученные веса модели.

Этот стандартизированный файл может быть загружен любым инструментом, поддерживающим спецификацию ONNX. К ним относятся:

  • Фреймворки глубокого обучения: Такие фреймворки, как PyTorch и TensorFlow, имеют инструменты для импорта и экспорта моделей ONNX.
  • Среды выполнения логического вывода: Высокопроизводительные среды выполнения, такие как ONNX Runtime, Intel OpenVINO и NVIDIA TensorRT, предназначены для эффективного выполнения моделей ONNX на конкретном оборудовании, таком как CPU или GPU.
  • Облачные сервисы: Крупные облачные платформы, включая Azure Machine Learning и Amazon SageMaker, используют ONNX для упрощения обслуживания моделей.

Реальные приложения ONNX

Гибкость ONNX делает его бесценным во многих сценариях компьютерного зрения и машинного обучения.

  1. Развертывание ИИ на периферийных устройствах: Разработчик может обучить сложную модель обнаружения объектов, такую как Ultralytics YOLO11, на мощном настольном компьютере с графическими процессорами NVIDIA. Чтобы приложение работало на маломощном периферийном устройстве, таком как Raspberry Pi или интеллектуальная камера, используемая в розничной аналитике, модель экспортируется в ONNX. Затем она может быть оптимизирована средой выполнения, такой как ONNX Runtime или OpenVINO, для эффективной работы на целевом оборудовании без необходимости в исходной среде PyTorch.

  2. Интеграция моделей в различные приложения: Рассмотрим компанию здравоохранения, которая создает модель анализа медицинских изображений с использованием Python и TensorFlow. Существующая программная инфраструктура больницы построена с использованием C# и .NET. Вместо переписывания модели команда экспортирует ее в ONNX. Затем приложение C# может использовать ONNX Runtime для .NET для непосредственной интеграции возможностей модели, что значительно сокращает время и сложность разработки.

ONNX в сравнении со смежными концепциями

Важно отличать ONNX от связанных терминов:

  • Форматы, специфичные для фреймворка: Форматы, такие как PyTorch .pt или SavedModel от TensorFlow являются родными для соответствующих фреймворков. ONNX выступает в качестве посредника, позволяя конвертировать между этими форматами или развертывать через общую среду выполнения. TorchScript — это еще один формат для сериализации моделей PyTorch, иногда используемый в качестве альтернативы или предшественника экспорта в ONNX.
  • Механизмы/среды выполнения логического вывода: Инструменты, такие как ONNX Runtime, TensorRT и OpenVINO, представляют собой библиотеки программного обеспечения, предназначенные для эффективного выполнения моделей машинного обучения. Многие из этих механизмов могут использовать модели ONNX, часто применяя дальнейшие оптимизации (например, квантование или слияние графов) для конкретных аппаратных целей. ONNX предоставляет стандартизированный ввод модели для этих механизмов.

В заключение, ONNX является жизненно важным стандартом для обеспечения гибкости и совместимости в конвейере операций машинного обучения (MLOps), позволяя разработчикам выбирать лучшие инструменты для обучения и развертывания, не ограничиваясь ограничениями фреймворка. Платформы, такие как Ultralytics HUB, используют такие форматы, чтобы упростить путь от разработки модели до реального применения. Чтобы узнать больше, посетите официальный веб-сайт ONNX и изучите проект на GitHub.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас
Ссылка скопирована в буфер обмена