Глоссарий

ONNX (Открытая биржа нейронных сетей)

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

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

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

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

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

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

Применение ONNX в реальном мире

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

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

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

ONNX по сравнению со смежными понятиями

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

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

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

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

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

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