트레이딩을 위한 ONNX 학습 - 페이지 14

 

ONNX Runtime으로 유연한 하드웨어에서 최적의 추론



ONNX Runtime으로 유연한 하드웨어에서 최적의 추론

이 자습서에서는 ONNX Runtime을 사용하여 CPU, GPU 및 OpenVINO에 모델을 배포하는 방법을 다룹니다. 발표자는 유연한 하드웨어에서 추론하기 위해 OpenVINO를 비롯한 다양한 실행 공급자의 사용을 보여줍니다. 추론을 위한 코드는 기본적으로 모든 환경에서 동일하며 주요 차이점은 실행 공급자입니다. ONNX Runtime은 CPU 및 GPU에서 PyTorch보다 빠르게 추론을 수행하며 OpenVINO용으로 별도의 ONNX Runtime 라이브러리가 존재합니다. 전반적으로 이 자습서에서는 ONNX Runtime을 사용하여 다양한 하드웨어 옵션에 모델을 배포하는 방법에 대한 개요를 제공합니다.

  • 00:00:00 이 섹션에서 발표자는 가상 환경을 설정하고 ONNX Runtime을 사용하여 CPU, GPU 및 OpenVINO에서 ResNet50 모델에 대한 추론을 수행하는 과정을 거칩니다. 발표자는 ONNX Runtime이 호환되는 가속기를 감지하면 GPU를 사용하고, 그렇지 않으면 기본적으로 CPU를 사용한다고 언급합니다. 추론을 위한 코드는 세 가지 환경 모두에서 기본적으로 동일하며 주요 차이점은 실행 공급자를 변경하는 것입니다. 발표자는 ONNX Runtime이 CPU 및 GPU에서 PyTorch보다 빠르게 추론을 수행할 수 있음을 보여주고 OpenVINO용 별도의 ONNX Runtime 라이브러리가 있음을 언급합니다.

  • 00:05:00 이 섹션에서 연사는 ONNX Runtime을 사용하여 유연한 하드웨어에서 추론하기 위해 CPU에서 OpenVINO 및 OpenVino와 같은 다양한 실행 공급자를 사용하는 방법을 보여줍니다. 실행 공급자를 OpenVINO로 설정하면 동일한 코드가 30ms와 약 0.78의 CPU 사용률을 제공합니다. 이 자습서는 ONNX Runtime을 사용하여 CPU, GPU 및 OpenVINO에 모델을 배포하는 방법에 대한 개요를 제공합니다.
Optimal Inferencing on Flexible Hardware with ONNX Runtime
Optimal Inferencing on Flexible Hardware with ONNX Runtime
  • 2022.08.22
  • www.youtube.com
Check out this video and blog on how to inference ResNet with CPU, GPU or OpenVINO by our intern Kevin Huang!Blog: https://onnxruntime.ai/docs/tutorials/acce...
 

ONNX를 사용한 Flink의 기계 학습 추론



ONNX를 사용한 Flink의 기계 학습 추론

이 동영상에서는 기계 학습 추론에서 ONNX를 사용하고 이를 분산 컴퓨팅 프레임워크인 Flink에 배포할 때의 이점과 구현에 대해 설명합니다. 모델 교육과 프로덕션 추론 사이의 문제 분리, 입력 및 출력에 대한 사양을 정의하는 기능, 언어 독립성 덕분에 ONNX는 데이터 과학자에게 유용한 도구입니다. 이 비디오는 ONNX 모델을 Flink에 로드하는 방법을 시연하고 풍부한 맵 기능의 핵심 구성 요소를 제공하며 jar 파일을 사용하여 모델을 코드와 함께 묶는 방법을 설명합니다. 연사는 또한 메모리 관리, 배치 최적화, ONNX를 사용한 하드웨어 가속과 같은 고려 사항을 다루고 Flink의 실시간 기계 학습 추론에 대한 이점을 강조합니다.

  • 00:00:00 비디오의 이 섹션에서 Colin Germain은 사이버 공격 탐지 도메인의 장난감 예제를 사용하여 실시간 기계 학습 추론의 중요성을 설명합니다. 그는 사건을 감지하기 위해 기다리는 것이 어떻게 중요한 데이터 유출을 놓칠 수 있는지 설명합니다. 또한 그는 외부 공격자가 사용하는 다양한 유형의 기술과 익스플로잇의 변형을 캡처하는 데 머신 러닝이 필수적인 이유를 설명합니다. 마지막으로 그는 Flink에서 분산 컴퓨팅을 사용하여 솔루션을 확장하는 것의 중요성을 강조합니다. Colin은 솔루션에서 중요한 역할을 하는 ONNX 모델을 소개하고 PyTorch에서 기계 학습 모델을 사용하고 ONNX로 직렬화하여 Flink에 배포하는 방법을 설명합니다.

  • 00:05:00 이 섹션에서 발표자는 기계 학습 파이프라인에서 Open Neural Network Exchange를 나타내는 ONNX를 사용할 때의 이점을 설명합니다. ONNX를 사용하면 모델 교육 단계와 프로덕션 추론 단계 사이의 문제를 분리할 수 있으므로 데이터 과학자가 Python에서 모델을 개발한 다음 다양한 추론 도구와 함께 ONNX 모델을 사용할 수 있습니다. ONNX는 기계 학습에 사용할 방향성 비순환 그래프의 계산을 정의하는 계약을 제공합니다. 그래프의 각 연산자에는 버전이 있으므로 이전 버전과의 호환성 및 향후 지속적인 서비스가 가능합니다. 발표자는 또한 간편한 배포를 위해 스트리밍 프레임워크 Apache Flink로 ONNX 모델을 패키징하는 이점에 대해 언급합니다.

  • 00:10:00 비디오의 이 섹션에서 연사는 입력 및 출력에 대한 사양을 정의하는 기능과 ONNX 런타임 라이브러리에서 모델의 모든 버전에 대한 지원을 포함하여 기계 학습 추론에 ONNX를 사용할 때의 이점에 대해 설명합니다. ONNX의 언어 독립성과 대부분의 ML 프레임워크에 대한 변환기의 가용성으로 인해 모델을 ONNX로 쉽게 가져올 수 있으며 발표자는 진단 목적으로 netron을 사용할 것을 제안합니다. 마지막으로 발표자는 교육 없이 종단 간 처리를 위해 ONNX와 함께 파이 토치 모델을 사용하는 간단한 예를 제시합니다.

  • 00:15:00 이 섹션에서 발표자는 계산을 정의하는 데 사용되는 순방향 방법과 높은 토크에서 훈련을 위한 기울기의 역전파를 관리하는 데 사용되는 방법에 대해 설명합니다. 정의된 값으로 텐서를 오프셋하는 추가 오프셋 클래스를 사용하는 기본 예제가 설명됩니다. 그런 다음 스피커는 ONNX로 내보내기와 동적 모델에 대한 올바른 입력 제공의 중요성에 대해 논의합니다. ONNX 모델은 Scala의 ONNX 런타임 환경 및 세션을 사용하여 메모리에 로드되므로 모델에서 추론을 수행할 수 있습니다. 추론에 사용하기 위해 로드된 모델을 보유하기 위해 클래스가 생성됩니다.

  • 00:20:00 이 섹션에서 발표자는 바이트 배열과 로드 방법을 사용하여 ONNX 모델을 Flink에 로드하는 방법을 설명합니다. 또한 리치 맵 기능을 사용하여 로드된 모델을 유지하고 깨끗하고 조직적인 방식으로 추론을 수행하는 방법을 보여줍니다. 발표자는 ONNX 텐서 설정, 입력 및 출력 정의, 결과를 얻기 위한 모델 세션 실행을 포함하여 리치 맵 기능의 핵심 구성 요소를 살펴봅니다. 여러 출력을 지원하도록 코드를 수정할 수 있으므로 다양한 유형의 모델에 대한 유연한 솔루션이 될 수 있습니다. 마지막으로 연사는 ONNX 모델의 패키징 측면을 다루며 코드가 포함된 jar 파일과 함께 번들로 제공되어 외부 엔드포인트에 연결하거나 다른 소스에서 파일을 다운로드할 필요가 없도록 하는 방법을 설명합니다.

  • 00:25:00 이 섹션에서 연사는 MNIST로 알려진 손으로 쓴 숫자를 분류하는 고전적인 문제를 사용하여 Flink에서 기계 학습 추론의 예를 논의합니다. 28x28 픽셀 배열을 분류하는 데 사용되는 PyTorch 모델과 이전과 동일한 배치 크기 조정 접근 방식을 사용하여 Flink에서 사용하기 위해 ONNX 그래프로 변환하는 방법을 보여줍니다. 그런 다음 스피커는 NLP의 변환기, 특히 단어 어휘에 대해 사전 훈련된 더 작은 버전의 BERT를 사용하는 기계 학습의 또 다른 예에 대해 논의합니다. 변환기 모델은 감정, 번역 및 기타 단어 작업을 예측하는 데 사용되며 Flink에서 새로운 예측 작업을 위해 추가로 훈련할 수 있습니다.

  • 00:30:00 이 섹션에서 발표자는 Hugging Face Transformers 라이브러리를 선보입니다. 이를 통해 사전 훈련된 모델을 쉽게 가져오고 Python에서 전이 학습할 수 있습니다. 이러한 모델은 큰 경향이 있지만 라이브러리에는 성능을 향상시키기 위한 최적화 및 양자화 기능이 포함되어 있습니다. 그러나 토큰화와 같은 사전 처리 단계는 아직 그래프의 일부가 아니며 scala에서 액세스할 수 없을 수도 있습니다. 발표자는 또한 Flink에서 Scala 언어의 전체 기능을 활용하는 동시에 교육 의존성을 프로덕션 추론과 분리하고 두 부분을 효과적으로 분리함으로써 얻을 수 있는 이점을 강조합니다. 전반적으로 모델 크기 및 전처리 문제와 같은 몇 가지 단점이 있지만 이 방법은 Flink의 기능을 활용하고 JAR 파일에 배포하는 측면에서 이점을 제공합니다.

  • 00:35:00 이 섹션에서 연사는 ONNX와 함께 Flink에서 기계 학습 추론을 사용할 때 염두에 두어야 할 몇 가지 중요한 고려 사항이 있다고 언급합니다. 하나는 수백 메가바이트를 차지할 수 있는 변압기 모델과 같은 대형 모델을 다룰 때 신중한 메모리 관리입니다. 또한 GPU 사용과 같은 배치 최적화 및 하드웨어 가속은 성능에 영향을 미칠 수 있습니다. 전처리는 사용자 지정 ONNX 그래프로 수행할 수 있지만 추가 작업이 필요하며 이전에 표시된 것처럼 쉽지 않습니다. 발표자는 ONNX가 Flink에서 실시간 머신 러닝을 가능하게 하고 Python 교육 코드를 Scala 프로덕션 코드와 잘 분리하여 데이터 과학자에게 유리할 수 있다고 강조합니다. 연사는 또한 TensorFlow 기반 모델과 함께 ONNX를 사용하는 것과 Java API, PyTorch 또는 TensorFlow 대신 ONNX를 선택한 이유에 대한 질문에 답합니다.

  • 00:40:00 이 섹션에서 발표자는 ONNX를 언어에 구애받지 않는 그래프에 대한 프레임워크에 구애받지 않는 스키마로 이야기합니다. 연사는 ONNX 사용의 흥미로운 속성 중 하나가 PyTorch를 사용하고 있고 TensorFlow로 전환하려는 경우 ONNX를 "수단"으로 사용하여 두 프레임워크 사이를 이동할 수 있다는 점이라고 언급했습니다. 이는 프레임워크의 유연성을 보여줍니다. 청중은 발표자가 TensorFlow의 Scala 프로젝트로 TensorFlow 모델을 실험했는지 물었고 그는 부정적으로 응답했습니다. 마지막으로 연사는 청중을 초대하여 ONNX 저장소를 방문하거나, GitHub에서 문제를 만들거나, 특히 채용에 대한 질문이 있는 경우 LinkedIn에서 그에게 연락합니다.
Machine Learning Inference in Flink with ONNX
Machine Learning Inference in Flink with ONNX
  • 2021.05.20
  • www.youtube.com
What is the best way to run inference on a machine learning model in your streaming application? We will unpack this question, and explore the ways to levera...
 

ONNX로 온라인 쇼핑 경험 개선



ONNX로 온라인 쇼핑 경험 개선

이 비디오는 전자 상거래 회사가 AI를 사용하여 온라인 소매 공간에서 승패를 구분하는 영향력 있는 통찰력을 생성하는 방법에 대해 설명합니다. 발표자는 총 80억 개 이상의 총 리뷰를 제공하는 최대 브랜드 및 소매업체 네트워크인 Bazaar Voice의 예와 제품 매칭을 사용하여 리뷰를 공유하는 방법을 제공합니다. 그런 다음 발표자는 Python에서 기계 학습 모델을 개발하고 ONNX 형식으로 내보낸 다음 ONNX 런타임에서 추론을 실행하기 위해 노드 환경을 사용하여 서버리스 기능에 배포한 방법을 설명합니다. 이 솔루션을 사용하면 저렴한 비용을 유지하면서 수천 개의 클라이언트 카탈로그에서 수억 개의 제품을 고속으로 일치시킬 수 있으므로 상당한 비용 절감과 브랜드 및 소매업체를 위한 수백만 건의 추가 리뷰가 가능합니다. 발표자는 ONNX의 기능을 사용하는 더 많은 방법을 탐색하고 미래의 기술 발전을 위한 사용 사례를 공유하도록 시청자를 초대하는 것으로 결론을 내립니다.

  • 00:00:00 이 섹션에서는 상거래의 디지털화로 인해 전자 상거래 회사가 수집하는 데이터의 규모를 소유하고 AI를 사용하여 온라인 소매 공간에서 성공과 실패를 구분하는 영향력 있는 통찰력을 창출하게 되었음을 알 수 있습니다. 한 가지 예는 총 80억 개가 넘는 총 리뷰를 제공하는 세계 최대의 브랜드 및 소매업체 네트워크인 Bazaar Voice의 매달 10억 명의 쇼핑객과 제품 매칭을 통해 리뷰 공유가 어떻게 강화되는지입니다. 구축된 머신러닝 모델의 핵심 기능인 상품 매칭은 고유 식별자를 비교하는 방식으로 이루어지지만 매달 100만 건 이상의 상품 매칭이 수동으로 이루어집니다. 솔루션은 Python으로 구축된 scikit-learn 모델이며 ONNX 형식으로 내보내어 성능을 유지하면서 가장 가볍고 비용 효율적인 솔루션을 구현했습니다.

  • 00:05:00 이 섹션에서 연사는 온라인 쇼핑 경험을 위한 기계 학습 모델을 구현하기 위한 다양한 옵션에 대해 논의하고 서버리스 기능이 저렴한 비용과 쉬운 구현으로 인해 최상의 옵션이라는 결론을 내립니다. 그런 다음 Python에서 모델을 개발하고 ONNX 형식으로 내보내고 노드 환경을 사용하여 서버리스 함수에 배포하여 ONNX 런타임에서 추론을 실행하는 방법을 설명합니다. 이 솔루션의 모듈성은 모든 서비스에 쉽게 연결할 수 있으며 사용된 메모리 및 실행 시간과 같은 메트릭을 사용하여 최적의 메모리 크기를 찾아 비용을 낮추면서 최상의 성능을 보장할 수 있었습니다. 배포 크기 제한과 제한 시간 내 작업이 고려 사항이지만 서버리스 기능과 결합된 ONNX 및 ONNX 런타임의 기능을 통해 수천 개의 클라이언트 카탈로그에서 수억 개의 제품을 고속으로 일치시킬 수 있으므로 상당한 비용 절감과 1,500만 브랜드 및 소매업체를 위한 추가 리뷰.

  • 00:10:00 이 섹션에서 발표자는 시청자에게 ONNX의 기능을 사용하고 사용 사례를 공유하는 더 많은 방법을 탐색하도록 초대하여 비디오를 마무리합니다. 이 분야에서 활발히 활동하는 사람으로서 연사는 이러한 기술이 미래에 우리를 어디로 데려갈지 흥미를 느끼고 있습니다.
Improving the online shopping experience with ONNX
Improving the online shopping experience with ONNX
  • 2022.07.13
  • www.youtube.com
Building and deploying AI solutions to the cloud at scale is complex. With massive datasets and performance considerations - finding a harmonious balance is ...
 

DSS 온라인 #4: ONNX를 사용한 엔드 투 엔드 딥 러닝 배포


DSS 온라인 #4: ONNX를 사용한 엔드 투 엔드 딥 러닝 배포

이 동영상에서는 다양한 언어, 프레임워크, 종속성, 성능 변동성 관리, 팀 간 마찰, 독점 형식 고정 등 엔드 투 엔드 딥 러닝 배포의 문제에 대해 설명합니다. ONNX(Open Neural Network Exchange)는 딥 러닝 직렬화를 위한 프로토콜 버퍼 기반 형식으로 도입되었습니다. 주요 딥 러닝 프레임워크를 지원하고 모델 실행을 위한 독립형 아티팩트를 제공합니다. ONNX ML은 기존 기계 학습 사전 처리를 지원하는 ONNX 사양의 일부로도 논의됩니다. ONNX의 한계는 인정되지만 다양한 차원의 언어, 프레임워크, 런타임 및 버전에 걸쳐 진정한 이식성을 제공하는 대규모 조직의 강력한 지원으로 빠르게 성장하는 프로젝트로 간주됩니다.

  • 00:00:00 이 섹션에서는 IBM의 수석 엔지니어인 Nick Pentreath가 Open Neural Network Exchange를 사용한 종단 간 딥 러닝 배포를 소개합니다. 기계 학습 워크플로우에는 데이터 분석, 모델을 위한 전처리, 모델 교육, 실제 애플리케이션에 배포, 유지 관리 및 모니터링을 포함하여 많은 단계가 있습니다. Pentreath는 워크플로가 여러 팀과 도구에 걸쳐 있는 방식에 대해 논의하여 모델을 제공하는 인프라를 갖추는 것이 필수적입니다.

  • 00:05:00 이 섹션에서 발표자는 기계 학습 배포에 중요한 세 가지 질문인 무엇을 배포하고 어디에 배포하고 어떻게 배포하는지에 대해 논의합니다. 기계 학습 모델의 배포에는 변환, 기능 추출 및 사전 처리를 포함하여 훈련된 모델에 선행하는 전체 단계 세트의 통합이 포함됩니다. 모든 차이로 인해 치명적인 결과를 초래할 수 있는 데이터 왜곡이 발생할 수 있으므로 실제 환경에서 훈련 중에 사용되는 것과 동일한 전처리 단계를 적용하는 것이 필수적입니다. 발표자는 딥 러닝조차도 여전히 신중한 사전 처리 및 기능 엔지니어링이 필요하다고 지적하고 사전 처리의 표준화와 함께 발생하는 문제를 강조합니다. 이러한 문제에는 미묘하지만 예측에 상당한 영향을 미칠 수 있는 다양한 프레임워크 간의 다양한 데이터 레이아웃 및 색상 모드가 포함됩니다.

  • 00:10:00 이 섹션에서는 비디오에서 다양한 언어, 프레임워크, 종속성 및 성능 가변성을 관리하고 연결하는 것과 팀 간의 마찰을 포함하여 엔드 투 엔드 딥 러닝 파이프라인을 배포할 때 발생하는 문제에 대해 설명합니다. , 오픈 소스 프레임워크 간의 표준화 부족 및 독점 형식 고정. 컨테이너 기반 배포는 상당한 이점을 제공하지만 여전히 일종의 제공 프레임워크가 필요하며 표준화 문제를 해결하지 못합니다. 그렇기 때문에 비디오는 개방형 표준을 사용하여 다른 프레임워크에서 표준화된 형식으로 모델을 내보낼 것을 제안합니다. 이렇게 하면 모델 생산자와 모델 소비자 간의 문제가 분리되어 배포 문제 또는 위치에 대한 걱정 없이 각자의 작업에 집중할 수 있습니다. 에서 나온 모델입니다.

  • 00:15:00 이 섹션에서 발표자는 딥 러닝 배포에서 오픈 소스 및 개방형 표준의 중요성에 대해 논의합니다. 그들은 분석 및 시각화를 위한 단일 스택과 표준화된 도구 세트의 이점을 설명하고 가시성을 제공하고 제어 집중을 방지하는 데 있어 개방형 거버넌스의 중요한 역할을 강조합니다. 그런 다음 연사는 딥 러닝에 중점을 둔 기계 학습 모델의 직렬화를 정의하기 위한 프로토콜 버퍼 기반 형식인 개방형 신경망 교환(ONNX)을 소개합니다. ONNX는 PyTorch, Caffe, TensorFlow, Keras, Apple Core ML 및 MXNet과 같은 주요 딥 러닝 프레임워크를 지원하고 모델 실행을 위한 독립형 아티팩트를 제공합니다.

  • 00:20:00 이 섹션에서 발표자는 ONNX ML(머신 러닝)이 시퀀스 및 맵과 같은 추가 유형과 함께 기존 머신 러닝 전처리를 지원하는 ONNX 사양의 일부인 방법에 대해 설명합니다. ONNX는 선형 모델, 트리 앙상블 및 그래디언트 부스팅과 같은 모델뿐만 아니라 다양한 기존 기계 학습 프레임워크용으로 작성된 내보내기 프로그램의 광범위한 커뮤니티 및 에코시스템을 포함합니다. 이 모든 것을 나타내기 위해 ONNX는 모델 제작자와 소비자 사이에 있는 표준 역할을 합니다. ONNX 모델 동물원에는 모두 ONNX 형식으로 표현되는 이미지 분석, 분류, 분할 및 자연어 처리를 포함하여 다양한 도메인에서 널리 사용되는 표준 모델 세트가 포함되어 있습니다. Microsoft의 오픈 소스 프로젝트인 ONNX 런타임은 핵심 딥 러닝과 ONNX ML 연산자를 모두 지원하는 완전히 호환되는 런타임입니다.

  • 00:25:00 이 섹션에서 발표자는 특히 이미지 처리, 고급 문자열 처리 및 해싱 클러스터링 모델과 같은 누락된 특정 기능 측면에서 ONNX의 제한 사항에 대해 논의합니다. 또한 Spark ML과 같은 프레임워크에서 하이브리드 파이프라인을 내보낼 때 어려움이 있으며 이를 위해서는 약간의 사용자 지정 코드가 필요합니다. 그러나 ONNX는 빠르게 성장하고 있는 활성 프로젝트이며 대규모 조직의 강력한 지원을 받고 있습니다. 다양한 차원의 언어, 프레임워크, 런타임 및 버전에서 진정한 이식성을 제공하여 개방적이고 이식 가능한 방식으로 딥 러닝 파이프라인을 배포하는 데 있어 중요한 문제를 해결합니다. ONNX는 오픈 소스 및 개방형 거버넌스이므로 누구나 참여할 수 있습니다.
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
DSS online #4 : End-to-End Deep Learning Deployment with ONNX
  • 2020.10.29
  • www.youtube.com
End-to-End Deep Learning Deployment with ONNXA deep learning model is often viewed as fully self-contained, freeing practitioners from the burden of data pro...
 

Microsoft의 Vinitra Swamy 및 Pranav Sharma를 사용한 ONNX 및 ONNX 런타임



Microsoft의 Vinitra Swamy 및 Pranav Sharma를 사용한 ONNX 및 ONNX 런타임

이 비디오에서는 일련화 및 버전 관리에서 모델을 상호 운용하고 효율적으로 만들기 위해 만든 ONNX(Open Neural Network Exchange) 형식에 대해 설명합니다. ONNX는 중간 표현 계층, 연산자 사양으로 구성되며 다양한 유형의 데이터를 지원합니다. C++ 및 어셈블러로 구현된 ONNX 런타임은 이전 버전과의 호환성을 제공하며 실행 공급자, 사용자 지정 연산자 및 그래프 최적화 프로그램을 통해 확장 가능합니다. API는 플랫폼, 프로그래밍 언어 및 실행 공급자에 대한 지원을 제공합니다. 사용자는 세션을 생성하고, 모델을 최적화하고, 나중에 사용할 수 있도록 직렬화할 수 있습니다. 스피커는 Android 기기에서 실행할 수 있는 기능과 함께 ONNX Runtime의 다재다능함과 효율성을 보여줍니다.

  • 00:00:00 이 섹션에서는 ONNX 엔지니어링 팀의 Venetra가 AI 모델의 상호 운용 가능한 표준인 Open Neural Network Exchange인 ONNX를 소개합니다. 그녀는 Microsoft가 HoloLens에서 Xbox, Skype에 이르기까지 제품군의 거의 모든 측면에 기계 학습을 통합했으며 이로 인해 규모에 따라 다양한 배포 문제가 발생했다고 설명합니다. ONNX는 다양한 프레임워크 및 배포 대상에 대한 모델 배포 프로세스를 표준화하여 효율적인 추론을 위해 최적화하기 위해 만들어졌습니다. 목표는 하나의 표준을 구현하여 여러 프레임워크의 모델을 지원하고 데이터 과학자, 하드웨어 대출 기관, 서비스 작성자 또는 ML 엔지니어 등 모든 사용자에게 일관된 경험을 제공하는 것입니다.

  • 00:05:00 이 섹션에서는 Vinitra Swamy와 Pranav Sharma가 Microsoft, Facebook, Amazon, NVIDIA, Intel 등을 포함하는 창립 파트너 컨소시엄인 ONNX에 대해 논의합니다. ONNX는 중간 표현 계층과 각 프레임워크에 있는 다양한 연산자 집합에도 불구하고 표준 방식으로 연산자를 정의하는 전체 연산자 사양으로 구성됩니다. 모델을 ONNX로 변환하는 코드는 길지 않으며 변환은 추론 및 상호 운용성 측면에서 사용자를 크게 절약할 수 있습니다. 또한 ONNX에는 딥 러닝 및 머신 러닝 모델 모두에 대한 상호 운용성을 가능하게 하는 설계 원칙이 있습니다. 사용자는 ONNX 모델 동물원, 모델 생성 서비스 또는 변환기로 이동하여 ONNX를 시작할 수 있습니다.

  • 00:10:00 섹션에서는 효율적인 직렬화 및 버전 관리를 지원하면서 상호 운용 및 이전 버전과 호환되도록 만든 모델 형식인 ONNX의 구성 요소 및 설계에 대해 설명합니다. 형식은 모델, 노드가 있는 계산 그래프 및 연산자 사양으로 구성됩니다. 지원되는 데이터 유형에는 표준 텐서 유형과 두 가지 비텐서 유형, 시퀀스 및 맵이 포함됩니다. 운영자 사양에는 입력, 출력, 제약 조건 및 예제가 있습니다. relu 연산자에 대한 연산자 사양의 예가 제공됩니다.

  • 00:15:00 비디오의 이 섹션에서 Vinitra Swamy와 Pranav Sharma는 ONNX(Open Neural Network Exchange) 형식에서 지원되는 다양한 버전과 연산자에 대해 논의합니다. 그들은 ONNX에 156개 이상의 딥 러닝 사양 작업과 18개의 기존 기계 학습 작업이 있으며 서로 다른 운영자 간에 상호 운용이 가능하다고 설명합니다. 또한 사용자는 ONNX 프레임워크를 사용하여 모델에 대한 사용자 지정 작업을 만들 수 있습니다. 또한 중간 표현 계층, 오프셋 및 개별 연산자의 세 가지 수준에서 수행되는 버전 관리의 중요성을 강조합니다. 마지막으로 ONNX용 고성능 오픈 소스 추론 엔진인 ONNX Runtime에 대해 논의합니다. 크로스 플랫폼이며 이전 버전과 호환되도록 설계되어 프로덕션 환경에 배포하기에 적합합니다.

  • 00:20:00 이 섹션에서는 ONNX Runtime의 아키텍처와 그 내부에서 모델이 실행되는 방식에 중점을 둡니다. 이전 버전과의 호환성 및 성능은 C++ 및 어셈블러의 일부로 구현되는 ONNX Runtime의 주요 관심사였습니다. ONNX Runtime은 "실행 공급자"라는 것을 사용하여 하드웨어 가속기를 지원합니다. 분할 알고리즘을 사용하면 모델이 하이브리드 실행 단계에서 실행될 수 있으며 개별 실행 공급자는 더 나은 성능을 위해 하위 그래프를 더욱 최적화할 수 있습니다. 마지막으로 ONNX Runtime은 모델을 실행하기 위해 그래프의 모든 노드를 통과하는 인터프리터 역할을 합니다.

  • 00:25:00 이 섹션에서는 연사가 순차 및 병렬인 ONNX 및 ONNX Runtime의 실행 모드에 대해 논의합니다. 사용자는 각 실행 모드에 대해 구성하려는 스레드 수를 제어할 수 있으며 결과는 API를 통해 전송됩니다. 발표자는 서로 다른 장치가 동일한 메모리를 공유하지 않을 수 있으므로 수행된 최적화에 따라 메모리 복사 노드가 삽입된다는 점에 주목합니다. 또한 사용자가 그래프를 실행해야 하는 실행 공급자의 우선 순위 목록을 지정해야 하는 그래프 분할 프로세스에 대해서도 이야기합니다. 그러나 다음 릴리스에는 ONNX가 그래프를 배치하는 가장 좋은 방법과 그래프를 효율적으로 실행하는 방법을 알아내는 스마트 파티셔닝이라는 새로운 단계가 있을 것입니다. 발표자는 또한 하드웨어 가속기 위에 있는 소프트웨어 추상화인 실행 공급자에 대해서도 다룹니다. 두 가지 유형의 실행 공급자는 커널 기반과 런타임 기반이며 후자는 실행 공급자가 그래프의 일부를 실행하는 블랙 박스입니다.

  • 00:30:00 이 섹션에서 연사는 ONNX Runtime의 설계 원칙에 대해 논의하고 실행 공급자, 사용자 지정 연산자 및 그래프 최적화 프로그램과 같은 옵션을 통한 확장성을 강조합니다. 또한 Tensor RT, Direct ML 및 OpenVINO를 포함하여 지원되는 플랫폼, 프로그래밍 언어 및 실행 공급자의 매트릭스를 제공합니다. 연사는 실행 함수를 호출하기 전에 세션 개체를 생성하는 스레드 안전 방식과 세션의 상위 수준 구성에 대해 설명합니다. 또한 모델을 최적화하는 데 걸리는 시간이 모델의 크기와 최적화 기회에 따라 어떻게 달라지는지 논의합니다.

  • 00:35:00 이 섹션에서 연사는 세션 생성과 실행 옵션 및 세션 옵션의 사용에 대해 논의하고 나중에 사용할 수 있도록 최적화된 모델을 직렬화하는 기능을 설명합니다. 또한 C#을 사용하지 않으려는 사용자를 위해 Python을 사용할 수 있는 옵션과 함께 사용자 지정 연산자를 등록하는 프로세스에 대해서도 설명합니다. ONNX Runtime 1.0 버전이 출시되어 앞으로 API가 손상되지 않도록 합니다.
    CentOS 7.6으로 돌아가는 호환성. 최적의 성능을 위해 모델을 변환하고 조정하는 오픈 소스 도구인 ONNX Go Live 도구에 대해서도 설명합니다. 이 섹션은 Office의 누락 결정자 모델에서 14배의 성능 향상과 인지 서비스에 사용되는 광학 문자 인식 모델에서 3배의 성능 향상을 포함하여 ONNX를 활용하는 Microsoft 서비스의 예로 결론을 내립니다.

  • 00:40:00 이 섹션에서는 연사가 ONNX 런타임 API에 대해 논의합니다. ONNX 런타임 API는 미리 보기 모드이며 Android 기기에서 ONNX 런타임을 실행할 수 있습니다. 그들은 또한 현재 탐색적이며 이미 생성된 모델을 조정하는 데 ONNX 런타임을 사용할 수 있는지 확인하는 것을 목표로 하는 교육 지원에 대해서도 언급합니다. 그런 다음 스피커는 YOLOv3 개체 감지 모델에서 ONNX 런타임을 사용하는 데모를 제공하여 ONNX 런타임이 우수한 성능이 필요하거나 다양한 프레임워크에서 모델을 지원해야 하는 경우에 다목적이고 효율적이며 유용함을 보여줍니다.

  • 00:45:00 비디오의 이 섹션에서 발표자는 크고 복잡한 모델로 이미지와 해당 클래스를 식별하여 ONNX 런타임을 시연합니다. 또한 사용자가 Jupyter Notebook의 다양한 프레임워크에서 모델을 업로드하고 변환할 수 있도록 Onnx Ecosystem Converter에 대한 빠른 데모를 보여줍니다. 그들은 Apple의 기계 학습 프레임워크인 CoreML에서 ONNX로 문서 분류 모델을 변환하고 그 정확성을 검증합니다. 그들은 모델을 ONNX로 변환하는 일회성 비용이며 효율적인 프로세스라고 지적합니다.

  • 00:50:00 이 섹션에서 연사는 ONNX 및 ONNX Runtime 사용의 이점, 다양한 프레임워크에서 ONNX로 변환하는 다양한 방법, 26개 네트워크에서 ONNX 채택 증가 등 비디오에서 다룬 내용을 요약합니다. 회사. 그들은 경청해 준 청중들에게 감사를 표하며 Q&A 세션을 계속할 수 있다는 기대감을 표현했습니다.
ONNX and ONNX Runtime with Microsoft's Vinitra Swamy and Pranav Sharma_1
ONNX and ONNX Runtime with Microsoft's Vinitra Swamy and Pranav Sharma_1
  • 2020.07.30
  • www.youtube.com
Microsoft hosted an AI enthusiast’s meetup group in San Francisco in November 2019 focused on accelerating and optimizing machine learning models with ONNX a...
 

Jan-Benedikt Jagusch Christian Bourjau: ONNX로 기계 학습 애플리케이션을 빠르고 간단하게 만들기



Jan-Benedikt Jagusch Christian Bourjau: ONNX로 기계 학습 애플리케이션을 빠르고 간단하게 만들기

기계 학습 및 배포에 관한 이 비디오에서 연사는 모델을 생산에 투입하는 문제, 특히 모델 피클링 및 배포의 어려움에 대해 논의합니다. 그들은 머신 러닝 모델을 내보내기 위한 범용 파일 형식인 ONNX를 소개하고 이것이 교육과 추론을 분리하여 배포를 더 빠르고 효율적으로 만드는 데 어떻게 도움이 되는지 설명합니다. scikit-learn을 사용하여 기계 학습 파이프라인을 ONNX 형식으로 변환하는 방법을 설명하는 라이브 데모를 제공합니다. 또한 기계 학습 모델을 배포하기 위한 Docker 컨테이너의 제한 사항에 대해 논의하고 대신 ONNX를 사용할 때의 이점을 강조합니다. 그들은 추가 보안을 위한 암호화 모델 주제를 다루고 몇 가지 암호 오류 메시지가 있는 아직 젊은 에코시스템인 ONNX의 사용성 문제를 해결합니다.

  • 00:00:00 비디오의 이 섹션에서 발표자는 ONNX를 사용하여 추론에서 모델 교육을 분리하는 것의 중요성에 대해 논의합니다. 발표자들은 기계 학습을 시작한 기업의 55%가 모델을 생산에 투입하는 데 실패했다고 지적하고 모델을 생산에 투입하여 비즈니스 프로세스를 자동화하는 것이 대부분의 가치가 있는 곳이라고 주장합니다. 그러나 그들은 또한 모델 배포가 처음에 보이는 것보다 더 복잡하다는 점에 주목합니다. 그래서 ONNX가 이 문제를 극복하는 데 어떻게 도움이 될 수 있는지 논의할 것입니다. 또한 기계 학습 프로젝트가 일반적으로 시작, 개발 및 배포 요구 사항과 충돌하는 프로세스를 안내합니다.

  • 00:05:00 이 섹션에서는 연사들이 머신 러닝 모델을 프로덕션에 적용하는 데 따르는 문제, 특히 모델 피클링 및 배포의 어려움에 대해 논의합니다. 피클과 같은 미완성 패키지를 사용하여 모델을 전송할 때 발생하는 문제와 프로덕션에서 모델을 성공적으로 로드하기 위해 올바른 환경과 종속성을 설치해야 하는 방법을 살펴봅니다. 또한 프로덕션에서 사용하기에는 모델이 너무 느려서 모델을 변경하고 최적화하는 문제를 해결합니다. 마지막으로 모델을 내보내기 위한 범용 파일 형식의 필요성에 대해 논의하여 모든 런타임을 배포에 쉽게 사용할 수 있도록 합니다.

  • 00:10:00 이 섹션에서 연사는 배포에 사용되는 도구를 확보하기 위해 기계 학습 모델을 ONNX와 같은 범용 파일 형식으로 내보내는 훈련 도구를 사용하여 예측 시간에서 훈련을 분리하는 개념에 대해 논의합니다. . 그들은 ONNX가 "기능 엔지니어링을 포함하여 전체 모델을 설명하고 이진 형식으로 저장하는 표준화된 방법"이라고 설명합니다. 그들은 또한 ONNX가 신경망뿐만 아니라 다양한 유형의 기계 학습 모델을 가진 사람들에게 좋은 옵션이라는 점에 주목합니다. 그러나 그들은 ONNX를 사용하기 위해서는 기계 학습 모델을 연산자인 노드와 그래프를 통해 흐르는 데이터인 에지를 갖는 계산 그래프로 설명해야 하며 ONNX는 유형 정보 및 모양으로 강력하게 유형화된다는 점을 강조합니다.

  • 00:15:00 이 섹션에서는 연사가 형식과의 호환성을 보장하기 위해 사용해야 하는 일련의 연산자를 정의하는 ONNX의 세부 사항에 대해 논의합니다. 이 강연 당시에는 선형 회귀 분석기 및 진정한 앙상블 회귀 분석기와 같은 더 복잡한 연산자를 포함하여 175개의 연산자가 있었습니다. ONNX는 또한 각 연산자를 저장하는 데 필요한 데이터를 지정하여 다른 종속성이 필요 없이 전체 파일을 독립적으로 만듭니다. 연사는 기계 학습 모델뿐만 아니라 방향성 비순환 그래프에서 표현할 수 있는 모든 것을 ONNX로 변환할 수 있다고 강조합니다. 또한 각 단계가 고유한 방향성 비순환 그래프로 표시될 수 있는 한 전체 파이프라인을 ONNX 로 변환할 수 있습니다.

  • 00:20:00 이 섹션에서 발표자는 onyx 연산자의 그래프로 쉽게 정의할 수 있는 numpy 연산을 사용하여 간단한 imputer 및 regressor를 만드는 방법을 시연합니다. scikit-learn 그래프의 모든 노드를 그래프 자체로 교체하면 scikit-learn을 onix 형식으로 변환할 수 있습니다. PyTorch, TensorFlow, Light GBM 및 XGBoost와 같은 기존 기계 학습 프레임워크에는 이미 변환기가 있지만 사용자 지정 변환기는 사용자 지정 추정기 및 변환기용으로 작성되어야 합니다. 그러나 학습 곡선은 가파르지만 실현 가능하며 사용자 지정 코드가 데크에 맞는 것이 중요합니다. 연사는 훈련 데이터와 scikit-learn의 파이프라인을 사용하여 라이브 데모를 제공한 다음 onix 형식으로 변환합니다.

  • 00:25:00 이 섹션에서 Jan-Benedikt Jagusch와 Christian Bourjau는 ONNX가 강력한 형식이며 제공되는 데이터의 초기 정보가 필요하다고 설명합니다. 이 프로세스를 단순화하기 위해 pandas 데이터 유형을 ONNX 데이터 유형에 매핑하여 pandas 데이터 프레임에서 유형을 쉽게 변환합니다. 그런 다음 ONNX 모델은 파이프라인의 예측 논리에서 추출되어 완전히 독립적입니다. 데이터 엔지니어링 팀은 이를 파일에 덤프하고 ONNX 런타임을 사용하여 데이터를 분석하기만 하면 됩니다. 이는 TensorFlow, Python 또는 다른 곳에서 직렬화되는 데이터 모델에 관계없이 유일한 종속성입니다. ONNX 런타임은 예측 속도를 최대 10배까지 향상시키는 Python 바인딩을 제공합니다. 단일 행 예측 속도도 Scikit-learn과 유사한 170밀리초 밖에 걸리지 않는 온라인 환경에서 필수적이므로 우선 순위입니다.

  • 00:30:00 이 섹션에서는 연사가 Onyx를 사용하여 배포 환경에서 교육 환경을 분리할 때의 이점에 대해 논의합니다. 그들은 모델을 ONNX의 범용 파일 형식으로 내보냄으로써 사용자가 실제 배포에 필요한 성능 특성을 제공하는 런타임을 사용하여 모델을 해석할 수 있다고 설명합니다. 또한 발표자는 Docker 컨테이너 사용에 대한 질문에 답하면서 확장성과 유연성 측면에서 한계를 강조합니다. 그들은 모델을 보관하고 배포를 개선할 수 있는 잠재력과 함께 성능과 유연성을 모두 제공하는 능력에 대해 onyx를 조사할 것을 권장합니다.

  • 00:35:00 이 섹션에서는 연사가 기계 학습 모델을 배포하는 데 Docker를 사용할 때의 제한 사항에 대해 논의하고 대신 모델을 ONNX로 직렬화할 때의 이점을 강조합니다. Docker는 REST API를 제공하기 위해 작동할 수 있으며 경우에 따라 생성된 아티팩트에는 많은 계층이 포함되어 있어 모델의 수학적 공식을 로드하기 어렵습니다. 반면 모델을 ONNX로 직렬화하면 사람이 읽을 수 있고 로드하기 쉬운 모델의 순수한 본질이 제공됩니다. 연사는 ONNX에 많은 이점이 있지만 모든 사용 사례에 대한 완벽한 솔루션은 아니며 사용자 지정 추정기와 변환기를 변환하는 데 약간의 오버헤드가 필요하다고 경고합니다. 또한 생태계는 아직 비교적 새롭기 때문에 사용자는 문제를 해결하거나 GitHub 문제를 읽는 데 시간을 할애해야 할 수 있습니다. 마지막으로 연사는 기본 ONNX 런타임으로 기술적으로 가능한 GPU에 ONNX 모델을 배포할 가능성에 대해 간략하게 언급합니다.

  • 00:40:00 이 섹션에서 연사는 의도하지 않은 사용이나 리버스 엔지니어링으로부터 보호하기 위해 ONNX 모델을 암호화할 수 있는 가능성에 대해 논의합니다. 그들은 모델에서 계수를 읽을 수 있지만 복잡할 경우 ONNX가 연산자 및 파이프라인 정보를 보존하지 않기 때문에 어려워진다고 언급합니다. ONNX는 어느 정도 난독화를 통해 보안을 제공하지만 암호화되지는 않습니다. 그러나 그들은 난독화 및 추가 보안을 위해 파일을 기계 코드로 컴파일하는 것이 가능하다고 언급합니다. 연사는 또한 데이터베이스에 대한 I/O가 있는 전처리 단계를 두는 문제를 해결합니다. 그러면 ONNX 그래프 내부의 인스턴스화를 위해 모든 데이터가 데이터베이스에 있어야 합니다. 마지막으로 오닉스의 사용성 문제에 대해 논의합니다. 오류 메시지가 모호할 수 있기 때문입니다. 그러나 그들은 어린 나이와 기업 지원을 고려할 때 생태계가 개선될 것이라고 낙관합니다.
 

에지 및 클라우드에서 하이브리드 추론을 위한 ONNX Runtime Azure EP



에지 및 클라우드에서 하이브리드 추론을 위한 ONNX Runtime Azure EP

ONNX Runtime 팀은 개발자가 장치 연결 문제를 제거하고 개발자가 최적화한 클라우드 모델로 전환할 수 있도록 하는 Azure EP를 통해 개발자가 에지 및 클라우드 컴퓨팅 모두에 단일 API를 사용할 수 있도록 하는 하이브리드 세계로의 첫 번째 단계를 출시했습니다. , 비용 절감 및 대기 시간 감소. 이 새로운 기능을 통해 개발자는 애플리케이션 논리를 업데이트하고 Azure EP를 통해 선택할 경로를 선택하여 더 많은 기능과 성능을 제공할 수 있습니다. 이 팀은 어린이 서버 및 개체 감지 모델의 배포와 끝점을 테스트하고 Onnx Runtime Azure를 간단하게 구성하는 방법을 시연합니다. 발표자는 또한 로컬 및 원격 처리 간 전환 기능과 저성능 모델과 고성능 모델을 포함한 잠재적 사용 사례에 대해 논의합니다. ONNX Runtime Azure EP는 배포에 필요한 패키지로 쉽게 사전 로드 및 구성할 수 있으므로 소프트웨어 사용 편의성에 기여합니다.

  • 00:00:00 이 섹션에서는 개발자가 에지 컴퓨팅과 클라우드 컴퓨팅 모두에 단일 API를 사용할 수 있도록 하는 하이브리드 세계로의 첫 번째 단계인 ONNX 런타임 팀의 Azure EP를 소개합니다. 그렇게 함으로써 개발자는 장치 연결에 대해 걱정할 필요가 없으며 최적화하고 사용 중인 클라우드 모델로 전환하여 비용과 대기 시간을 절약할 수 있습니다. 이 새로운 기능을 통해 개발자는 애플리케이션 논리를 업데이트하고 Azure EP를 통해 사용할 경로를 선택하여 더 많은 기능과 성능을 제공할 수 있습니다. 전반적으로 ONNX 런타임 팀은 개발자 커뮤니티의 의견과 이 새로운 기능이 구현되는 방식을 보게 되어 기쁩니다.

  • 00:05:00 이 섹션에서는 새로운 ONNX Runtime(ORT) 릴리스 1.14의 기여자인 Randy Schrey가 릴리스와 함께 제공되는 몇 가지 멋진 기능을 보여줍니다. 먼저 그는 모델의 서버 쪽 역할을 하는 Azure Machine Learning에서 호출되는 엔드포인트를 보여줍니다. 엔비디아가 양분한 엔드포인트 제공용으로 활용되는 트리톤(Triton) 서버와 인상적인 성능과 안정성에 대해서도 이야기한다. Schrey는 어린이 서버를 배포하는 방법을 보여주고 모델의 이름, 버전 및 위치 지정을 포함하여 어떻게 보이는지에 대한 개요를 제공합니다. 그는 또한 Triton 서버를 배포할 때 따라야 하는 폴더 구조를 강조하고 모델이 입력 및 출력을 가져오는 방법을 설명하는 구성 파일을 보여줍니다.

  • 00:10:00 이 섹션에서 발표자는 개체 감지 모델을 배포하기 위한 폴더 구조에 대해 설명하고 Triton 서버가 배포할 모델을 찾는 방법을 설명합니다. 또한 Azure에서 제공되는 모델 사용에 대한 질문에 답하고 Azure를 통한 Trtis의 현재 제한 사항을 언급하면서 서버 측으로 Triton 서버만 지원한다고 말합니다. 그런 다음 발표자는 엔드포인트 테스트, Onnx Runtime Azure를 간단히 설치하는 프로세스, Onnx Runtime Azure for Hybrid Inferencing on Edge 및 Cloud를 사용하여 클라이언트 측에서 온라인 엔드포인트와 작업하는 방법에 대해 설명합니다. 발표자는 스크립트를 제공하고 Onnx Runtime Azure를 사용하여 모델을 로드하고 사용하는 데 필요한 일부 구성을 설명합니다.

  • 00:15:00 이 섹션에서 발표자는 에지 및 클라우드에서 하이브리드 추론을 위해 ONNX Runtime Azure EP를 사용하는 방법을 시연합니다. 인증 키를 구성하고 추론을 실행하는 방법과 코드에서 단일 매개 변수를 변경하여 로컬 처리와 원격 처리 간에 전환하는 기능을 보여줍니다. 성능이 낮은 모델과 성능이 높은 모델 중에서 선택하는 것과 같은 잠재적인 사용 사례에 대해 논의하고 현재 미리 보기 릴리스에는 Triton 추론 서버가 필요하지만 향후 모든 유형의 배포 서버를 지원할 계획임을 언급합니다.

  • 00:20:00 이 섹션에서는 ONNX Runtime Azure EP를 미리 로드하고 배포에 필요한 패키지로 쉽게 구성할 수 있다고 설명합니다. 이 기능은 소프트웨어의 배포 및 사용을 용이하게 합니다.
ONNX Runtime Azure EP for Hybrid Inferencing on Edge and Cloud
ONNX Runtime Azure EP for Hybrid Inferencing on Edge and Cloud
  • 2023.02.14
  • www.youtube.com
0:00 What is Azure EP?5:00 How to Setup a Triton Inference Server Managed Endpoint in Azure12:45 Installing the ONNX Runtime Azure EP Package13:35 Using the ...
 

ONNX-TensorRT를 사용한 양자화 인식 학습 모델의 INT8 추론




ONNX-TensorRT를 사용한 양자화 인식 학습 모델의 INT8 추론

NVIDIA의 딥 러닝 소프트웨어 엔지니어인 Dheeraj Peri가 양자화의 기본 사항과 TensorRT가 다양한 융합을 통해 양자화된 네트워크를 지원하는 방법을 설명합니다. TensorFlow 2.0 프레임워크를 사용하여 훈련된 모델과 훈련 후 양자화(PTQ) 및 양자화 인식 훈련(QAT)을 수행하는 방법에 중점을 둡니다. ONNX-TensorRT와 함께 Nvidia TF2 양자화 툴킷을 사용하여 훈련된 모델을 배포하는 과정을 설명하고 다양한 ResNet 모델에 대한 정확도 및 대기 시간 결과를 제시합니다. 전반적으로 TensorFlow에서 ONNX-TensorRT를 통한 TensorRT 배포까지의 종단 간 QAT 워크플로가 시연됩니다.

  • 00:00:00 이 섹션에서는 NVIDIA의 딥 러닝 소프트웨어 엔지니어인 Dheeraj가 양자화의 기본 사항과 TensorRT가 다양한 융합을 통해 양자화된 네트워크를 지원하는 방법에 대해 설명합니다. 그는 양자화는 선형 또는 비선형 스케일링 기술을 사용하여 연속 값을 불연속 값 세트로 변환하는 프로세스라고 설명합니다. TensorFlow 2.0 프레임워크를 사용하여 훈련된 모델과 훈련 후 양자화(PTQ) 및 양자화 인식 훈련(QAT)을 수행하는 방법에 중점을 둡니다. Dhiraj는 또한 NVIDIA의 양자화 툴킷과 TF 모드 툴킷의 차이점을 강조합니다. 여기서 노드는 컨볼루션 레이어에서 다르게 배치됩니다.

  • 00:05:00 이 섹션에서는 ONNX-TensorRT와 함께 Nvidia TF2 양자화 도구 키트를 사용하여 훈련된 모델을 배포하는 프로세스를 설명합니다. 이 프로세스에는 Nvidia 툴킷을 사용하여 사전 훈련된 TensorFlow 2.0 모델을 양자화하고 양자화 프로세스를 시뮬레이션하기 위해 적은 수의 에폭에 대해 미세 조정한 다음 모델을 ONNX 형식으로 변환하는 작업이 포함됩니다. 그런 다음 ONNX 그래프는 TensorRT API를 사용하여 TensorRT 엔진을 생성하는 데 사용됩니다. 다양한 ResNet 모델에 대한 정확도 및 대기 시간 결과가 제시되며 추론 중에 양자화 인식 훈련 모델(QAT)이 PTQ(학습 후 양자화) 모델보다 더 나은 정확도를 나타내는 것으로 관찰됩니다. QAT 모델은 PTQ 모델과 비슷한 대기 시간을 보이지만 QDQ 노드의 배치와 융합에 따라 달라집니다. 전반적으로 TensorFlow에서 ONNX-TensorRT를 통한 TensorRT 배포까지의 종단 간 QAT 워크플로가 시연됩니다.
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
INT8 Inference of Quantization-Aware trained models using ONNX-TensorRT
  • 2022.07.14
  • www.youtube.com
Accelerating Deep Neural Networks (DNN) inference is an important step in realizing latencycritical deployment of real-world applications such as image class...
 

ONNX 모델의 실용적인 사후 교육 양자화



ONNX 모델의 실용적인 사후 교육 양자화

이 동영상에서는 양자화를 구현하여 TensorFlow 모델의 크기를 ONNX 양자화 모델로 줄이는 방법을 설명합니다. ONNX 모델은 크기가 훨씬 더 작고 CPU에서 더 빠르게 실행할 수 있습니다. 저자는 동적 양자화를 구현하는 방법과 CPU 속도를 확인하는 방법에 대한 코드 스니펫과 지침을 제공합니다.

영상은 머신러닝 모델을 양자화해 더 빠르고 가볍게 만드는 과정을 보여주면서도 정확도가 떨어질 수 있음을 인정한다. ONNX 및 TensorFlow 모델은 양자화된 모델과 비교되며 후자가 더 빠르고 가벼운 것으로 나타났습니다. 그러나 양자화된 모델은 다른 모델만큼 GPU 사용의 이점이 없습니다. 그런 다음 양자화된 모델의 정확도를 평가한 결과 약간만 떨어지는 것으로 나타났습니다. Loot Rodas Neutron 앱의 사용을 시연하면서 ONNX 모델을 시각화하는 프로세스에 대해서도 설명합니다. 전체적인 프로세스는 정확도 손실을 최소화하면서 모델 크기를 1GB에서 83MB로 줄입니다.

Practical Post Training Quantization of an Onnx Model
Practical Post Training Quantization of an Onnx Model
  • 2023.02.02
  • www.youtube.com
In this section we continue our human emotions detection project. We shall focus on practically quantizing our already trained model with Onnxruntime.Colab N...
 

QONNX: ONNX에서 임의 정밀도 양자화된 NN을 표현하기 위한 제안



QONNX: ONNX에서 임의 정밀도 양자화된 NN을 표현하기 위한 제안

발표자는 무선 통신에서의 응용 사례와 함께 저정밀 양자화에 대해 논의합니다. 그들은 ONNX에서 임의 정밀도 양자화 신경망을 나타내는 방언인 QONNX를 제안합니다. QONNX는 양자화 표현을 단순화하고 더 넓은 시나리오 세트로 확장하며 다양한 반올림 및 이진 양자화 유형에 대한 옵션을 제공합니다. FPGA에 배포하는 데 사용되고 있으며 Brevitas Python 양자화 라이브러리에 통합되며 NQCDQ는 다음 릴리스에 통합될 예정입니다.

  • 00:00:00 이 섹션에서 발표자는 8비트 이하의 양자화를 의미하는 저정밀 양자화의 개념에 대해 이야기합니다. 발표자는 무선 통신을 위한 변조 분류 작업에서 낮은 정밀도의 양자화가 어떻게 사용되었는지에 대한 예를 제공하여 양자화 인식 교육 덕분에 대기 시간을 줄이면서 높은 처리량을 달성했습니다. 발표자는 균일 양자화의 기초를 설명하고 양자화 노드와 역양자화 노드 사이의 정수 경계에 대한 추가 기능으로 클리핑을 사용하여 저정밀 신경망에 대한 ONNX의 표현 능력을 확장할 것을 제안합니다. 그러나 발표자는 이 접근 방식이 8비트 출력의 양자화된 선형 연산자로 제한되고 다른 유형의 반올림을 채택할 수 없는 등의 한계가 있음을 인정합니다.

  • 00:05:00 이 섹션에서는 화자가 ONNX에서 임의 정밀도 양자화 신경망을 나타내는 방언인 QONNX를 소개합니다. QONNX는 가짜 양자화를 위한 일련의 작업을 단 하나의 노드로 병합하는 동시에 더 광범위한 시나리오 세트로 확장하여 양자화 표현을 단순화합니다. 다양한 유형의 반올림, 방송 비트 입력 및 이진 양자화에 대한 옵션을 제공합니다. 이 형식은 ONNX 런타임 및 사전 학습된 저정밀 모델과 통합되는 QONNX를 처리하는 데 사용할 수 있는 다양한 도구와 함께 빠른 기계 학습 노력의 일환으로 FPGA에 배포하는 데 활용되고 있습니다. QONNX는 이미 Brevitas Python 양자화 라이브러리에 통합되어 있으며 NQCDQ는 다음 릴리스에 통합될 예정입니다.
QONNX: A proposal for representing arbitrary-precision quantized NNs in ONNX
QONNX: A proposal for representing arbitrary-precision quantized NNs in ONNX
  • 2022.07.13
  • www.youtube.com
We present extensions to the Open Neural Network Exchange (ONNX) intermediate representation format to represent arbitrary-precision quantized neural network...
사유: