용어집

ONNX (개방형 신경망 교환)

ONNX 이 어떻게 AI 모델 이동성과 상호 운용성을 향상시켜 다양한 플랫폼에서 Ultralytics YOLO 모델을 원활하게 배포할 수 있도록 지원하는지 알아보세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

빠르게 진화하는 인공지능(AI)머신러닝(ML) 분야에서는 서로 다른 도구와 플랫폼 간에 모델을 효율적으로 이동하는 것이 매우 중요합니다. ONNX (오픈 신경망 교환)는 AI 모델을 위해 특별히 설계된 오픈 소스 형식을 제공함으로써 이 문제를 해결합니다. 이는 범용 번역기 역할을 하여 개발자가 다음과 같은 하나의 프레임워크에서 모델을 훈련할 수 있도록 합니다. PyTorch와 같은 하나의 프레임워크에서 모델을 훈련한 다음 다른 프레임워크나 추론 엔진(예 TensorFlow 또는 특수 런타임을 사용하여 배포할 수 있습니다. 이러한 상호 운용성은 연구부터 생산까지의 과정을 간소화합니다.

관련성 ONNX

ONNX 핵심 가치는 AI 에코시스템 내에서 이동성과 상호 운용성을 촉진하는 데 있습니다. 개발자는 특정 프레임워크의 에코시스템에 종속되지 않고 ONNX 활용하여 모델을 자유롭게 이동할 수 있습니다. 공통 연산자 세트와 표준 파일 형식을 정의함으로써 ONNX 모델의 구조와 학습된 매개변수(가중치)가 일관되게 표현되도록 보장합니다. 이는 특히 다음과 같은 사용자에게 유용합니다. Ultralytics YOLO 모델을 사용하는 사용자에게 특히 유용합니다. Ultralytics 모델을 ONNX 형식으로 내보내는 간단한 방법을 제공하기 때문입니다. 이 내보내기 기능을 통해 사용자는 다음과 같은 모델을 가져올 수 있습니다. YOLOv8 또는 YOLO11 과 같은 모델을 가져와 다양한 하드웨어 및 소프트웨어 플랫폼에 배포할 수 있으며, 종종 성능 향상을 위해 최적화된 추론 엔진을 활용할 수 있습니다.

ONNX 작동 방식

ONNX 몇 가지 주요 기능을 통해 상호 운용성을 달성합니다:

  • 공통 모델 표현: 컨볼루션 레이어 또는 활성화 함수와 같은 표준 연산자 세트와 데이터 유형을 정의합니다. 모델이 ONNX 변환되면 해당 아키텍처가 이 공유 언어로 변환됩니다.
  • 그래프 기반 구조: 모델은 계산 그래프로 표현되며, 노드는 연산이고 가장자리는 데이터의 흐름(텐서)을 나타냅니다. 이는 대부분의 딥 러닝 프레임워크에서 사용하는 일반적인 구조입니다.
  • 확장성: ONNX 핵심 연산자 집합을 정의하지만, 사용자 정의 연산자를 허용하여 새로운 모델 아키텍처를 지원할 수 있습니다.
  • 버전 관리: ONNX 이전 버전과의 호환성을 보장하기 위해 운영자 버전을 유지하므로 표준이 발전함에 따라 이전 버전으로 만든 모델도 계속 사용할 수 있습니다.

애플리케이션 ONNX

ONNX 모델 학습 환경과 배포 대상 간의 격차를 해소하는 데 널리 사용됩니다. 다음은 두 가지 예시입니다:

  1. 에지 디바이스에 최적화된 배포: 개발자가 GPU를 갖춘 강력한 서버에서 Ultralytics YOLO 사용하여 개체 감지 모델을 훈련합니다. 이 모델을 리소스가 제한된 에지 디바이스에 배포하기 위해 모델을 ONNX 내보냅니다. 그런 다음 다음과 같은 도구를 사용하여 ONNX 모델을 최적화할 수 있습니다. NVIDIA TensorRT 또는 Intel CPU/VPU를 위한 Intel OpenVINO 같은 도구를 사용하여 최적화하여 더 빠르고 효율적인 실시간 추론을 달성할 수 있습니다. 자세한 내용은 모델 배포 옵션에 대한 가이드를 참조하세요.
  2. 프레임워크 간 협업: 한 연구팀이 PyTorch 새로운 모델 컴포넌트를 개발합니다. 이 컴포넌트를 TensorFlow 구축된 더 큰 애플리케이션에 통합하는 다른 팀은 이 컴포넌트를 ONNX 파일로 받을 수 있습니다. 이렇게 하면 복잡한 코드 번역이나 다른 프레임워크에 대한 별도의 모델 버전을 유지 관리할 필요가 없으므로 고객 페이지에 나열된 것과 같은 조직 내에서 더 쉽게 협업할 수 있습니다.

관련 개념

ONNX 이해하려면 관련 기술이 필요한 경우가 많습니다:

  • ONNX 런타임: 다양한 하드웨어CPU, GPU등)에서 효율적으로 실행하도록 설계되었습니다. ONNX 형식을 정의하는 반면, ONNX 런타임은 실행 환경을 제공합니다.
  • TensorRT: 고성능 딥 러닝 추론을 위한 NVIDIA SDK로, NVIDIA GPU에서 최적화를 위해 ONNX 모델을 가져올 수 있습니다. Ultralytics TensorRT 통합을 제공합니다.
  • OpenVINO: AI 추론을 최적화하고 배포하기 위한 Intel 툴킷으로, Intel 하드웨어에서 실행할 수 있도록 ONNX 모델을 지원합니다.
  • 모델 내보내기: 학습된 모델을 원래 프레임워크 형식(예: PyTorch .pt)를 ONNX 같은 표준화된 형식으로 변환합니다.
  • 모델 배포: 학습된 모델을 가져와 프로덕션 환경에서 사용할 수 있도록 하는 전반적인 프로세스로, 플랫폼 간 호환성을 간소화하는 데 있어 ONNX 핵심적인 역할을 합니다. Ultralytics HUB와 같은 플랫폼을 사용하여 ONNX 모델의 배포를 관리할 수 있습니다.

모델 교환 및 배포를 용이하게 함으로써 ONNX AI 개발 라이프사이클을 보다 유연하고 효율적으로 만드는 데 중요한 역할을 합니다.

모두 보기