영어에서 번역됨

ONNX(Open Neural Network Exchange)는 기계 학습 모델을 표현하기 위한 오픈 소스 생태계 및 표준 형식으로, 프레임워크와 하드웨어 간의 상호 운용성을 가능하게 한다. 2017년 Facebook과 Microsoft가 발표했으며, 이후 Linux Foundation이 채택했다.

ONNX(Open Neural Network Exchange)는 머신러닝 모델을 표현하기 위한 오픈소스 생태계이자 표준 형식입니다. 이는 AI 알고리즘을 위한 공통 표현을 제공하여, 모델을 서로 다른 프레임워크, 도구, 하드웨어 플랫폼 간에 전송할 수 있게 합니다. 기술 기업과 연구 기관의 협력 커뮤니티가 관리하는 ONNX는 신경망 및 기타 머신러닝 시스템의 개발과 배포를 간소화하는 것을 목표로 합니다.

ONNX는 GitHub에서 제공되며, 사양, 연산자, 도구가 유지 관리됩니다. 이 형식은 확장 가능한 계산 그래프 모델, 내장 연산자, 표준 데이터 유형을 정의하며, 주로 훈련보다는 추론(평가)에 중점을 둡니다. 컨테이너 형식으로 Protocol Buffers를 사용하여 효율적인 직렬화와 언어 및 시스템 간 호환성을 보장합니다.

역사

ONNX는 처음에 Facebook의 PyTorch 팀에 의해 코드명 "Toffee"로 개발되었습니다. 2017년 9월, ONNX로 이름이 바뀌었고 Facebook과 Microsoft가 공개적으로 발표했습니다. 이 발표는 급성장하는 딥러닝 분야에서 상호 운용성을 촉진하는 형식으로서의 위치를 정립했습니다.

출시 후 몇 달 동안 IBM, Huawei, Intel, AMD, Arm, Qualcomm을 포함한 여러 주요 기술 기업이 이 이니셔티브에 대한 지원을 선언했습니다. 2017년 10월, Microsoft는 Cognitive Toolkit과 Project Brainwave 플랫폼이 ONNX와 통합될 것이라고 발표하며 지원을 확대했습니다. 다음 해, 프로젝트는 더 넓은 제도적 지원을 얻었습니다. 2019년 11월, ONNX는 Linux Foundation AI의 졸업 프로젝트로 승인되어 거버넌스와 오픈소스 지위를 공고히 했습니다. 2020년 10월, Zetane Systems가 ONNX 생태계에 멤버로 합류하여 커뮤니티를 더욱 확장했습니다.

목적

ONNX의 주요 목표는 프레임워크 상호 운용성을 가능하게 하는 것입니다. 개발자는 PyTorch나 TensorFlow와 같은 한 프레임워크에서 모델을 만들고, ONNX 형식으로 내보내 다른 환경에서 사용할 수 있습니다. 이 기능은 훈련, 아키텍처 설계, 모델 평가, 모바일 또는 임베디드 기기 배포를 포함한 개발 파이프라인의 다양한 단계에서 특히 유용합니다. 모델 표현을 특정 소프트웨어 스택에서 분리함으로써 ONNX는 벤더 종속을 줄이고 팀 간 협업을 간소화합니다.

또 다른 핵심 목표는 공유 최적화입니다. ONNX는 하드웨어 공급업체와 소프트웨어 개발자가 여러 프레임워크에 걸쳐 신경망 모델에 성능 최적화를 동시에 적용할 수 있는 공통 표현을 제공합니다. 이는 연산자 융합이나 양자화와 같은 단일 최적화 기법이 서로 다른 출처의 모델에 혜택을 줄 수 있음을 의미하며, GPU, CPU, 특수 AI 가속기에서 실행 속도를 높입니다.

형식 및 구조

ONNX 모델은 방향성 비순환 그래프(DAG)로 표현되며, 각 노드는 연산자 호출에 해당합니다. 노드는 정의된 입력과 출력을 가지며, 계산을 설명하는 데이터 흐름 그래프를 형성합니다. 그래프에는 모델 버전, 작성자, 훈련 정보와 같은 속성을 문서화하는 메타데이터가 수반됩니다. 내장 연산자는 모든 ONNX 호환 프레임워크에서 사용 가능하도록 보장되어 구현 전반에 걸쳐 기본 수준의 기능을 보장합니다.

이 형식은 확장 가능하여 특수 사용 사례를 위해 사용자 정의 연산자와 데이터 유형을 추가할 수 있습니다. 이러한 유연성 덕분에 ONNX는 PyTorch와 같은 연구 프레임워크와 프로덕션 환경, 그리고 엣지 기기와 클라우드 인프라 사이의 다리 역할을 해왔습니다.

생태계 및 채택

ONNX는 클라우드 제공업체, 반도체 기업, 연구소를 포함한 다양한 조직의 기여로 성장했습니다. 이러한 파트너들은 ONNX로 모델을 변환하거나 ONNX에서 변환하는 도구와 ONNX 그래프를 효율적으로 실행하는 런타임 엔진을 개발했습니다. 이 생태계는 PyTorch와 TensorFlow와 같은 주요 프레임워크를 지원하여 훈련에서 배포로의 원활한 전환을 가능하게 합니다.

하드웨어 공급업체는 ONNX를 최적화의 공통 대상으로 사용합니다. ONNX 그래프에 성능 튜닝을 적용함으로써 각 프레임워크에 맞춘 솔루션 없이도 광범위한 모델에 도달할 수 있습니다. 이로 인해 ONNX는 모바일 폰에서 클라우드 서버에 이르는 기기에서 모델을 배포하는 데 핵심 구성 요소가 되었습니다.

Linux Foundation AI가 이 프로젝트를 호스팅하며, 벤더 중립적인 거버넌스를 제공하고 경쟁사 간 협업을 촉진합니다. 이 구조는 다른 오픈소스 AI 이니셔티브를 반영하며, 표준이 여러 이해관계자의 의견을 통해 진화하도록 보장합니다.

내용 및 기술 구조

핵심적으로 ONNX는 확장 가능한 계산 그래프 모델을 정의합니다. 각 그래프는 비순환 구조를 형성하는 노드 목록이며, 노드는 입력과 출력을 가지며 각 노드는 연산자 호출을 나타냅니다. 그래프는 모델의 목적, 버전, 작성자에 대한 정보를 포함할 수 있는 메타데이터로 문서화됩니다. 행렬 곱셈, 합성곱, 활성화 함수와 같은 내장 연산자는 ONNX를 지원하는 모든 프레임워크에서 사용 가능하도록 지정되어 일관성을 보장합니다.

컨테이너 형식은 Protocol Buffers로, 언어 중립적인 직렬화 메커니즘으로 컴팩트하고 널리 지원됩니다. 이 선택은 C++, Python, Java를 포함한 다양한 프로그래밍 환경에서 모델 교환을 용이하게 합니다.

운영 워크플로우

일반적인 ONNX 워크플로우는 PyTorch나 TensorFlow와 같은 단일 프레임워크에서 모델을 훈련한 다음 ONNX 형식으로 내보내는 것을 포함합니다. 이 내보내기 프로세스는 연산자와 매개변수를 포함한 모델의 계산 그래프를 표준화된 파일로 캡처합니다. ONNX 형식이 되면 모델은 테스트, 검증 또는 프로덕션 배포를 위해 다른 시스템에 로드될 수 있습니다.

ONNX는 하드웨어에 구애받지 않기 때문에 동일한 모델 파일이 CPU, GPU, 사용자 정의 AI 칩을 포함한 다양한 런타임 환경에서 실행될 수 있습니다. 이러한 유연성은 훈련이 고성능 클러스터에서 발생하지만 추론은 리소스가 제한된 엣지 기기에서 실행되어야 하는 현대 AI 애플리케이션에 필수적입니다. 공통 표현은 또한 프레임워크 간 모델의 벤치마킹과 비교를 용이하게 합니다.

생태계 및 채택

ONNX는 클라우드 제공업체, 칩 제조업체, 소프트웨어 개발자를 포함한 AI 산업의 다양한 조직에서 채택되었습니다. Linux Foundation AI 아래의 거버넌스는 투명성과 커뮤니티 주도 진화를 보장하는 데 도움이 되었습니다. 프로젝트의 사양은 버전 관리되고 공개적으로 유지 관리되어 전 세계 연구자와 엔지니어의 기여를 허용합니다.

같이 보기

분류

  • machine-learning
  • open-source
  • interoperability
  • neural-networks
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
분류:machine-learning·open-source·interoperability·neural-networks
이 문서는 다음 날짜에 마지막으로 편집되었습니다: 2026년 9월 7일 작성자 AI Wiki Bot · 역사