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

 

ONNX를 사용하여 데스크톱에 배포



ONNX를 사용하여 데스크톱에 배포

"ONNX를 사용하여 데스크톱에 배포" 비디오에서 Alexander Zhang은 데스크톱에 배포하는 문제와 ONNX에서 제공하는 솔루션에 대해 설명합니다. 데스크톱 지원에는 GPU 또는 운영 체제의 시스템 제한에 대한 제어가 적고 데스크톱 GPU가 상당히 다양하기 때문에 문제가 있습니다. 이러한 문제를 해결하기 위해 Alexander는 Topaz 연구소가 지원하는 각 하드웨어 공급업체에 대해 서로 다른 추론 라이브러리를 사용합니다. ONNX는 이러한 모든 라이브러리에 동일한 모델을 지정하는 데 사용되며 각 모델에 대한 수동 작업을 저장하면서 서로 다른 하드웨어에서 상대적으로 일관된 결과를 제공합니다. 그러나 ONNX 변환으로 인해 모호성, 불일치, 품질 불일치와 같은 다양한 문제가 발생할 수 있으므로 개발자는 테스트 변환을 수행하고 최신 ONNX 오프셋을 명시적으로 사용해야 합니다. 일괄 처리를 통해 처리량을 최대화하고 잠재적으로 여러 장치 및 라이브러리에서 병렬로 실행하기 위해 이미지를 블록으로 분할하고 VRAM을 기반으로 적절한 크기를 선택한 다음 추론을 통해 블록을 실행합니다.

  • 00:00:00 이 섹션에서는 Alexander Zhang이 데스크톱에 배포하는 문제와 ONNX에서 제공하는 솔루션에 대해 설명합니다. 기존 워크플로우에 맞추는 동시에 성능 기대치를 충족하고 발전을 따라잡으려면 사용 가능한 최신 최고 품질의 이미지 모델을 제공해야 합니다. 데스크톱 지원에는 GPU 또는 운영 체제의 시스템 제한에 대한 제어가 적고 데스크톱 GPU가 상당히 다양하기 때문에 문제가 있습니다. 이러한 문제를 해결하기 위해 Alexander는 Topaz 연구소가 지원하는 각 하드웨어 공급업체에 대해 서로 다른 추론 라이브러리를 사용합니다. ONNX는 이러한 모든 라이브러리에 동일한 모델을 지정하는 데 사용되며 각 모델에 대한 수동 작업을 저장하면서 서로 다른 하드웨어에서 상대적으로 일관된 결과를 제공합니다. 그러나 ONNX 변환으로 인해 모호성, 불일치, 품질 불일치와 같은 다양한 문제가 발생할 수 있으므로 개발자는 테스트 변환을 수행하고 최신 ONNX 오프셋을 명시적으로 사용해야 합니다.

  • 00:05:00 이 섹션에서 발표자는 기존 라이브러리나 래퍼를 사용하지 않고 자체적으로 많은 변환을 수행하는 한 가지 이유는 성능이라고 설명합니다. 또한 모든 모델에 대해 모델별 코드를 작성할 필요 없이 원하는 경우 자체 모델 및 성능 요구 사항에 맞게 최적화할 수 있는 유연성의 중요성을 강조합니다. 일괄 처리를 통해 처리량을 최대화하고 잠재적으로 여러 장치 및 라이브러리에서 병렬로 실행하기 위해 이미지를 블록으로 분할하고 VRAM을 기반으로 적절한 크기를 선택한 다음 추론을 통해 블록을 실행합니다. 그러나 그들은 새로운 모델 아키텍처가 모든 라이브러리에서 제대로 작동하는지 확인하는 데 계속해서 어려움이 있다고 결론을 내렸지만, 그들의 전략이 이러한 문제를 극복하고 일관된 이미지 품질 개선을 제공할 것이라는 희망을 가지고 있습니다.
Deploying on Desktop with ONNX
Deploying on Desktop with ONNX
  • 2022.07.13
  • www.youtube.com
ORT provides the foundations for inference for Adobe's audio and video products (Premiere Topaz Labs develops deep learning based image quality software for ...
 

Flink에 ONNX 모델 배포 - Isaac Mckillen-Godfried



Flink에 ONNX 모델 배포 - Isaac Mckillen-Godfried

Isaac McKillen-Godfried는 효과적인 활용을 위해 연구 환경의 최신 기계 학습 모델을 프로덕션 환경에 통합하는 문제에 대해 설명합니다. 강연의 목표는 모델을 연구 환경에서 생산 환경으로 보다 쉽게 이동하고 최첨단 모델을 다른 플랫폼에 통합할 수 있도록 하는 것입니다. 그는 ONNX 형식의 장점과 Java에서 딥 러닝 모델을 통합하기 위한 다양한 옵션에 대해 설명합니다. 또한 Java로 작성된 Python 인터프리터인 Jep을 사용하여 Flink에 ONNX 모델을 배포하는 방법과 Flink Twitter 커넥터에서 데이터를 사용한 다음 영어가 아닌 트윗을 필터링할 수 있는 오픈 소스 프로젝트에 대해 설명합니다. 또한 이 강연에서는 Flink에 ONNX 모델을 배포하는 현재 CPU 전용 구현과 향후 GPU 또는 하이브리드 구현의 가능성을 강조합니다.

  • 00:00:00 비디오의 이 섹션에서 발표자는 효과적인 활용을 위해 연구 환경의 최신 기계 학습 모델을 생산에 통합하는 문제에 대해 논의합니다. 그는 인기 있는 프레임워크의 대부분이 Java와 Scala로 작성되고 대부분의 코드와 논문은 Python으로 작성된다고 언급합니다. 강연의 목표는 모델을 연구 환경에서 생산 환경으로 보다 쉽게 이동하고 최첨단 모델을 다른 플랫폼에 통합할 수 있도록 하는 것입니다. 연사는 또한 Flink의 열악한 Python 지원과 ONNX를 Java에 통합하는 어려움을 포함한 문제에 대해 이야기합니다. 그는 또한 연구 커뮤니티에서 PyTorch의 인기와 기계 학습 프레임워크에서의 구현 증가에 대해 언급합니다.

  • 00:05:00 이 섹션에서는 연사가 ONNX 형식과 그 장점에 대해 설명합니다. ONNX는 다양한 프레임워크에서 모델을 쉽게 내보내고 가져올 수 있는 개방형 신경망 교환 형식입니다. ONNX의 목표는 다양한 언어와 프레임워크에서 모델을 실행하여 개발자에게 유용한 도구로 만드는 것입니다. 또한 연사는 모델 내보내기 및 가져오기에 사용할 수 있는 다양한 ONNX 프레임워크 및 도구에 대해 이야기합니다. 또한 TensorFlow 및 Caffe2가 상당한 지원을 제공하는 ONNX의 운영 지원을 측정하는 스코어카드를 소개합니다. 그런 다음 발표자는 마이크로 서비스 생성, Java 임베디드 Python 및 ONNX 백엔드 JVM 기반 프레임워크 실행을 포함하여 Java에서 딥 러닝 모델을 통합하기 위한 다양한 옵션에 대해 설명합니다.

  • 00:10:00 이 섹션에서는 Meno 및 Vespa와 같은 프레임워크에서 신경망 작업의 제한된 지원을 포함하여 ONNX 모델과 함께 Java를 사용할 때의 제한 사항에 대해 설명합니다. 내보내기 프로세스도 어렵고 시간이 많이 소요될 수 있으며 모델을 완전히 재교육해야 할 수도 있습니다. 한 가지 솔루션은 비동기 및 마이크로 서비스를 사용하는 것이지만 이 접근 방식에는 별도의 서비스를 확장하고 유지 관리해야 합니다. 논의된 또 다른 접근 방식은 모든 Python 라이브러리를 사용할 수 있고 Keras와 같은 프레임워크에서 빠르게 실행되는 JEP(Java embedded Python)를 사용하는 것입니다. 그러나 공유 라이브러리에 해결해야 할 문제가 있을 수 있습니다.

  • 00:15:00 비디오의 이 섹션에서 연사는 Flink에 ONNX 모델을 배포하는 것과 발생할 수 있는 잠재적인 설정 문제에 대해 논의합니다. Java 프리미티브를 Python으로 또는 그 반대로 전송할 수 있지만 종속성을 설정하는 데 문제가 있을 수 있습니다. 발표자는 설정을 더 쉽게 하기 위해 Flink 및 Python 패키지를 모두 포함하는 사용자 지정 Docker 이미지를 생성할 것을 권장합니다. 발표자는 또한 NLP 작업을 위한 PyTorch 프레임워크인 Flair를 강조하고 JEP를 사용하여 Flink에 통합하는 방법을 설명합니다. 예제 코드는 리치 맵 함수를 사용하여 Flair의 결과를 문자열로 반환합니다.

  • 00:20:00 이 섹션에서는 발표자가 Java로 작성된 Python 인터프리터인 Jep을 사용하여 Flink에 ONNX 모델을 배포하는 방법에 대해 이야기합니다. 연사는 Flink Twitter 커넥터를 사용하여 Twitter 데이터에 대한 감정 분석을 수행하는 예를 보여주고 모든 반복을 다시 로드하지 않도록 함수의 열린 부분에 모델을 로드하는 것의 중요성을 설명합니다. 또한 Jep을 사용하여 Python에서 변수를 설정하는 방법과 결과를 Java에 문자열로 반환하는 방법을 보여줍니다. 발표자는 Python 모듈을 사용하는 동안 오류를 방지하기 위해 Jep에서 공유 인터프리터를 사용하는 것을 강조하고 Java에서 더 쉽게 처리할 수 있도록 결과를 JSON으로 변환할 것을 제안합니다.

  • 00:25:00 이 섹션에서는 Isaac McKillen-Godfried가 Flink Twitter 커넥터에서 데이터를 소비한 다음 영어가 아닌 트윗을 필터링할 수 있는 오픈 소스 프로젝트에 대해 이야기합니다. 그런 다음 데이터는 여러 언어 및 특정 언어 모델을 처리할 수 있는 개체 인식 모델이라는 이름의 멀티태스킹을 통해 처리됩니다. 명명된 엔터티 인식 및 감정 분석은 테이블로 변환되고 쿼리를 사용하여 엔터티 및 감정별로 그룹화하기 전에 수행됩니다. 딥 러닝 및 기타 모델을 Flink에 통합하면 명명된 엔터티에 대한 실시간 보기와 Twitter 텍스트에 대한 감정을 볼 수 있습니다. onnx 백엔드는 완성도가 낮지만 코드를 변환하고 다시 작성해야 하는 시간을 절약하고 클러스터에서 모델을 실행하는 속도가 빠릅니다. McKillen-Godfried는 가까운 장래에 대기 시간 증가를 측정하기 위해 벤치마크를 수행할 계획입니다.

  • 00:30:00 이 섹션에서 Isaac Mckillen-Godfried는 Flink에 ONNX 모델을 배포하는 현재 CPU 전용 구현과 프로세스 속도를 더욱 높일 수 있는 향후 GPU 또는 하이브리드 구현의 가능성에 대해 논의합니다. 그는 모델을 CPU에서만 테스트했으며 GPU 사용을 통해 효율성을 높일 수 있는 가능성을 아직 탐색하지 않았다고 말합니다.
Deploying ONNX models on Flink - Isaac Mckillen-Godfried
Deploying ONNX models on Flink - Isaac Mckillen-Godfried
  • 2019.07.08
  • www.youtube.com
Deploying ONNX models on FlinkThe Open Neural Network exchange format (ONNX) is a popular format to export models to from a variety of frameworks. It can han...
 

DeepStream을 사용하여 Jetson Nano에 Tiny YOLOv2 ONNX 모델 배포



DeepStream을 사용하여 Jetson Nano에 Tiny YOLOv2 ONNX 모델 배포

이 비디오는 ONNX 형식의 사전 훈련된 Tiny YOLOv2 모델을 활용하여 4개의 비디오 스트림을 동시에 처리하는 효율성을 보여줍니다.
스트림은 4개의 개별 파일에서 가져오고 DeepStream SDK를 사용하여 Jetson Nano에서 처리됩니다. 이 시스템은 4개의 비디오를 모두 병렬로 처리하면서 약 6.7의 FPS를 달성했습니다.

https://github.com/thatbrguy/Deep-Stream-ONNX

Deploying Tiny YOLOv2 ONNX model on Jetson Nano using DeepStream
Deploying Tiny YOLOv2 ONNX model on Jetson Nano using DeepStream
  • 2019.11.18
  • www.youtube.com
This video demonstrates the performance of using a pre-trained Tiny YOLOv2 model in the ONNX format on four video streams.Blog: https://towardsdatascience.co...
 

ONNX Runtime 추론 엔진은 다양한 환경에서 기계 학습 모델을 실행할 수 있습니다.



ONNX 런타임

ONNX Runtime은 성능, 확장성 및 확장성에 최적화된 오픈 소스 추론 엔진으로, 표준화되기 전에 새로운 연산자를 실행할 수 있습니다. ONNX 형식을 사용하면 선호하는 도구에서 개발된 모델을 일반적인 방식으로 쉽게 표현하고 배포할 수 있습니다. Microsoft는 Xilinx와 협력하여 Xilinx 하드웨어 플랫폼에서 AI 추론 및 가속을 허용하는 Vitis AI 소프트웨어 라이브러리용 실행 공급자를 구축했습니다. Vitis AI 툴킷은 FPGA 개발자를 위한 IP 도구, 라이브러리, 모델 및 예제 설계로 구성되며, 벤치마크 수치는 지형 공간 이미징 솔루션의 최고 가속도를 보여줍니다. Vitis AI 실행 공급자는 소스에서 빌드하거나 Azure Marketplace에서 곧 출시될 미리 빌드된 소프트웨어 라이브러리를 통해 배포할 수 있습니다.

  • 00:00:00 이 섹션에서는 Microsoft AI 프레임워크의 수석 프로그램 관리자인 Manash Goswami가 ONNX 모델을 실행하는 데 사용되는 오픈 소스 추론 엔진인 ONNX Runtime을 소개합니다. ONNX 형식을 사용하면 데이터 과학 팀이 선호하는 모델 개발 도구를 사용하는 동시에 모델을 일반적이고 쉽게 실행할 수 있는 방식으로 표현하고 배포할 수 있습니다. ONNX Runtime은 성능, 확장성 및 확장성에 최적화되어 있으며 사용자 지정 연산자를 지원하므로 표준화되기 전에 새 연산자를 실행할 수 있습니다. 런타임은 이전 버전 및 이전 버전과 호환되며 실행 공급자 인터페이스를 통해 다양한 하드웨어 플랫폼에서 ML 모델을 실행할 수 있습니다. Microsoft는 Xilinx와 협력하여 Xilinx U250 FPGA 플랫폼에서 ONNX 모델을 실행하는 Vitis AI 소프트웨어 라이브러리용 실행 공급자를 구축했습니다.

  • 00:05:00 이 섹션에서는 Xilinx 하드웨어 플랫폼의 AI 추론에 특화된 Xilinx 개발 플랫폼인 Vitis AI 소프트웨어 라이브러리에 대해 알아봅니다. U250 FPGA는 Azure의 비공개 미리 보기에서 Vitis AI 소프트웨어 스택과 함께 사용자를 위한 NP VM 대기열로 사용할 수 있습니다. Vitis AI 툴킷은 개발자가 FPGA와 함께 사용할 수 있도록 최적화된 IP 도구, 라이브러리, 모델 및 예제 디자인으로 구성되어 있어 AI 추론과 가속을 결합할 수 있습니다. 지리 공간 분석 솔루션을 제공하는 스타트업인 Peakspeed는 ONNX Runtime 및 Vitis AI 스택을 Esri의 ArcGIS Pro 애플리케이션과 통합하여 세계에서 가장 빠른 지리 공간 이미징 솔루션을 구축합니다. Peakspeed는 CPU에서 지형 공간 보정 또는 정사보정 프로세스를 성공적으로 가속화하여 Xilinx U250 FPGA를 호스팅하는 Azure NP에서 실행되는 TrueView와 Xeon 플래티넘 CPU에서 실행되는 동일한 알고리즘을 비교하는 벤치마크 수치를 기록했습니다.

  • 00:10:00 이 섹션에서 Manash는 개발자와 고객이 ONNX Runtime 및 Vitis AI 스택을 사용하여 애플리케이션에 딥 러닝을 주입하여 Azure의 FPGA 엔드포인트와 온프레미스에서 Xilinx U250 하드웨어를 가속화하는 방법을 설명합니다. 그는 또한 개발자가 소스에서 ONNX Runtime을 사용하여 Vitis AI 실행 공급자를 구축할 수 있으며 Xilinx는 Azure NP VM에 쉽게 배포할 수 있도록 사전 구축된 모든 소프트웨어 라이브러리가 한 곳에 통합된 Azure Marketplace의 VM 이미지를 곧 출시할 것이라고 강조합니다.
ONNX Runtime
ONNX Runtime
  • 2020.07.07
  • www.youtube.com
ONNX Runtime inference engine is capable of executing ML models in different HW environments, taking advantage of the neural network acceleration capabilitie...
 

기업의 ONNX(Open Neural Network Exchange): Microsoft가 기계 학습을 확장하는 방법



엔터프라이즈의 ONNX(Open Neural Network Exchange): Microsoft가 ML을 확장하는 방법 - BRK3012

ONNX(Open Neural Network Exchange)는 여러 교육 프레임워크 및 배포 대상 관리를 포함하여 기계 학습 모델을 프로덕션에 배포하는 문제에 대한 솔루션으로 도입되었으며 Microsoft는 이미 Bing, Bing 광고 및 Office 365와 같은 제품에 ONNX를 널리 채택하고 있습니다. ONNX는 기계 학습 모델의 확장성 및 유지 관리는 물론 GPU와 같은 하드웨어 가속기의 사용으로 인한 상당한 성능 향상 및 비용 절감을 허용합니다. 또한 ONNX 에코시스템에는 FP32 모델을 정밀도가 낮은 데이터 유형으로 변환하는 데 사용할 수 있는 즉시 사용 가능한 개발 키트 및 양자화 기술과 함께 런타임 최적화를 위한 Intel과 같은 파트너가 포함되어 있어 효율성이 향상됩니다. 연사는 또한 런타임이 유연하고 다양한 하드웨어 플랫폼에 모델을 배포할 수 있기 때문에 에지 컴퓨팅에 ONNX를 활용하는 이점을 강조합니다.

  • 00:00:00 이 섹션에서 발표자는 Office 365의 월간 활성 사용자 1억 8천만 명을 포함하여 Microsoft의 기계 학습 이니셔티브의 규모와 수억 대의 Windows 장치에 배포된 기계 학습 기술에 대해 논의합니다. 그들은 또한 Microsoft가 6개 이상의 기계 학습 프레임워크를 사용하며 기계 학습 모델을 프로덕션에 배포하는 데 어려움이 있다고 언급합니다. Intel 및 NVIDIA와 같은 하드웨어 가속기와 Azure 기계 학습에서 사용할 수 있는 이러한 문제에 대한 솔루션으로 ONNX 및 ONNX Runtime을 소개합니다.

  • 00:05:00 비디오의 이 섹션에서 발표자는 기계 학습 모델을 교육하고 프로덕션에 배포할 때 발생하는 문제에 대해 논의합니다. 매우 다양한 교육 프레임워크와 배포 대상으로 인해 효율적인 애플리케이션 성능을 관리하고 유지하기가 어려워집니다. 이 문제를 해결하기 위해 Microsoft는 교육에 사용되는 프레임워크에 관계없이 기계 학습 모델을 ONNX 형식으로 변환할 수 있는 업계 표준인 ONNX(Open Neural Network Exchange)를 도입했습니다. 이를 통해 지원되는 모든 프레임워크에 ONNX 모델을 배포할 수 있으므로 보다 유연하고 확장 가능한 솔루션을 만들 수 있습니다. 또한 Microsoft는 ONNX를 지원하고 업계 표준으로서의 성공을 보장하기 위해 강력한 파트너 에코시스템을 구축하고 있습니다.

  • 00:10:00 이 섹션에서 발표자는 ONNX(Open Neural Network Exchange) 및 ONNX 런타임의 실제 프로덕션 사용 사례에 대해 논의하여 이들이 Microsoft 제품과 고객에게 비즈니스 가치를 제공하는 방법을 보여줍니다. Bing, Bing 광고 및 Office 365와 같은 일부 Microsoft 제품은 이미 ONNX 및 ONNX 런타임을 널리 채택했으며 모델 성능이 크게 향상되고 대기 시간이 단축되었습니다. 예를 들어 ONNX 및 ONNX 런타임을 통해 Office 365의 문법 검사 기능은 성능이 14.6배 향상되어 비용과 대기 시간이 감소했습니다. 또 다른 사용 사례인 OCR도 ONNX 및 ONNX 런타임에서 상당한 이점을 얻었습니다.

  • 00:15:00 이 섹션에서 연사는 Microsoft가 ONNX(Open Neural Network Exchange)를 사용하여 Azure Cognitive Services OCR 커뮤니티 서비스의 품질과 성능을 개선하고 개선하는 등 다양한 시나리오에서 기계 학습을 확장하는 방법에 대해 설명합니다. 검색 품질과 개인 비서와의 질문 및 답변과 같은 새로운 시나리오를 가능하게 합니다. 연사는 또한 ONNX 및 ONNX Runtime이 기계 학습 모델의 속도를 각각 3.5배 및 2.8배 향상시켜 제품 팀에 큰 가치를 제공한 방법에 대해 언급합니다. 또한 향상된 멀티미디어 검색을 위해 이미지의 의미론적 의미를 실제로 이해하기 위한 기계 학습 모델 교육의 중요성을 강조합니다.

  • 00:20:00 이 섹션에서는 연사가 Microsoft 제품, 특히 Bing 시각적 검색 기능에서 ONNX(Open Neural Network Exchange) 모델을 사용하는 방법에 대해 논의합니다. ONNX를 사용하면 GPU와 같은 하드웨어 가속기를 사용하여 머신 러닝 모델의 확장 및 유지 관리는 물론 상당한 성능 향상 및 비용 절감이 가능합니다. 연사들은 또한 x64 및 ARM 기반 아키텍처를 비롯한 다양한 플랫폼에서 실행할 수 있고 Windows, Mac 및 Linux에서 사용할 수 있는 ONNX 모델용 오픈 소스 추론 엔진인 ONNX의 다재다능함을 강조합니다. ONNX를 사용하면 모델의 인터페이스를 변경하지 않고도 특정 대상 하드웨어에서 실행을 최적화할 수 있으므로 프로덕션 배포를 확장하고 유지 관리하는 데 유용한 도구가 됩니다.

  • 00:25:00 이 섹션에서 발표자는 CPU, GPU 및 FPGA를 비롯한 다양한 하드웨어 플랫폼에서 ONNX 모델을 실행하는 데 사용되는 실행 공급자 인터페이스에 대해 설명합니다. 파트너 에코시스템에는 Microsoft가 개방형 VINO 기반 실행 공급자를 사용하여 런타임 최적화에 대해 협력한 Intel이 포함됩니다. 또한 제조, 소매 및 운송과 같은 다양한 수직 분야의 AI 워크로드를 가속화하기 위해 신경 컴퓨팅 스틱을 포함하여 즉시 사용 가능한 개발 키트를 제공합니다. Microsoft와 Intel은 또한 양자화에 협력하여 FP32 모델을 더 낮은 정밀도의 데이터 유형으로 변환하여 메모리 대역폭을 낮추고 모델의 메모리 공간을 줄이며 정확도 손실을 최소화하면서 와트당 4탑 수를 늘렸습니다.

  • 00:30:00 이 섹션에서 발표자는 벡터 처리 명령과 그래프 융합을 사용하여 컨벌루션 신경망용 정수 보석 커널의 성능과 메모리 요구 사항을 개선할 수 있었던 방법에 대해 설명합니다. 그들은 4배 더 많은 컴퓨팅과 4배 더 적은 메모리 요구 사항을 달성할 수 있었습니다. 그들은 다양한 배치 크기에 대한 성능 확장을 보여줌으로써 하드웨어 처리 기능과 함께 n-그래프를 실행 공급자로 사용하는 이점을 보여주었습니다. 정확도 손실은 매우 작았고 양자화의 동기 부여 이점을 충족했습니다. 또한 ONNX Model Zoo, Azure Machine Learning Experimentation 및 Microsoft의 사용자 지정 비전 서비스를 사용하는 등 ONNX 모델을 생성하는 다양한 방법에 대해서도 논의했습니다.

  • 00:35:00 이 섹션에서는 연사가 애플리케이션 내에서 ONNX 런타임을 사용하여 추론 세션을 실행하는 방법을 설명합니다. 모델을 변환한 후 사용자는 모델을 ONNX 런타임에 로드하고 그래프 구문 분석을 시작합니다. 런타임은 사용 가능한 최적화를 식별하고 기본 하드웨어를 쿼리하여 하드웨어 라이브러리에서 지원하는 작업 종류를 식별합니다. ONNX 런타임은 일관성을 유지하도록 설계되었으므로 Python 및 C-sharp용 코드 스니펫은 매우 유사합니다. 발표자는 또한 사용자가 데이터를 입력하여 Python 및 C-sharp 코드를 자동으로 변환하는 응용 프로그램 제안을 받을 수 있는 AutoML에 대해 언급합니다. 또한 발표자는 다양한 프레임워크용 변환기를 포함하고 사용자가 ONNX 런타임을 빠르게 시작할 수 있도록 하는 도커 이미지에 대해 설명합니다. 워크플로는 Azure Notebooks 사용을 통해 시연됩니다.

  • 00:40:00 이 섹션에서는 발표자가 ONNX(Open Neural Network Exchange)와 Microsoft의 기계 학습 도구를 활용하여 기업에서 모델을 확장하는 방법에 대해 설명합니다. 이 프로세스에는 ML 작업 영역을 사용하여 사전 처리 및 추론 단계를 모두 포함하는 채점 파일을 만드는 작업이 포함됩니다. 그런 다음 연사는 ONNX 런타임 기본 이미지와 같은 기본 이미지를 포함하여 대상 컴퓨터 및 환경에 대한 컨테이너 이미지를 만드는 방법을 시연합니다. 마지막으로 이미지는 CPU 및 GPU 엔드포인트에서 추론하기 위해 테스트 이미지를 보낼 수 있는 기능과 함께 클라우드 IKS 서비스에 배포됩니다.

  • 00:45:00 이 섹션에서 연사는 CPU 대 GPU 및 x86과 같은 다양한 하드웨어 플랫폼을 향한 애플리케이션을 가리키는 데 동일한 코드가 사용되는 데모를 보여줌으로써 ONNX(Open Neural Network Exchange) 런타임의 유연성을 보여줍니다. ARM 대. 연사는 또한 사전 녹화된 비디오 피드와 바운딩 박스의 사후 처리를 사용하여 공장 작업자 시나리오에서 안전 시나리오를 감지하기 위해 에지 장치, 특히 Intel up squared에 ONNX 런타임 및 모델을 배포하는 데모를 보여줍니다. 데모에 사용된 코드는 동일하지만 응용 프로그램을 최적화하는 데 다른 하드웨어 가속기가 사용됩니다. 발표자는 ONNX가 신경망 모델을 나타내는 일반적인 형식이 되고 ONNX 런타임이 클라우드와 에지 장치 모두에서 배포할 수 있다고 요약합니다.

  • 00:50:00 이 섹션에서는 발표자가 Azure로 기계 학습 애플리케이션을 구축하고 배포하기 위해 ONNX(Open Neural Network Exchange)를 사용할 때의 이점에 대해 논의합니다. 또한 기존 파이프라인과 함께 ONNX를 사용하는 다른 프로세서에서의 기계 학습과 ONNX에서 이전 프레임워크로 돌아갈 가능성에 대한 청중의 질문을 해결합니다. 또한 대상 시나리오 및 데이터로 ONNX Model Zoo를 확장하려는 계획을 언급합니다.

  • 00:55:00 이 섹션에서는 ONNX 모델을 제공을 위해 다양한 프레임워크와 함께 사용할 수 있으므로 연사들은 프레임워크 유연성 측면에서 ONNX의 이점에 대해 논의합니다. 그들은 또한 ONNX와 Azure 기계 학습의 통합을 언급하여 사용자가 재교육 또는 실험을 위해 추론 원격 분석을 업로드할 수 있도록 합니다. 세션에서는 또한 기본적으로 Excel과의 ONNX 통합 가능성에 대해 논의하지만 아직 개발 중입니다. 또한 Python을 사용하여 ONNX 파일 형식을 조작하는 옵션과 함께 사용자 지정 알고리즘을 만들고 이를 ONNX로 변환하는 문제를 해결합니다. 마지막으로 세션에서는 배포용 ONNX 모델 서명에 대한 접근 방식의 필요성을 언급하며 이는 향후 개선을 위한 피드백으로 받아들여질 것입니다.
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
Open Neural Network Exchange (ONNX) in the enterprise: how Microsoft scales ML - BRK3012
  • 2019.05.08
  • www.youtube.com
AI, machine learning, deep learning, and advanced analytics are being infused into every team and service at Microsoft—understanding customers and the busine...
 

#ONNXRuntime을 사용하여 브라우저에서 Transformer 모델 배포



#ONNXRuntime을 사용하여 브라우저에서 Transformer 모델 배포

이 비디오는 ONNXRuntime을 사용하여 브라우저에서 최적화된 BERT 모델을 미세 조정하고 배포하는 방법을 보여줍니다. 발표자는 Transformers API를 사용하여 PyTorch 모델을 ONNX 형식으로 변환하고, ONNXRuntime을 사용하여 크기 축소를 위해 모델을 양자화하고, 추론 세션을 만드는 방법을 보여줍니다. 비디오는 또한 WebAssembly를 사용하여 패키지를 JavaScript로 가져오는 데 필요한 단계와 감정 분류를 위해 변환된 모델을 통해 텍스트 입력을 실행하는 방법을 다룹니다. 예측 정확도 감소에도 불구하고 더 작은 모델 크기는 브라우저에 배포하는 데 이상적입니다. 모델, 데이터 세트, 소스 코드 및 블로그 게시물에 대한 링크가 제공됩니다.

  • 00:00:00 이 섹션에서 비디오 발표자는 변환기 모델을 운영하는 방법을 시연하고 최적화되어 브라우저에 배포된 변환기 모델이 포함된 최종 프로젝트를 보여줍니다. 프로젝트에 사용된 모델은 크기를 줄이고 테스트에 구애받지 않도록 Microsoft에서 추출한 최적화된 bert 모델입니다. 모델을 미세 조정하는 데 사용되는 감정 데이터 세트는 허깅 페이스 허브에서 사용할 수 있습니다. 발표자는 Transformers API를 사용하여 미세 조정 프로세스를 진행하고 Transformers의 내장 변환 도구를 사용하여 PyTorch 모델을 ONNX 형식으로 변환하는 방법을 보여줍니다. 마지막으로 ONNX Runtime 웹 패키지는 필요한 연산자에 따라 다양한 작업 집합을 선택할 수 있는 JavaScript의 추론에 사용됩니다.

  • 00:05:00 이 섹션에서는 비디오에서 ONNXRuntime을 사용하여 브라우저에서 변환기 모델을 배포하는 방법에 대해 설명합니다. 먼저, 비디오는 ONNXRuntime을 사용하여 모델을 양자화하여 크기를 줄이는 방법을 설명합니다. 그런 다음 양자화되지 않은 모델과 양자화된 모델 모두에 대해 추론 세션이 생성됩니다. 그런 다음 비디오는 WebAssembly를 사용하여 필요한 패키지를 JavaScript로 가져오는 방법과 텍스트 입력을 ONNXRuntime 모델을 통해 실행하기 전에 인코딩하는 방법을 보여줍니다. 데모는 변환된 모델을 사용하여 입력 텍스트가 있는 다양한 감정을 예측하는 방법을 보여줍니다. 예측 정확도의 감소에도 불구하고 비디오는 축소된 모델 크기가 웹 배포에 이상적이라는 결론을 내립니다.

  • 00:10:00 이 섹션에서 발표자는 대형 변압기 모델을 가져와서 증류 및 양자화하고 ONNX Runtime을 사용하여 에지에서 추론을 수행할 수 있었던 방법을 설명합니다. 또한 사용된 모델 및 데이터 세트에 대한 링크와 소스 코드 및 데모의 블로그 게시물을 제공합니다.
Deploy Transformer Models in the Browser with #ONNXRuntime
Deploy Transformer Models in the Browser with #ONNXRuntime
  • 2022.04.01
  • www.youtube.com
In this video we will demo how to use #ONNXRuntime web with a distilled BERT model to inference on device in the browser with #JavaScript. This demo is base...
 

#ONNX 런타임용 #OpenVINO 실행 공급자 - #OpenCV Weekly #Webinar Ep. 68



#ONNX 런타임용 #OpenVINO 실행 공급자 - #OpenCV Weekly #Webinar Ep. 68

ONNX Runtime용 OpenVINO Execution Provider는 이 OpenCV Weekly Webinar에서 토론의 주요 주제였습니다. 이 제품은 사용자의 노력을 최소화하면서 Intel 하드웨어에서 ONNX 모델의 성능을 가속화하는 것을 목표로 합니다. 웨비나에서는 이러한 문제에 대한 해결책으로 제시된 OpenVINO와 함께 실제 세계에서 딥 러닝 모델을 배포하는 문제에 대해 논의했습니다. OpenVINO는 다양한 장치 및 하드웨어에서 효율적인 성능을 위해 AI 모델을 최적화할 수 있습니다. 기계 학습 추론을 가속화하도록 설계된 오픈 소스 프로젝트인 ONNX 런타임에 대해 길게 논의했습니다. 웨비나에서는 또한 ONNX Runtime용 OpenVINO Execution Provider로 달성한 성능 개선과 다중 스레드 추론, 다양한 플러그인에 대한 완벽한 지원, 모델 캐싱과 같은 기능을 시연했습니다. OpenVINO Execution Provider를 통한 OpenVINO와 PyTorch 간의 통합에 대해서도 논의했습니다. 발표자는 ONNX 교환 형식을 사용할 때 ARM 장치와의 호환성 및 성능 또는 정확성의 잠재적 손실과 같은 주제에 대한 청중의 질문에 답했습니다.

  • 00:00:00 이 섹션에서 호스트는 각각 OpenVINO의 기술 제품 관리자이자 AI 프레임워크 엔지니어인 Devon Agarwal과 Prita Veeramalai를 게스트로 소개합니다. 그들은 쇼에 대한 간략한 소개를 제공하고 시청자를 위한 몇 가지 향후 경품에 대해 논의합니다. 토론의 주요 주제는 ONNX 런타임용 OpenVINO 실행 공급자를 중심으로 이루어지며, 이는 사용자 측에서 최소한의 노력으로 Intel 하드웨어에서 ONNX 모델의 성능을 가속화하는 것을 목표로 합니다. 호스트는 또한 딥 러닝과 그 과제에 대한 개요와 OpenVINO 및 그 기능에 대한 소개가 포함된 세션의 의제를 설명합니다.

  • 00:05:00 비디오의 이 섹션에서 발표자는 ONNX Runtime용 OpenVINO Execution Provider를 소개하고 그 목적을 설명합니다. 또한 OpenVINO, ONNX 및 ONNX Runtime에 대한 개요를 제공하고 ONNX Runtime용 OpenVINO Execution Provider를 시작하고 ONNX 애플리케이션에 통합하는 방법에 대한 가이드를 제공합니다. 발표자는 또한 개발자를 위한 베타 프리뷰 제품 미리보기를 포함하여 제품의 기능 세트 및 향후 계획에 대해 논의합니다. 그런 다음 대화는 오늘날 세계에서 딥 러닝의 중요성, 에지 장치의 AI 필요성 및 AI에 대한 컴퓨팅 요구 사항으로 이동합니다. 또한 이 비디오는 고유한 추론 요구 사항, 통합 문제 및 만능 솔루션의 부재를 포함하여 딥 러닝 모델의 개발 및 배포와 관련된 문제를 다룹니다.

  • 00:10:00 이 섹션에서는 실제 세계에서 딥 러닝 모델을 배포하는 문제에 대해 설명합니다. 임베디드 플랫폼에서 발생하는 딥 러닝 네트워크 훈련과 추론 사이의 단절로 인해 기술적인 문제가 발생합니다. 소프트웨어 및 하드웨어 통신을 위한 전용 API가 필요한 프로그래밍 언어 및 하드웨어 변형도 있습니다. 인텔의 OpenVINO 툴킷은 이러한 문제에 대한 솔루션으로 도입되었습니다. 이 툴킷은 개발 워크플로우를 능률화하고 개발자가 응용 프로그램을 한 번 작성하고 Intel 아키텍처 전체에 배포할 수 있도록 하여 어디에서나 한 번만 배포할 수 있는 접근 방식을 제공합니다. 이 툴킷은 CPU, iGPU, Movidius VPU 및 GNA를 대상으로 하는 애플리케이션을 배포할 수 있습니다. 산업, 건강 및 생명 과학, 소매, 안전 및 보안을 포함한 다양한 산업에서 유용할 수 있으며 실제 배포를 위한 더 빠르고 정확하며 효율적인 결과를 제공합니다.

  • 00:15:00 이 섹션에서는 발표자가 OpenVino의 개념과 에지 장치용 AI 모델을 최적화하는 방법을 설명합니다. 그들은 PyTorch 또는 TensorFlow와 같은 프레임워크에 일단 구축되면 CPU, GPU 또는 VPU와 같은 특정 장치에서 효율적인 성능을 위해 AI 모델을 최적화해야 하는 방법을 설명합니다. OpenVino는 다양한 장치 및 하드웨어에 대한 이 변환 프로세스를 자동화하여 모델이 배포된 장치에서 효율적인 성능을 위해 최적화되도록 합니다. 그런 다음 연사는 기계 학습 모델을 나타내는 개방형 형식인 ONNX가 무엇인지 설명하고 공통 연산자 세트를 기계 학습 및 딥 러닝 모델의 빌딩 블록으로 정의합니다. 전반적으로 ONNX를 사용하면 AI 개발자가 다운스트림 추론 영향에 대해 걱정하지 않고 다양한 프레임워크, 도구, 런타임 및 컴파일러를 사용할 수 있습니다.

  • 00:20:00 이 섹션에서 연사는 서로 다른 도구에서 생성된 모델을 표준화된 형식을 사용하여 읽을 수 있도록 변환할 수 있는 개방형 중간 모델인 ONNX 형식에 대해 논의합니다. ONNX 런타임은 다양한 운영 체제 및 하드웨어 플랫폼에서 기계 학습 추론을 가속화하도록 설계된 오픈 소스 프로젝트입니다. 최적화 기회를 자동으로 식별하고 사용 가능한 최고의 하드웨어 가속에 대한 액세스를 제공합니다. ONNX용 OpenVINO Execution Provider를 사용하면 OpenVINO 도구 키트의 기능을 통해 Intel CPU, GPU 및 VPU에서 ONNX 모델의 추론을 가속화할 수 있습니다. 이를 통해 사용자는 ONNX 런타임 API를 사용하여 추론을 실행하면서 OpenVINO 툴킷을 백엔드로 쉽게 통합할 수 있습니다.

  • 00:25:00 이 섹션에서는 ONNX 런타임과 OpenVINO 실행 공급자 간의 통합에 대해 설명합니다. 이 통합을 통해 Intel 장치에서 딥 러닝 모델을 효율적으로 실행할 수 있습니다. OpenVINO 툴킷은 Intel 장치에서 모델을 실행하기 위한 최적화된 라이브러리를 제공합니다. OpenVINO 실행 공급자가 활성화되면 효율성을 극대화하기 위해 OpenVINO 백엔드에서 실행해야 하는 모델의 연산자를 지능적으로 선택합니다. 나머지 연산자는 기본 ONNX 런타임 프레임워크를 사용하여 실행됩니다. 사용자는 소스에서 빌드하거나 Docker 이미지를 가져오거나 pip 설치를 사용하여 OpenVINO 실행 공급자를 설치할 수 있습니다. ONNX 런타임 OpenVINO 패키지는 PyPI에서 찾을 수 있습니다.

  • 00:30:00 웨비나의 이 섹션에서 발표자는 ONNX Runtime용 OpenVINO Execution Provider를 사용하는 방법에 대해 논의하고 그 기능을 시연합니다. pip를 사용하여 제품을 설치하는 방법을 설명하고 ONNX 런타임 라이브러리를 가져오고 유추 세션을 시작하는 방법을 보여주는 코드 조각을 제공합니다. 또한 기존 코드 줄을 간단히 수정하여 OpenVINO Execution Provider를 사용하는 것이 얼마나 쉬운지 보여줍니다. 그런 다음 발표자는 시청자에게 QR 코드를 스캔하여 데모 및 샘플에 액세스하여 직접 사용해 보도록 초대합니다.

  • 00:35:00 이 섹션에서 비디오는 ONNX Runtime용 OpenVINO 실행 제공자(EP)로 달성한 성능 향상에 대한 데모를 제공합니다. 이 비디오는 CPU 실행 공급자로 달성한 5fps와 OpenVINO EP로 달성한 8fps를 비교한 것입니다. 또한 이 비디오는 ONNX Runtime용 OpenVINO EP를 사용하여 양자화 데모를 제공하며, 그 결과 정확도 손실은 무시할 수 있는 수준으로 2배의 성능 향상을 가져왔습니다. 데모 노트북은 벤치마킹 및 분석을 위해 실제 Intel 하드웨어에 대한 원격 액세스를 제공하는 Intel DevCloud에서 사용할 수 있습니다.

  • 00:40:00 데모가 끝났습니까? 이 섹션에서 발표자는 ONNX Runtime용 OpenVINO Execution Provider를 시작하고 i3, i5,xenon 또는 Core i9와 같은 하드웨어 및 그래픽 부문을 선택하는 방법을 시연합니다. 또한 장치에서 간섭을 실행하기 위해 입력 비디오 및 ONNX 모델을 사용하는 Jupyter 노트북 및 물체 감지 샘플을 선보입니다. 발표자는 CPU, GPU 및 FP16 VADM 미디어에 대한 지원이 있다고 설명하고 네이티브 ONNX 런타임 백엔드인 CPU 실행 공급자에 대해서도 언급합니다. 마지막으로 발표자는 각 장치를 구입하거나 대여하지 않고 다양한 하드웨어를 테스트하기 위한 OpenVINO Execution Provider의 유용성에 대해 논의합니다.

  • 00:45:00 이 섹션에서는 OpenVINO Execution Provider의 기능에 대해 설명합니다. 다중 스레드 추론, 다양한 플러그인에 대한 완벽한 지원 및 모델 캐싱을 제공합니다. 모델 양자화 및 그래프 파티셔닝은 물론 여러 언어에 대한 API도 사용할 수 있습니다. 성능 향상을 위해 IO 버퍼 최적화가 제공되며 ONNX 모델에 외부 파일 저장이 가능합니다. 청중에게 상을 받기 위해 질문을 하고 PyTorch 모델을 위한 OpenVINO 통합에 대한 살짝 엿보기가 공유됩니다.

  • 00:50:00 이 섹션에서는 OpenVINO 실행 공급자를 통해 PyTorch와 OpenVINO 통합에 대해 설명합니다. 이 제품은 단 두 줄의 추가 코드를 사용하여 Intel 하드웨어에서 PyTorch 모델의 성능을 가속화할 수 있습니다. 사용자는 OpenVINO 실행 공급자를 사용하여 추론을 위해 모듈을 준비하고 모듈을 onnx.export를 통해 메모리 내 그래프로 내보내는 토치 orp/ort 추론 모듈에서 nn.module을 래핑할 수 있습니다. 그런 다음 ONNXruntime 세션은 하위 그래프 분할을 위해 지원되거나 지원되지 않는 연산자를 사용하여 그래프를 하위 그래프로 분할하고 OpenVINO 호환 노드는 공급자에 의해 실행되며 인텔 CPU, GPU 또는 VPU에서 실행될 수 있는 반면 다른 모든 노드는 기본 CPU ML 실행 제공자. 설치 프로세스는 간단합니다. 소스에서 빌드하고, 간단한 pip 설치를 수행하고, 전체 범위의 Python API에 액세스할 수 있는 옵션이 있습니다.

  • 00:55:00 이 섹션에서는 OpenCV 주간 웨비나의 호스트가 OpenVINO와 ARM 장치의 호환성 및 ONNX 교환 형식을 사용할 때 잠재적인 성능 또는 정확도 손실과 같은 주제에 대한 청중의 질문을 읽습니다. 주최자와 발표자는 OpenVINO가 실제로 실행되어 ARM CPU 장치를 향상시킬 수 있으며 ONNX는 대부분의 모델에서 성능을 향상시킬 수도 있다고 설명합니다. 그러나 한 형식에서 다른 형식으로 변환할 때 항상 테스트 세트에서 정확도를 테스트하는 것이 좋습니다. 호스트는 또한 ONNX가 청중의 질문과 달리 동적 모양 모델을 지원한다고 분명히 밝힙니다. 마지막으로 호스트와 발표자는 훌륭한 프레젠테이션과 유익한 세션을 제공한 청중과 주최자인 Phil에게 감사를 표합니다.
#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68
#OpenVINO Execution Provider For #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68
  • 2022.08.09
  • www.youtube.com
Devang Aggarwal and Preetha Veeramalai join the show to give us a rundown of how OpenVINO can work with ONNX Runtime to squeeze even more performance out of ...
 

ONNX로 신경망 가져오기



ONNX로 신경망 가져오기

이 비디오는 기계 학습에서 ONNX(Open Neural Network Exchange) 프로젝트의 중요성과 다양한 도구에서 모델 변환의 이점을 살펴봅니다. 연사는 모델을 수동으로 로드하거나 자동화된 도구를 사용하는 문제와 ONNX가 그래프 기반 계산 모델을 통해 이 문제를 해결하는 방법에 대해 논의합니다. 연사는 또한 복잡한 모델의 수동 변환 및 다양한 프레임워크와의 호환성에서 ONNX의 이점을 강조합니다. 비디오는 매개변수화된 네트워크 모델, ONNX의 구조 및 프로젝트를 사용할 때 발생할 수 있는 잠재적인 문제를 다룹니다. 이러한 어려움에도 불구하고 발표자는 ONNX가 다양한 회사의 실질적인 지원으로 인해 번창할 것이라고 믿습니다.

  • 00:00:00 이 섹션에서 발표자는 기계 학습에서 ONNX의 중요성과 모델을 수동 또는 자동화 도구로 로드할 때 직면하는 어려움에 대해 논의합니다. 발표자는 PyTorch 및 TensorFlow의 도입으로 대부분의 모델이 해당 프레임워크에서 개발되어 외부 모델을 다른 프레임워크에 가져오기가 어렵다고 설명합니다. 모델을 변환하는 수동 프로세스는 프로세스에 가중치를 아키텍처에 연결하는 작업이 포함되기 때문에 시간이 많이 걸리고 지루합니다. 이는 재미있는 일이 아닙니다. 그런 다음 연사는 신경망 저장소의 성장과 버전 12 이후 저장소에 여러 모델을 추가한 방법에 대해 설명합니다. 또한 2018년에 도입된 이미지 분류 네트워크인 MobileNet을 소개합니다. 더 빠르게.

  • 00:05:00 섹션에서는 매개변수화된 네트워크 모델의 중요성과 신경망 저장소에서 모델이 필요한 이유에 중점을 둡니다. 매개변수화가 없으면 리포지토리가 너무 길어지고 탐색하기 어려워집니다. 또한 기본이 아닌 모델을 선택하는 방법을 설명하고 언어에 따라 세그먼트를 단어 또는 하위 단어로 토큰화하는 BPE 모델의 예를 제공합니다. 이 섹션은 또한 2019년 2월 14일에 출시된 유명한 모델과 같은 복잡한 모델의 수동 변환이 어려울 수 있으므로 수동 변환에서 ONNX의 필요성을 강조합니다.

  • 00:10:00 이 섹션에서는 화자가 GPD2 모델에서 사용되는 넷 인코더 기능에 대해 자세히 설명합니다. 이 함수에는 모델에 필요한 모든 전처리가 있으며 문자열을 토큰 목록으로 변환합니다. 또한 위치 인덱스를 제공하고 사용 중인 모델의 크기에 따라 크기가 768인 벡터를 가집니다. 발표자는 800-1000 계층 네트워크의 아키텍처를 수작업으로 생성하는 것은 불가능했으며 이것이 ONNX가 필요한 이유라고 설명합니다. ONNX 사용의 이점은 모든 종류에 대해 단일 변환기를 유지 관리할 필요가 없으며 사용자가 다양한 모델을 효과적으로 가져오기 위해 활용할 수 있는 모델 동물원이 있다는 것입니다.

  • 00:15:00 이 섹션에서는 YouTube 사용자가 ONNX(Open Neural Network Exchange) 프로젝트의 이점과 사양에 대해 설명합니다. 이 프로젝트는 최신 도구에서 모델 변환을 가능하게 하여 모델 생성을 위한 최상의 도구를 쉽게 선택할 수 있도록 합니다. ONNX에는 대기업을 포함한 방대한 커뮤니티 파트너 목록이 있으므로 다양한 도구 간에 모델을 쉽게 이동할 수 있습니다. 이 프로젝트는 다른 많은 프레임워크에는 없는 하드웨어 최적화 도구와 시각화 도구를 제공합니다. 유튜버는 이 프로젝트가 다양한 회사로부터 상당한 지원을 받고 있기 때문에 계속 번창할 것이라고 믿는다.

  • 00:20:00 이 섹션에서 연사는 연산자가 그래프 외부에 구현된 그래프 기반 계산 모델인 ONNX의 구조에 대해 설명합니다. 그래프의 각 노드는 연산자로 참조되며 프레임워크 간에 이식 가능해야 하는 하나 이상의 입력 및 출력이 있습니다. 연사는 ONNX 작동 방식의 예를 제공하고 프로토콜 형식의 모델을 가져와 수학적 연결로 변환하는 내부 기능을 시연합니다. 그래프에는 모델과 관련된 메타데이터가 포함되어 있습니다. 그런 다음 발표자는 그래프의 노드가 어떻게 다른지 설명하고 그래프의 노드 중 하나인 컨볼루션 레이어의 속성에 대해 토론하는 데 시간을 보냅니다. 마지막으로 그는 레이어의 차원에 대한 정보를 얻는 방법을 보여줍니다.

  • 00:25:00 이 섹션에서 연사는 ONNX로 작업할 때 발생할 수 있는 몇 가지 문제에 대해 논의합니다. 모양 변경 연산자에 배지 차원이 없을 때 특정 오류가 발생할 수 있으므로 이러한 유형의 사례를 지원하려면 연산자 적용 범위를 개선해야 합니다. 연사는 RNN 및 정적 하이퍼 네트워크에 대한 지원을 추가하고 버전 및 모양 추론 및 모델 체커와 같은 다른 도구를 연결하는 측면에서 향후 수행해야 할 작업이 있다고 언급합니다. 또한 통신사 범위를 개선하는 작업이 계속 진행 중입니다. 그러나 연사는 ONNX가 활발히 개발되고 있으며 주요 기업의 지원을 받고 있다고 지적합니다.
Importing Neural Networks with ONNX
Importing Neural Networks with ONNX
  • 2020.04.08
  • www.youtube.com
Tuseeta Banerjee
 

ONNX로 신경망 가져오기 및 내보내기



ONNX로 신경망 가져오기 및 내보내기

이 비디오는 서로 다른 신경망 프레임워크 간에 모델을 교환하기 위해 기계 학습 모델을 위한 플랫폼 간 사양 및 파일 형식으로 ONNX를 사용하는 방법을 보여줍니다. 발표자는 Mathematica 및 Keras를 통해 ONNX를 사용하여 신경망을 가져오고 내보내는 방법과 메타데이터를 검사하고 가져오는 방법과 내보낼 때 메타데이터를 설정하는 방법을 보여줍니다. 또한 Core ML, PyTorch 및 Wolfram 언어 간의 모델 내보내기 및 가져오기와 변환 중 올바른 오프셋 사용의 중요성에 대해서도 논의합니다. 연사는 가져오기 및 내보내기에 대한 지원 확대, 가져오기에 대한 까다로운 사례 개선, 여러 운영자 세트 버전으로 내보내기 허용을 포함하여 ONNX의 미래에 대해 논의합니다. 또한 연사는 ONNX와 MXNet의 차이점을 설명하고 내부 유틸리티를 사용하여 ONNX로 내보낼 수 있는 기능을 확인하는 방법에 대한 정보를 제공합니다.

  • 00:00:00 이 섹션에서는 Matteo Salvarezza와 Maria Sarksyan이 서로 다른 신경망 프레임워크가 서로 모델을 교환할 수 있게 해주는 기계 학습 모델을 위한 교차 플랫폼 사양 및 파일 형식인 ONNX를 소개합니다. Mathematica 및 Keras를 통해 ONNX를 사용하여 신경망을 가져오고 내보내는 방법을 시연하고 메타데이터를 검사하고 가져오는 방법과 내보낼 때 메타데이터를 설정하는 방법을 보여줍니다. 그런 다음 Fortnite 모델을 Mathematica에서 Keras로 변환한 다음 ONNX로 변환한 다음 Mathematica로 다시 가져오는 방법을 보여줍니다.

  • 00:05:00 이 섹션에서 발표자는 이미지를 백질과 회백질로 분할하여 인간 두뇌의 다양한 해부학적 조직을 나타내는 분할 모델에 대해 논의합니다. 이 모델의 아키텍처는 공유 단위 유형 인코더와 개별 디코더로 구성됩니다. 연사는 뇌 이미지를 JPEG 파일로 내보내고, Python으로 가져오고, 이미지를 평가하기 위해 모델을 실행하고, Mathematica로 다시 가져오기 위해 분할된 이미지를 NS 파일로 내보내는 과정을 설명합니다. 이 프로세스에는 OneNext 라이브러리를 사용하고 추가 검사기를 수행한 다음 ONNX 내보내기 가져오기, Keras 모델에 대한 입력 설정, 예측 수행, 분할된 이미지를 NS 파일로 내보내기가 포함됩니다. 마지막으로 화자는 이미지의 가져온 범위가 0에서 1 사이이고 255로 나눈 값인지 확인하는 것이 중요하다고 말합니다.

  • 00:10:00 비디오의 이 섹션에서 연사는 ONNX를 사용하여 신경망 가져오기 및 내보내기에 대해 설명합니다. 그들은 Keras에서 ONNX로 모델을 내보낸 다음 Mathematica로 다시 가져올 가능성을 언급합니다. 연사는 변환 프로세스에서 올바른 오프셋을 사용하는 것의 중요성을 강조하고 특정 작업은 네트워크 수술 연산자를 사용하여 교체해야 할 수도 있음을 언급합니다. 그런 다음 ONNX ML 도구 패키지를 사용하여 모델을 Core ML에서 ONNX로 이동하는 방법과 사전 훈련된 모델 및 해당 클래스를 Core ML로 내보내는 방법을 시연합니다. 비디오는 프로세스에 관련된 많은 단계가 있음을 강조하고 사용자가 스스로 평가할 수 있는 예를 제공합니다.

  • 00:15:00 이 섹션에서 발표자는 적절한 기능을 사용하여 평균 및 분산 수정을 포함하여 ONNX에서 Core ML로 내보내는 방법을 설명합니다. 또한 Net을 PyTorch에서 ONNX로 변환한 다음 전체 Wolfram 언어로 변환하는 방법도 다룹니다. 이 과정에는 최종 형식을 사용할 수 있도록 하기 위해 필요한 수술이 포함되며, 연사는 사용 가능한 형식을 얻고 평가할 수 있었던 방법을 보여줍니다. 마지막으로 발표자는 사전 훈련된 네트워크와 클래스를 가져오고 내보내는 방식으로 ONNX를 통해 Wolfram 언어에서 PyTorch로 이동하는 마지막 단계를 시연합니다.

  • 00:20:00 비디오의 이 섹션에서 연사는 ONNX로 신경망 가져오기 및 내보내기에 대해 논의합니다. ONNX 모델이 로드되면 PyTorch에서 변환 및 평가가 가능하며 크기 조정, 중앙 자르기 및 정규화와 같은 변환이 사용된다고 설명합니다. 모델은 확률이 가장 높은 세 클래스를 얻기 위해 평가됩니다. 그런 다음 연사는 가져오기 및 내보내기에 대한 지원 확대, 가져오기에 대한 까다로운 사례 개선, 여러 운영자 세트 버전으로 내보내기 허용을 포함하여 ONNX 가져오기 및 내보내기의 미래에 대해 논의합니다.

  • 00:25:00 이 섹션에서는 발표자가 ONNX와 MXNet의 차이점을 설명합니다. MXNet은 완전한 신경망 프레임워크인 반면 ONNX는 신경망을 내보내고 가져오는 데 사용되는 파일 형식일 뿐입니다. 화자는 또한 실제 프레임워크 역할을 하는 ONNX 런타임이라는 별도의 소프트웨어가 있다고 언급합니다. 발표자는 내부 유틸리티를 사용하여 ONNX로 내보낼 수 있는 기능을 확인하는 방법에 대한 정보도 제공합니다.
Importing and Exporting Neural Networks with ONNX
Importing and Exporting Neural Networks with ONNX
  • 2022.01.22
  • www.youtube.com
ONNX is an open format to represent deep learning models. It allows easy conversion of models from one framework to another. In this talk, we will provide an...
 

Tensorflow 모델을 ONNX 형식으로 변환 - 인간 감정 감지



Tensorflow 모델을 Onnx 형식으로 변환 - 인간 감정 감지

이 동영상에서는 선행 학습된 TensorFlow 모델을 ONNX 런타임을 사용하여 다양한 하드웨어 플랫폼에서 해석할 수 있는 기계 학습 모델을 나타내는 공통 형식을 제공하는 ONNX 형식으로 변환할 때의 이점에 대해 설명합니다. 모델을 변환함으로써 개발자는 모델을 다른 프레임워크에서 보다 효율적으로 실행하거나 다른 실무자와 보다 쉽게 사용할 수 있습니다. 이 비디오는 ONNX GitHub 리포지토리에서 제공되는 도구 및 사양을 사용하여 TensorFlow 및 Keras 모델을 ONNX 형식으로 변환하는 프로세스를 보여주고 ONNX 형식이 모델을 최적화하고 예측을 위한 런타임을 줄이는 방법을 강조합니다. ONNX 모델은 또한 CPU에서 사람의 감정을 감지하는 TensorFlow 모델보다 성능이 뛰어납니다.

  • 00:00:00 비디오의 이 섹션에서 발표자는 개방형 신경망 교환을 나타내는 ONNX 형식에 대해 설명합니다. Microsoft, Facebook 및 AWS가 공동 개발한 ONNX 표준은 ONNX 런타임을 사용하여 다양한 하드웨어 플랫폼에서 해석할 수 있는 기계 학습 모델을 나타내는 공통 형식을 제공합니다. 사전 훈련된 TensorFlow 모델을 ONNX 형식으로 변환함으로써 개발자는 이를 PyTorch와 같은 다른 프레임워크의 모델로 변환할 수 있으므로 모델이 다른 프레임워크에서 훨씬 더 효율적으로 실행되거나 다른 실무자가 사용할 수 있습니다. ONNX 런타임은 개발자가 선택한 모든 하드웨어 플랫폼에서 ONNX 모델을 실행할 수 있는 경량의 모듈식 추론 엔진입니다. 전반적으로 발표자는 모델을 ONNX 형식으로 변환하는 유연성과 용이성을 강조하여 개발자가 선택한 프레임워크로 더 쉽게 작업할 수 있도록 하면서 모델이 모든 하드웨어 플랫폼에서도 실행될 수 있도록 합니다.

  • 00:05:00 이 섹션에서 비디오는 TensorFlow를 ONNX 도구 및 ONNX 런타임에 사용하여 TensorFlow 모델을 ONNX 형식으로 변환하는 프로세스를 다룹니다. 동영상에서는 초기 TensorFlow 모델의 크기가 거의 1GB였고 배포에 동일한 양의 공간이 필요했지만 최적화된 ONNX 버전은 327MB에 불과하다고 설명합니다. 또한 비디오는 ONNX GitHub 리포지토리에서 제공되는 사양을 사용하여 Keras 모델을 ONNX 형식으로 변환하는 방법을 보여줍니다. 마지막으로 비디오는 변환된 모델을 추론 테스트할 수 있다고 언급하며 끝납니다.

  • 00:10:00 이 섹션에서 연사는 CPU에서 실행되는 감정 감지 모델을 시연하여 TensorFlow가 필요하지 않은 ONNX 런타임을 사용하여 ONNX 모델을 실행하는 방법을 설명합니다. 먼저 발표자는 CPU 실행 공급자를 지정하고 ONNX 런타임을 가져오는 방법을 보여줍니다. 다음으로 발표자는 출력 이름을 올바르게 지정하는 것의 중요성을 강조하고 TensorFlow 대신 NumPy를 사용하여 입력 이미지를 전달합니다. 감정에 대한 확률을 제공하는 ONNX 모델은 TensorFlow가 필요하지 않기 때문에 입력 이미지에서 감정을 감지하고 동일한 확률을 훨씬 빠르게 생성할 수 있습니다. 화자는 시간 라이브러리를 가져와 TensorFlow와 ONNX 런타임으로 감정 감지 모델을 실행할 때의 속도 차이를 시연합니다.

  • 00:15:00 비디오의 이 섹션에서 발표자는 CPU와 GPU를 모두 사용하여 TensorFlow 및 ONNX 모델의 추론 시간을 측정하는 방법을 시연합니다. GPU가 있는 TensorFlow 모델은 실행하는 데 0.15초가 걸리는 반면 CPU가 있는 ONNX 모델은 0.5초가 걸립니다. 그런 다음 발표자는 GPU와 함께 ONNX 런타임을 설치하고 런타임을 다시 시작하여 GPU 버전을 고려합니다. 마지막으로 GPU가 있는 ONNX 모델의 추론 시간을 측정하고 TensorFlow 모델과 비교합니다.

  • 00:20:00 이 섹션에서 비디오는 TensorFlow 모델을 ONNX 형식으로 변환하는 프로세스와 초기 TensorFlow 모델을 최적화하는 방법을 보여줍니다. ONNX 형식을 사용하면 모델을 최적화하고 예측 실행 시간을 줄일 수 있습니다. 이 비디오는 GPU 및 CPU로 원래 TensorFlow 모델을 실행한 다음 GPU로 ONNX 형식을 실행한 다음 예측당 평균 시간을 측정하기 위해 100개의 예측으로 두 모델을 테스트하는 방법을 보여줍니다. ONNX 모델은 단일 예측에 걸리는 평균 시간이 23밀리초로 초기 TensorFlow 모델보다 6배 더 빠릅니다.

  • 00:25:00 이 섹션에서 발표자는 인간 감정 감지를 위한 Tensorflow 모델과 비교한 ONNX 모델의 성능에 대해 논의합니다. CPU를 사용하는 ONNX 모델은 Tensorflow 모델보다 약 2배 빠르게 실행됩니다. 발표자는 0.8을 0.35로 나눈 값이 두 모델 모두에서 실행되었고 Onnx 모델이 Tensorflow보다 성능이 뛰어났다는 구체적인 예를 제공합니다.
Converting Tensorflow model to Onnx format - Human emotions detection
Converting Tensorflow model to Onnx format - Human emotions detection
  • 2023.01.13
  • www.youtube.com
In this section we continue our human emotions detection project. We shall focus on converting the trained Tensorflow model into the Onnx format.Colab Notebo...
사유: