Узнайте, как ONNX улучшает переносимость и совместимость моделей ИИ, обеспечивая беспрепятственное развертывание моделей Ultralytics YOLO на различных платформах.
ONNX (Open Neural Network Exchange) - это формат с открытым исходным кодом для представления моделей машинного обучения (ML). Разработанный совместно такими компаниями, как Microsoft и Facebook, ONNX выступает в качестве универсального транслятора, позволяющего разработчикам перемещать модели между различными ML-фреймворками и инструментами. Такая совместимость крайне важна для упрощения процесса разработки модели до ее выпуска. Вместо того чтобы замыкаться на одной экосистеме, команды могут обучать модель в одном фреймворке, например PyTorch, и развертывать ее для выводов с помощью другого, например TensorFlow или специализированного механизма выводов. Модели Ultralytics YOLO, например, можно легко экспортировать в формат ONNX, что обеспечивает максимальную гибкость при развертывании на различных платформах.
ONNX предоставляет стандартное определение вычислительного графа, а также список встроенных операторов. Когда вы конвертируете модель в формат ONNX, ее архитектура, состоящая из слоев и математических операций, сопоставляется с этим универсальным стандартом. В результате .onnx
Файл содержит как структуру сети, так и обученные веса моделей.
Этот стандартизированный файл может быть загружен любым инструментом, поддерживающим спецификацию ONNX. К ним относятся:
Гибкость ONNX делает его неоценимым во многих сценариях компьютерного зрения и ML.
Развертывание ИИ на граничных устройствах: Разработчик может обучить сложную модель обнаружения объектов, например Ultralytics YOLO11, на мощном настольном компьютере с графическими процессорами NVIDIA. Чтобы приложение работало на маломощном устройстве, таком как Raspberry Pi или умная камера, используемая в аналитике розничной торговли, модель экспортируется в ONNX. Затем она может быть оптимизирована с помощью среды выполнения, например ONNX Runtime или OpenVINO, для эффективной работы на целевом оборудовании без использования исходной среды PyTorch.
Интеграция моделей в различные приложения: Рассмотрим медицинскую компанию, которая создает модель анализа медицинских изображений с помощью Python и TensorFlow. Существующая программная инфраструктура больницы построена на C# и .NET. Вместо того чтобы переписывать модель, команда экспортирует ее в ONNX. Затем приложение на C# может использовать ONNX Runtime for .NET для прямой интеграции возможностей модели, что значительно сокращает время и сложность разработки.
Важно отличать ONNX от смежных терминов:
.pt
или Сохраненная модель TensorFlow являются родными для соответствующих фреймворков. ONNX выступает в роли посредника, позволяя конвертировать эти форматы или развертывать их через общую среду выполнения. TorchScript это другой формат для сериализации моделей PyTorch, который иногда используется как альтернатива или предшественник экспорта ONNX.Таким образом, ONNX - это важнейший стандарт, обеспечивающий гибкость и совместимость конвейера машинного обучения (MLOps), позволяющий разработчикам выбирать лучшие инструменты для обучения и развертывания без ограничений со стороны фреймворка. Платформы, подобные Ultralytics HUB, используют такие форматы, чтобы упростить путь от разработки модели до ее применения в реальном мире. Чтобы узнать больше, посетите официальный сайт ONNX и изучите проект на GitHub.