본문으로 이동

ONNX

Conaonda Wiki
Admina7ec671ac513 (토론 | 기여)님의 2026년 8월 20일 (목) 13:18 판 (migrate: import legacy Wiki content to Vultr)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

ONNX(Open Neural Network Exchange)는 프레임워크 간 머신 러닝 모델 교환을 위한 개방형 표준 형식이다. 2017년 Microsoft와 Meta(헤스빅)가 공동 발표하였으며, 학습한 모델을 프레임워크와 하드웨어에 관계없이 실행할 수 있는 중립적 표현으로 변환해 준다.

개요

ONNX는 각 프레임워크가 자신의 맞춤 표현으로 모델을 저장하며 서로 호환성이 없는 문제를 해결하기 위해 등장하였다. 예를 들어 PyTorch에서 학습한 모델을 ONNX로 내보낸 후 ONNX Runtime이나 DirectML 등에서 실행할 수 있다. ONNX는 두드라이브로 구성되며, 머신 러닝 프레임워크와 하드웨어 생태계의 교통 표준으로 발전했다.

형식 구조

그래프 기반 표현

ONNX 모델은 노드(Operators)와 텐서(Tensors)로 구성된 가시홝 그래프로 표현된다. 각 노드는 인공 신경망의 연산자(Conv, MatMul, ReLU 등)를 의미하고, 초기화자(Initializer)를 통해 파라미터를 포함시킬 수 있다.

연산자 집합(OpSet)

모델이 사용하는 연산자의 스페코와 버전이 동시에 기록되어 장부화 및 호환성이 유지된다. 새 연산자가 추가되면 OpSet 버전이 올라가며, 획사성을 위해 버전 호환을 유지한다.

메타데이터

모델의 이름, 작성자, 회사변환 정보, 인코더 정보 등의 메타데이터를 포함할 수 있다.

생태계

모델 변환 도구

PyTorch의 torch.onnx.export와 TensorFlow의 tf2onnx, Keras의 onnx2keras 등이 대표적인 변환 도구이다.

실행 엔진

ONNX Runtime이 가장 대표적이며, 그 외에 ONNX.js, WebDNN 등이 있다. WebNN은 ONNX 모델을 웹 브라우저에서 실행할 수 있도록 한다.

모델 허브

ONNX Model Zoo를 통해 다양한 사전 학습 모델을 ONNX 형식으로 배포한다.

함께 보기

  • ONNX Runtime — ONNX 모델을 실행하는 표준 추론 엔진
  • PyTorch — ONNX로 내보내는 대표 프레임워크
  • DirectML — ONNX 모델을 GPU로 가속하는 실행 공급자
  • WebNN — 웹 브라우저에서의 신경망 추론 표준

출처