Project ES/: : ONNX

ONNX Runtime 소개

Jay.P Morgan 2026. 4. 28. 18:34

 

  1. ONNX Runtime 소개

 

ONNX Runtime은 하드웨어별 라이브러리를 통합할 수 있는 유연한 인터페이스를 갖춘 크로스 플랫폼 머신러닝 모델 가속기입니다. ONNX Runtime은 PyTorch, TensorFlow/Keras, TFLite, scikit-learn 및 기타 프레임워크의 모델과 함께 사용할 수 있습니다.

 

  1.1  ONNX Runtime 추론

 

ONNX 런타임 추론은 Office, Azure, Bing을 비롯한 주요 Microsoft 제품 및 서비스와 수십 개의 커뮤니티 프로젝트에서 머신 러닝 모델을 구동합니다.

ONNX 런타임 추론의 사용 사례는 다음과 같습니다.

다양한 머신 러닝 모델의 추론 성능 향상
다양한 하드웨어 및 운영 체제에서 실행
Python으로 학습하고 C#/C++/Java 앱에 배포
다양한 프레임워크로 생성된 모델을 사용하여 학습 및 추론 수행

 

 

  1.2  작동 방식

 

기본 원리는 간단합니다.

모델을 준비합니다. 이 모델은 ONNX 형식으로 내보내기/변환을 지원하는 모든 프레임워크에서 학습할 수 있습니다. 인기 있는 프레임워크/라이브러리에 대한 튜토리얼을 참조하세요.

ONNX 런타임을 사용하여 모델을 로드하고 실행합니다. 다양한 언어로 작성된 모델을 실행하는 기본 튜토리얼을 참조하세요.

(선택 사항) 다양한 런타임 구성 또는 하드웨어 가속기를 사용하여 성능을 최적화합니다. 다양한 옵션이 있으므로 성능 섹션을 참조하세요.

3단계를 거치지 않더라도 ONNX Runtime은 기존 프레임워크에 비해 성능 향상을 제공하는 경우가 많습니다.

ONNX Runtime은 모델 그래프에 여러 그래프 최적화를 적용한 후, 사용 가능한 하드웨어별 가속기를 기반으로 그래프를 서브그래프로 분할합니다. ONNX Runtime 코어의 최적화된 연산 커널은 성능 향상을 제공하며, 할당된 서브그래프는 각 실행 공급자(Execution Provider)로부터 추가적인 가속을 받습니다.

 

 

  1.3  모델 검증

 

ONNX Runtime과 함께 사용하는 모든 모델은 정확성, 성능 및 사용 목적에의 적합성을 포함하여 테스트 및 검증을 거쳐야 합니다. ONNX Runtime은 모델이 ONNX 사양을 준수하는지 검증합니다. 그러나 불필요하게 많은 양의 메모리나 컴퓨팅 리소스를 소비하는 악의적인 모델을 구축할 수도 있습니다. 신뢰할 수 없는 출처에서 제공된 모델을 사용하는 경우, 프로덕션 환경에서 사용하기 전에 안전한 환경에서 모델을 검사하고 테스트하는 것이 좋습니다.

 

 

 

  2. ONNX 설치

 

  2.1  Android에 설치

 

JAVA/KOTLIN
Android Studio 프로젝트에서 다음 부분을 수정하세요.

 

1. build.gradle (Project):

 
  repositories {
          mavenCentral()
  }
 

 

2. build.gradle (Module):

 
  dependencies {
          implementation 'com.microsoft.onnxruntime:onnxruntime-android:latest.release'
  }
 

 


C/C++

MavenCentral에서 onnxruntime-android AAR 파일을 다운로드하고, 파일 확장자를 .aar에서 .zip으로 변경한 후 압축을 해제하세요. 헤더 폴더의 헤더 파일과 jni 폴더의 관련 libonnxruntime.so 동적 라이브러리를 NDK 프로젝트에 포함시키세요.


사용자 지정 빌드

 custom Android 패키지 생성 지침을 참조하세요.

 

 

  2.2  On-Device Training용 설치

 

별도로 명시되지 않는 한, 이 섹션의 설치 지침은 온디바이스 학습을 수행하도록 설계된 사전 구축된 패키지를 기준으로 합니다.
사전 구축된 학습 패키지가 모델을 지원하지만 크기가 너무 큰 경우, custom training build를 생성할 수 있습니다.

 

오프라인 단계 : 학습 준비

 
  python -m pip install cerberus flatbuffers h5py numpy>=1.16.6 onnx packaging protobuf sympy setuptools>=41.4.0
  pip install -i mhttps://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT/pypi/simple/ onnxruntime-training-cpu
 

 

 

학습단계 - On-Device Training

Device Language PackageName Installation Instructions
Windows C, C++, C# Microsoft.ML.OnnxRuntime.Training dotnet add package Microsoft.ML.OnnxRuntime.Training
Linux C, C++ onnxruntime-training-linux*.tgz
  • Download the *.tgz file from here.
  • Extract it.
  • Move and include the header files in the include directory.
  • Move the libonnxruntime.so dynamic library to a desired path and include it.
  Python onnxruntime-training pip install onnxruntime-training
Android C, C++ onnxruntime-training-android
  • Download the onnxruntime-training-android (full package) AAR hosted at Maven Central.
  • Change the file extension from .aar to .zip, and unzip it.
  • Include the header files from the headers folder.
  • Include the relevant libonnxruntime.sodynamic library from the jni folder in your NDK project.
  Java/Kotlin onnxruntime-training-android In your Android Studio Project, make the following changes to: 
  1. build.gradle (Project): repositories { mavenCentral() } 
  2. build.gradle (Module): dependencies { implementation 'com.microsoft.onnxruntime:onnxruntime-training-android:latest.release' } 
iOS C, C++ CocoaPods: onnxruntime-training-c
  • In your CocoaPods Podfile, add the onnxruntime-training-c pod:
  • Run pod install.
  Objective-C CocoaPods: onnxruntime-training-objc
  • In your CocoaPods Podfile, add the onnxruntime-training-objc pod:
  • Run pod install. 
Web JavaScript,
TypeScript
onnxruntime-web
  • Use either import * as ort from 'onnxruntime-web/training'; or const ort = require('onnxruntime-web/training');

 

 

 

 

 

 

 

 

'Project ES > : : ONNX' 카테고리의 다른 글

ONNX Tutorial  (0) 2026.05.01
ONNX Runtime 설치  (0) 2026.04.30