ONNX vs NNEF (AI 모델 직렬화 및 포맷 변환 기술, 컴파일러 및 시스템 최적화)

gunny·2025년 3월 12일
0

Machine Learning

목록 보기
7/9


CatBoost 모델을 Tritron으로 서빙하기 위해서 모델을 변환해야 했는데, 그 때 알게된 ONNX에 대해 공부하다가 AI 모델 표준에 대해 찾게 됐다.
사실상 현재 ONNX가 AI 모델 표준으로 인정받고 있다고 하는데, 그 이전에 NNEF가 표준으로 제안된바 있다고 한다.
이 둘은 유사한 목표를 가지고 있지만 차이점이 있다고 해서 정리했다.

ONNX 와 NNEF의 차이

크게 1. 그래프 접근 방식, 2. 양자화된 네트워크 표현 방식, 3. 네트워크 표현 방식
이라고 한다.

[1] 그래프 접근 방식

  • ONNX : ONNX의 Protobuf는 정적 그래프 접근 방식에 더 적합
  • NNEF : NNEF의 절차적 구문은 동적 그래프 접근 방식에 더 적합

[2] 양자화된 네트워크 표현 방식

  • ONNX : 다양한 비트 폭의 정수 및 부동 소수점과 같은 활성화 Tensor에 대한 다양한 데이터 유형이 포함
  • NNEF : Independent OF Machine Representation에 초점을 맞추어 의도적으로 ONNX에서 사용가능한 복합 유형을 지원하지 않음

[3] 네트워크 표현 방식

  • ONNX : Single Protobuf로 표현
  • NNEF : 구조와 데이터를 분리하는 방식으로, 데이터 매개변수는 별도의 바이너리 파일로 보내짐

ONNX는 NNEF와 달리 Intel, NVIDIA 같은 H/W 회사도 참여하고 있어서, 다수의 ML 프레임워크를 지원한다고 한다.
ONNX는 NNEF에 비해 다수의 툴이 존재해서, 코드 및 전체적인 활용도에서 우위를 점하고 있어서 자연스럽게 많은 사용자들이 사용한다고 한다.

아무튼 표준은 ONNX 쪽으로 더 기운 것 같으므로 ONNX 채택

참고사이트

https://medium.com/@enerzai/onnx-%EB%84%88-%EB%88%84%EA%B5%AC%EC%95%BC-who-are-you-5c1435b997e2

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글