ONNX가 AI 모델의 이식성 및 상호 운용성을 어떻게 향상시켜 다양한 플랫폼에서 Ultralytics YOLO 모델을 원활하게 배포할 수 있도록 하는지 알아보세요.
ONNX(Open Neural Network Exchange)는 머신러닝(ML) 모델을 표현하기 위한 오픈 소스 형식입니다. Microsoft 및 Facebook과 같은 회사에서 공동 개발한 ONNX는 범용 번역기 역할을 하여 개발자가 다양한 ML 프레임워크 및 도구 간에 모델을 이동할 수 있도록 합니다. 이러한 상호 운용성은 모델 개발에서 프로덕션까지의 여정을 간소화하는 데 매우 중요합니다. 단일 에코시스템에 갇히는 대신 팀은 PyTorch와 같은 하나의 프레임워크에서 모델을 훈련하고 TensorFlow 또는 특수 추론 엔진과 같은 다른 프레임워크를 사용하여 추론을 위해 배포할 수 있습니다. 예를 들어 Ultralytics YOLO 모델은 ONNX 형식으로 쉽게 내보낼 수 있으므로 다양한 플랫폼에 걸쳐 배포할 수 있는 최대한의 유연성을 제공합니다.
ONNX는 내장된 연산자 목록과 함께 계산 그래프에 대한 표준 정의를 제공합니다. 모델을 ONNX 형식으로 변환하면 레이어와 수학 연산으로 구성된 아키텍처가 이 범용 표준에 매핑됩니다. 결과적으로 .onnx
파일에는 네트워크 구조와 훈련된 내용이 모두 포함되어 있습니다. 모델 가중치.
이 표준화된 파일은 ONNX 사양을 지원하는 모든 도구에서 로드할 수 있습니다. 여기에는 다음이 포함됩니다.
ONNX의 유연성은 많은 컴퓨터 비전 및 ML 시나리오에서 매우 유용합니다.
엣지 장치에 AI 배포: 개발자는 NVIDIA GPU가 장착된 강력한 데스크톱에서 객체 감지 모델인 Ultralytics YOLO11과 같은 복잡한 모델을 학습할 수 있습니다. 리테일 분석에 사용되는 스마트 카메라 또는 Raspberry Pi와 같은 저전력 엣지 장치에서 애플리케이션을 실행하기 위해 모델은 ONNX로 내보내집니다. 그런 다음 원래 PyTorch 환경 없이도 대상 하드웨어에서 효율적인 성능을 위해 ONNX Runtime 또는 OpenVINO와 같은 런타임에 의해 최적화될 수 있습니다.
다양한 애플리케이션에 모델 통합: Python 및 TensorFlow를 사용하여 의료 영상 분석 모델을 구축하는 의료 회사를 생각해 보십시오. 병원의 기존 소프트웨어 인프라는 C# 및 .NET을 사용하여 구축되었습니다. 모델을 다시 작성하는 대신 팀은 ONNX로 내보냅니다. 그런 다음 C# 애플리케이션은 .NET용 ONNX 런타임을 사용하여 모델의 기능을 직접 통합하여 개발 시간과 복잡성을 크게 줄일 수 있습니다.
ONNX를 관련 용어와 구별하는 것이 중요합니다.
.pt
또는 TensorFlow의 SavedModel 각 프레임워크에 고유합니다. ONNX는 이러한 형식 간의 변환 또는 공통 런타임을 통한 배포를 가능하게 하는 중간자 역할을 합니다. TorchScript 는 PyTorch 모델 직렬화를 위한 또 다른 형식이며, 때로는 ONNX 내보내기의 대안 또는 전조로 사용됩니다.요약하자면, ONNX는 프레임워크 제한에 구애받지 않고 개발자가 훈련 및 배포에 가장 적합한 도구를 선택할 수 있도록 MLOps(Machine Learning Operations) 파이프라인에서 유연성과 상호 운용성을 보장하는 데 중요한 표준입니다. Ultralytics HUB와 같은 플랫폼은 이러한 형식을 활용하여 모델 개발에서 실제 애플리케이션으로의 여정을 단순화합니다. 자세한 내용은 공식 ONNX 웹사이트를 방문하여 GitHub에서 프로젝트를 살펴보십시오.