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