ONNX란?

おにきす

異なるフレームワークや推論ランタイムの間でモデルをやり取りするための共通のモデルの形式。Open Neural Network Exchangeの略。

일본어 명칭: ONNX

ONNX은(는) AI 하드웨어·소프트웨어 스택 등 1개 분야의 연습 문제 2개에 나와요.

분야: AI 하드웨어·소프트웨어 스택

도전해 보기: ONNX 관련 문제

ONNX의 설명으로 올바른 것은 무엇인가?

  1. AAI 전용 반도체 칩의 이름
  2. BAI 학습 데이터를 압축하는 방식
  3. C서로 다른 프레임워크나 추론 런타임 사이에서 모델을 주고받기 위한 공통 모델 형식
정답과 해설 보기

정답: C. 서로 다른 프레임워크나 추론 런타임 사이에서 모델을 주고받기 위한 공통 모델 형식

ONNX(Open Neural Network Exchange)는 모델의 계산 그래프와 가중치를 공통 형식으로 표현하기 위한 규격입니다. PyTorch 등으로 학습한 모델을 ONNX로 내보내면, 다른 회사의 추론 런타임이나 다양한 하드웨어 도구에서 읽어 들여 실행할 수 있습니다. 학습 환경과 추론 환경을 분리할 수 있으므로 기기별로 최적의 실행 구조를 선택하기 쉬워집니다.

TensorRT나 ONNX Runtime 같은 추론 런타임이 학습용 프레임워크로 그대로 추론하는 것보다 빠를 수 있는 주된 이유는 무엇인가?

  1. A추론에만 필요한 형태로 그래프를 최적화하여 연산 융합, 양자화, 하드웨어에 맞는 커널 선택 등을 수행하기 때문
  2. B추론 런타임은 계산을 생략하여 대략적인 답을 내기 때문
  3. C추론 런타임은 모델의 가중치 수를 늘리기 때문
정답과 해설 보기

정답: A. 추론에만 필요한 형태로 그래프를 최적화하여 연산 융합, 양자화, 하드웨어에 맞는 커널 선택 등을 수행하기 때문

학습용 프레임워크는 유연하게 작성할 수 있는 점과 역전파를 위한 기록을 중시하므로, 추론에만 사용하면 낭비가 있습니다. 추론 런타임은 모델을 읽어 들인 뒤 추론에 불필요한 부분을 제거하고, 연산을 융합하며, 필요에 따라 가중치나 활성화를 낮은 정밀도로 바꾸고, 대상 GPU나 NPU에서 가장 빠른 커널을 선택합니다. 이렇게 같은 모델이라도 지연 시간과 메모리를 크게 줄일 수 있습니다.

해설 속 ONNX

ONNX이(가) 나오는 문제 (2)

  1. ONNX의 설명으로 올바른 것은 무엇인가?
  2. TensorRT나 ONNX Runtime 같은 추론 런타임이 학습용 프레임워크로 그대로 추론하는 것보다 빠를 수 있는 주된 이유는 무엇인가?

관련 용어

GPU NPU(ニューラルプロセッシングユニット) 計算グラフ 勾配チェックポイント 構造化スパース 量子化を考慮した学習 逆伝播 演算強度 演算の融合 知識蒸留

용어집으로 돌아가기