Глоссарий

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

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

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

В сфере искусственного интеллекта и машинного обучения совместимость является ключом к использованию лучших инструментов и развертыванию моделей в различных средах. ONNX (Open Neural Network Exchange) - это открытый формат, созданный для представления моделей машинного обучения, благодаря которому разработчики ИИ не замыкаются на одном фреймворке и могут упростить процесс перемещения моделей между различными инструментами. Он обеспечивает единое представление для моделей, независимо от фреймворка, используемого для обучения, что упрощает развертывание этих моделей в различных движках вывода, аппаратных платформах и средах.

Актуальность ONNX

Основная значимость ONNX заключается в его способности способствовать переносимости и совместимости в экосистеме ИИ. Определяя общий набор операторов и стандартный формат для моделей машинного обучения, ONNX позволяет моделям, обученным в таких фреймворках, как PyTorch или TensorFlow , легко переноситься и запускаться с помощью различных движков вывода, таких как TensorRT или OpenVINO. Это особенно полезно для разработчиков, использующих модели Ultralytics YOLO , так как экспорт ONNX упрощает развертывание моделей на различных платформах, от облачных серверов до пограничных устройств. Ultralytics облегчает экспорт YOLOv8 моделей в формат ONNX , что позволяет пользователям использовать оптимизированные движки вывода для повышения производительности и ускорения вывода в реальном времени.

Применение ONNX

ONNXКросс-фреймворковая совместимость делает его ценным в многочисленных приложениях для ИИ. Вот два конкретных примера:

  • Развертывание на границе: Развертывание моделей ИИ на пограничных устройствах часто требует оптимизированной производительности и совместимости с конкретным оборудованием. ONNX позволяет разработчикам обучать модель с помощью высокоуровневого фреймворка, например PyTorch , а затем экспортировать ее в ONNX , чтобы она эффективно работала на пограничных устройствах с использованием движков вывода, таких как TensorRT на NVIDIA Jetson или OpenVINO на Intel устройствах. Это гарантирует, что такие приложения, как умные камеры или робототехника, смогут эффективно выполнять задачи обнаружения объектов с помощью Ultralytics YOLO -моделей в режиме реального времени.
  • Кроссплатформенный вывод: В сценариях, когда ИИ-решения должны работать на разных операционных системах и аппаратном обеспечении, ONNX обеспечивает согласованный формат модели. Например, приложение для анализа медицинских изображений может быть обучено на мощных серверах, но в больницах или поликлиниках ему нужно делать выводы на менее мощных машинах. ONNX обеспечивает плавный переход и выполнение одной и той же модели в разных средах, гарантируя стабильную и надежную работу независимо от платформы развертывания.

Смежные понятия

Понимание ONNX также подразумевает осознание смежных концепций, которые играют роль в развертывании и оптимизации модели:

  • Движки вывода: Это программные библиотеки, которые оптимизируют и выполняют модели машинного обучения на конкретном оборудовании. Модели ONNX часто используются с такими движками вывода, как TensorRT и OpenVINO для ускорения скорости и эффективности вычислений.
  • Экспорт моделей: Процесс преобразования обученной модели из формата ее исходного фреймворка (например, PyTorch .pt файлы) в формат ONNX . Ultralytics предоставляет простые инструменты для экспорт моделей YOLO на ONNX и в других форматах.
  • Взаимодействие с фреймворками: ONNX решает проблему замкнутости фреймворков, позволяя использовать модели в разных фреймворках. Хотя у каждого фреймворка есть свои сильные стороны, ONNX гарантирует, что разработчики смогут выбрать лучший инструмент для каждого этапа жизненного цикла ИИ без барьеров совместимости.

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

Читать полностью