取引のためのONNXの学習 - ページ 14

 

NVAITC ウェビナー: TensorRT を使用したモデルのデプロイ



NVAITC ウェビナー: TensorRT を使用したモデルのデプロイ

NVAITC ウェビナーのこのセクションでは、ソリューション アーキテクトの Nikki Loppie が、NVIDIA の高性能ディープラーニング推論用ソフトウェア開発キットである TensorRT を紹介します。 TensorRT は、組み込みデバイスからデータ センターまで、さまざまなプラットフォームで低レイテンシと高スループットの推論を実現する推論オプティマイザーとランタイムを提供します。 Loppie は、TensorRT が推論パフォーマンスを最適化するために使用する 5 つのテクノロジー (カーネル フュージョンや精度キャリブレーションなど) について説明します。開発者は TensorRT の Python および C++ API を使用してこれらの最適化を独自のアプリケーションに組み込むことができ、trtorch などのコンバーター ライブラリを使用して PyTorch モデルを推論用に最適化できます。 Loppie は、trtorch ライブラリを使用して TensorRT 最適化モデルを保存する方法を示し、画像分類のために最適化されていないモデルに対して最適化されたモデルをベンチマークし、半分の精度で大幅なスピードアップを示します。

  • 00:00:00 ウェビナーのこのセクションでは、ソリューション アーキテクトの Nikki Loppie が、推論における効率の重要性と、プラットフォームの移植性の必要性について説明します。彼女は TensorRT を紹介します。TensorRT は、これら 2 つの課題に対処する高性能のディープ ラーニング推論用の NVIDIA によるソフトウェア開発キットです。 TensorRT には、組み込みデバイスからデータ センターまで、幅広いプラットフォームで低レイテンシと高スループットの推論を実現するための推論オプティマイザとランタイムが含まれています。また、すべての主要な深層学習フレームワークと互換性があります。次に Loppie は、カーネル フュージョン、精度キャリブレーション、カーネル自動チューニングなど、推論パフォーマンスを最適化するために TensorRT が実装する 5 つのテクノロジーについて説明します。

  • 00:05:00 このセクションのウェビナーでは、カーネル実行時間を最適化し、メモリ フットプリントを削減し、マルチストリーム実行を使用して並列推論をサポートする TensorRT の機能を紹介します。開発者は、TensorRT の Python および C++ API を使用して、これらの最適化を独自のアプリケーションに組み込むことができます。このウェビナーでは、tr torch などのコンバーター ライブラリを使用して、推論用に PyTorch モデルを最適化する方法についても説明します。この手順には、モデルの保存、読み込み、ResNet モデルの初期化、TorchScript を使用したコンパイル、そして最後に TensorRT 形式への変換が含まれます。その後、最適化されたモデルをターゲット プラットフォームにデプロイできます。

  • 00:10:00 ウェビナーのこのセクションでは、TensorRT に最適化されたモデルを保存して、後で使用したり、trtorch ライブラリを使用して他のプラットフォームに展開したりする方法を講演者が実演します。講演者は、ImageNet データセットで実行されている ResNet-18 および ResNet-50 モデルを使用した画像分類の例を使用します。 trtorch の最適化されたモデルは、最適化されていないモデルと比較して半分の精度で大幅なスピードアップを示し、ResNet-18 では 5.5 倍、ResNet-50 では 6.4 倍のスピードアップ係数が得られます。スピーカーはまた、偏りのないベンチマークの重要性を強調し、trtorch を開始する方法について説明します。
NVAITC Webinar: Deploying Models with TensorRT
NVAITC Webinar: Deploying Models with TensorRT
  • 2020.11.30
  • www.youtube.com
Learn how to accelerate deep learning (DL) inference with TensorRT via TRTorch library. https://developer.nvidia.com/tensorrt, https://nvidia.github.io/TRTorch/
 

ESP チュートリアル - 方法: Keras/Pytorch/ONNX でアクセラレータを設計する



ESP チュートリアル - 方法: Keras/Pytorch/ONNX でアクセラレータを設計する

このチュートリアルでは、Keras/Pytorch/ONNX モデルからアクセラレーターを自動的に生成できる Chalice for ML というツールを紹介します。次にチュートリアルは、アクセラレータを ESP (Early Stage Prototyper) に統合する方法を示します。講演者は、Keras/Pytorch/ONNX でアクセラレータを設計する方法も示し、アクセラレータのインポート、テスト ベンチの追加、RTL の生成、アクセラレータの 2 つのバージョンの作成の手順を説明します。このビデオでは、Linux のコンパイルと、アクセラレータ用の Linux ユーザー空間アプリケーションの作成についても説明しています。最後に、チュートリアルはさらに学習するためのリソースで終わります。

  • 00:00:00 チュートリアルのこのセクションでは、プレゼンターが、Keras/Pytorch/ONNX モデルからアクセラレーターを自動的に生成できる Chalice for ML というツールを紹介します。このフローは、HLS 4 ML を使用して、NXP の GitHub リポジトリの ESP 内で提供されるビルド済みの Keras モデルからアクセラレータを生成することによって実証されています。生成されたアクセラレータは、インタラクティブなスクリプトを使用して ESP に統合され、テストされます。プレゼンターは、ユーザーがチュートリアルに従う前に、前提条件ガイドを確認して環境を設定する必要があることを強調しています。このチュートリアルでは、すべての手順を実行しなくても、ユーザーが実験に使用できる事前構築済みの資料も提供しています。

  • 00:05:00 チュートリアルのこのセクションでは、インストラクターが、前の手順で設計されたアクセラレータを ESP (Early Stage Prototyper) に統合する方法について説明します。アクセラレータには 3 桁の 16 進数の ID が割り当てられますが、この番号は 10 進数で 1024 を超えてはならないことに注意してください。次に、アクセラレータのデータ ビット幅 (現在のユース ケースでは 32 ビット) が定義され、入力ファイルと出力ファイルのサイズが決定されます。最後に、インストラクターは、MLP 3 層アクセラレーターの高位合成の実行を実演し、ESP を使用して HLS を実行する方法を示します。すべての手順は、System C または C++ アクセラレータの他のガイドと同じです。HLS for MLP プロジェクト フォルダーが ESP に追加され、アクセラレータを ESP システムの残りの部分とラップおよびインターフェイスするために必要なすべてのファイルが含まれています。

  • 00:10:00 ビデオのこのセクションでは、講演者が Keras/Pytorch/ONNX でアクセラレータを設計する手順を示します。最初に、アクセラレータをインポートし、シミュレーションを自動的にテストするテスト ベンチを追加する方法を示します。次に、セレクター検索と FPGA のテクノロジで実行されるプロジェクトを生成する HLS ステップを実行します。次に、生成された RTL が FPGA のテクノロジに配置され、2 つのバージョンのアクセラレータ (1 つは 32 ビット、もう 1 つは 64 ビット) が作成されます。スピーカーは、ESP X config コマンドを使用して SOC を構成し、自動的に生成されたベア メタル アプリケーションをコンパイルする方法を示します。アクセラレータのベア メタル テストをシミュレートするには、テスト プログラムを指定する必要があります。検証に合格すると、FPGA ビットストリームを生成できます。

  • 00:15:00 このセクションでは、ビデオ チュートリアルで Linux のコンパイルについて説明します。これは、シニクスをコンパイルするだけでなく、アクセラレータ用のユーザー空間テスト アプリケーションもコンパイルします。 Linux が完了すると、アクセラレータの実行可能ファイルが作成されます。これは、FPGA 上で実行される Linux ユーザー空間アプリケーションです。その後、チュートリアルは FPGA のプログラミングに進み、make FPGA run コマンドを使用してベアメタル テストを実行します。減速機のベアメタル単体テストを実行するには、先に生成したテスト プログラムを指定します。その後、Linux が実行され、ユニット テスト アプリケーションが実行されました。これにより、売り手 Reiter が正常に検出され、テストは検証に合格しました。チュートリアルは、さらに学習するためのいくつかのリソースで終了します。
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
ESP tutorial - How to: design an accelerator in Keras/Pytorch/ONNX
  • 2020.03.20
  • www.youtube.com
Tutorial guide: https://www.esp.cs.columbia.edu/docs/hls4ml/(The video tutorial was not recorded with the latest version of the ESP repository. While watchin...
 

ONNX ランタイムを使用した柔軟なハードウェアでの最適な推論



ONNX ランタイムを使用した柔軟なハードウェアでの最適な推論

このチュートリアルでは、ONNX ランタイムを使用した CPU、GPU、および OpenVINO でのモデルのデプロイについて説明します。講演者は、柔軟なハードウェアでの推論のために、OpenVINO を含むさまざまな実行プロバイダーの使用を実演します。推論のコードは、主にすべての環境で同じですが、主な違いは実行プロバイダーです。 ONNX ランタイムは、CPU と GPU で PyTorch よりも高速に推論を実行し、OpenVINO 用に別の ONNX ランタイム ライブラリが存在します。全体として、このチュートリアルでは、ONNX ランタイムを使用してさまざまなハードウェア オプションにモデルをデプロイする方法の概要を説明します。

  • 00:00:00 このセクションでは、スピーカーは仮想環境をセットアップし、ONNX ランタイムを使用して CPU、GPU、および OpenVINO 上の ResNet50 モデルで推論を実行するプロセスについて説明します。講演者は、互換性のあるアクセラレータが検出された場合、ONNX ランタイムは GPU を使用し、それ以外の場合はデフォルトで CPU を使用することに注意します。推論のコードは、主に 3 つの環境すべてで同じですが、主な違いは実行プロバイダーの変更です。講演者は、ONNX ランタイムが CPU と GPU で PyTorch よりも高速に推論を実行できることを示し、OpenVINO 用の別の ONNX ランタイム ライブラリがあることを指摘しました。

  • 00:05:00 このセクションでは、講演者は、ONNX ランタイムを使用した柔軟なハードウェアでの推論のために、CPU で OpenVINO や OpenVino などのさまざまな実行プロバイダーを使用する方法を示します。実行プロバイダーを OpenVINO に設定すると、同じコードで 30 ミリ秒、CPU 使用率が約 0.78 になります。このチュートリアルでは、ONNX ランタイムを使用して 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 は、ソリューションで重要な役割を果たす Onyx モデルを紹介し、PyTorch で機械学習モデルを使用し、それを Onyx でシリアル化して Flink にデプロイする方法を説明します。

  • 00:05:00 このセクションでは、講演者は機械学習パイプラインで Open Neural Network Exchange の略である ONNX を使用する利点について説明します。 ONNX を使用すると、モデルのトレーニング フェーズと本番の推論フェーズの間で懸念事項を分離できるため、データ サイエンティストが Python でモデルを開発し、ONNX モデルをさまざまなツールで推論に使用することが容易になります。 ONNX は、機械学習に使用される有向非巡回グラフの計算を定義するコントラクトを提供します。グラフ内の各演算子にはバージョンがあり、下位互換性と将来の継続的なサービスを可能にします。講演者は、ONNX モデルをストリーミング フレームワーク Apache Flink とパッケージ化して展開を容易にする利点についても言及しています。

  • 00:10:00 ビデオのこのセクションでは、講演者は、入力と出力の仕様を定義する機能や、ONNX ランタイム ライブラリのすべてのバージョンのモデルのサポートなど、機械学習の推論に ONNX を使用する利点について説明します。 ONNX は言語に依存せず、ほとんどの ML フレームワークでコンバーターを使用できるため、モデルを ONNX に簡単に取り込むことができます。講演者は、診断目的で netron を使用することを提案しています。最後に、スピーカーは、トレーニングなしでエンドツーエンドの処理を行うために ONNX で pi torch モデルを使用する簡単な例を示します。

  • 00:15:00 このセクションでは、スピーカーは、計算を定義するために使用される forward メソッドと、それがトレーニング用の勾配の逆伝播を管理するために高トルクでどのように使用されるかについて説明します。 add offset クラスを使用する基本的な例を示します。これは、定義された値でテンソルをオフセットします。次にスピーカーは、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 言語の全機能を活用する利点を強調しながら、トレーニングの依存関係を本番環境の推論から分離し、2 つの部分を効果的に分離します。全体として、モデルのサイズや前処理の課題など、いくつかの短所がありますが、この方法には、Flink の機能を活用し、JAR ファイルでデプロイするという点で利点があります。

  • 00:35:00 このセクションでは、講演者は ONNX を使用して Flink で機械学習推論を使用する場合、留意すべき重要な考慮事項がいくつかあることに注意します。 1 つは、数百メガバイトを占める可能性がある変換モデルなど、大規模なモデルを扱う場合の慎重なメモリ管理です。さらに、GPU の使用などのバッチ最適化とハードウェア アクセラレーションは、パフォーマンスに影響を与える可能性があります。カスタム ONNX グラフを使用して前処理を行うことができますが、これには追加の作業が必要であり、前に示したほど簡単ではありません。講演者は、ONNX が Flink でのリアルタイム機械学習を可能にし、Python トレーニング コードを Scala プロダクション コードから適切に分離することを強調します。これは、データ サイエンティストにとってメリットとなります。講演者は、TensorFlow ベースのモデルで ONNX を使用すること、および Java API、PyTorch、または TensorFlow ではなく ONNX が選ばれた理由についての質問にも答えます。

  • 00:40:00 このセクションでは、スピーカーは言語に依存しないグラフのフレームワークに依存しないスキーマとして ONNX について話します。講演者は、ONNX を使用することの興味深い特性の 1 つは、PyTorch を使用していて TensorFlow に切り替えたい場合、2 つのフレームワーク間を移動するための「手段」として 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 によるオンライン ショッピング エクスペリエンスの向上

このビデオでは、e コマース企業が AI を使用して、オンライン小売業界での勝敗を区別する影響力のある洞察を作成する方法について説明します。講演者は、合計 80 億件を超えるレビューを提供するブランドと小売業者の最大のネットワークである Bazaar Voice の例と、製品マッチングを使用してレビューを共有する方法を紹介します。次にスピーカーは、Python で機械学習モデルを開発し、それを ONNX 形式にエクスポートし、ノード環境を使用してサーバーレス機能にデプロイし、ONNX ランタイムで推論を実行する方法について説明します。このソリューションにより、低コストを維持しながら、何千ものクライアント カタログにまたがる何億もの製品の高速マッチングが可能になり、ブランドや小売業者にとって大幅なコスト削減と何百万もの追加レビューが実現します。スピーカーは、視聴者に ONNX の機能を使用するより多くの方法を探求し、将来の技術的進歩のためのユース ケースを共有することで締めくくります。

  • 00:00:00 このセクションでは、商取引のデジタル化により、e コマース企業が収集するデータの規模を拡大し、AI を使用して影響力のある洞察を作成し、オンライン小売業界での勝敗を分けていることを学びます。一例として、合計 80 億以上のレビューを提供する世界最大のブランドと小売業者のネットワークである Bazaar Voice の 1 か月あたり 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 を使用したエンドツーエンドのディープ ラーニングの展開

このビデオでは、さまざまな言語、フレームワーク、依存関係、パフォーマンスのばらつきの管理、チーム間の摩擦、独自のフォーマット ロックインなど、エンドツーエンドのディープ ラーニング展開の課題について説明します。 Open Neural Network Exchange (ONNX) は、ディープ ラーニングのシリアル化のためのプロトコル バッファー ベースの形式として導入されました。主要な深層学習フレームワークをサポートし、モデルを実行するための自己完結型のアーティファクトを提供します。 ONNX ML は、従来の機械学習の前処理をサポートする ONNX 仕様の一部としても説明されています。 ONNX の限界は認識されていますが、言語、フレームワーク、ランタイム、およびバージョンのさまざまな次元にわたって真の移植性を提供する大規模な組織からの強力なサポートにより、急速に成長しているプロジェクトと見なされています。

  • 00:00:00 このセクションでは、IBM のプリンシパル エンジニアである Nick Pentreath が、Open Neural Network Exchange を使用したエンド ツー エンドのディープ ラーニング展開を紹介します。機械学習ワークフローには、データの分析、モデル用の前処理、モデルのトレーニング、実際のアプリケーションへのデプロイ、維持と監視など、多くのステップがあります。 Pentreath は、ワークフローがさまざまなチームやツールにまたがっており、モデルにサービスを提供するインフラストラクチャが不可欠であることについて説明しています。

  • 00:05:00 このセクションでは、スピーカーは、機械学習の展開に不可欠な 3 つの質問について説明します。何を展開するのか、どこに展開するのか、どのように展開するのかです。機械学習モデルの展開には、変換、特徴抽出、前処理など、トレーニング済みモデルに先行する一連のステップ全体の組み込みが含まれます。トレーニング中に使用したものと同じ前処理手順をライブ環境に適用することが不可欠です。違いがあるとデータの偏りが発生し、壊滅的な結果につながる可能性があるからです。講演者は、ディープ ラーニングでさえ注意深い前処理と特徴量エンジニアリングが依然として必要であると指摘し、前処理の標準化に伴う課題を強調しています。これらの課題には、さまざまなフレームワーク間でのさまざまなデータ レイアウトやカラー モードが含まれており、微妙ではあるが予測に大きな影響を与える可能性があります。

  • 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 ランタイム

このビデオでは、シリアル化とバージョン管理においてモデルの相互運用性と効率性を高めるために作成された Open Neural Network Exchange (ONNX) 形式について説明します。 ONNX は、中間表現レイヤー、オペレーター仕様で構成され、さまざまなタイプのデータをサポートします。 C++ およびアセンブラーで実装された ONNX ランタイムは、下位互換性を提供し、実行プロバイダー、カスタム オペレーター、およびグラフ オプティマイザーによって拡張可能です。 API は、プラットフォーム、プログラミング言語、および実行プロバイダーをサポートします。ユーザーは、セッションを作成し、モデルを最適化し、将来の使用のためにそれらをシリアル化できます。スピーカーは、Android デバイスで実行できる ONNX ランタイムの汎用性と効率性をデモンストレーションします。

  • 00:00:00 このセクションでは、ONNX エンジニアリング チームの Venetra が、AI モデルの相互運用可能な標準である Open Neural Network Exchange である ONNX を紹介します。彼女は、Microsoft が HoloLens から Xbox、Skype に至るまで、製品スイートのほぼすべての側面に機械学習を統合したため、大規模な展開でさまざまな課題が発生したと説明しています。 ONNX は、さまざまなフレームワークとデプロイ ターゲットのモデル デプロイ プロセスを標準化することで、効率的な推論を最適化するために作成されました。目標は、1 つの標準を実装することで多くのフレームワークのモデルをサポートし、データ サイエンティスト、ハードウェアの貸し手、サービスの作成者、ML エンジニアなど、すべてのユーザーに一貫したエクスペリエンスを提供することです。

  • 00:05:00 このセクションでは、Vinitra Swamy と Pranav Sharma が、Microsoft、Facebook、Amazon、NVIDIA、Intel などを含む創設パートナーのコンソーシアムである ONNX について説明します。 ONNX は、フレームワークごとに異なる演算子のセットがあるにもかかわらず、標準的な方法で演算子を定義する中間表現レイヤーと完全な演算子仕様で構成されます。モデルを ONNX に変換するためのコードはそれほど長くはなく、変換により、推論と相互運用性の面でユーザーを大幅に節約できます。さらに、ONNX には、ディープ ラーニング モデルと機械学習モデルの両方の相互運用性を可能にする設計原則があります。ユーザーは、ONNX モデル ズー、モデル作成サービス、またはコンバーターにアクセスして、ONNX を使い始めることができます。

  • 00:10:00 セクションでは、効率的なシリアル化とバージョン管理をサポートしながら、相互運用性と下位互換性を実現するために作成されたモデル形式である ONNX のコンポーネントと設計について説明します。この形式は、モデル、ノードを含む計算グラフ、および演算子仕様で構成されます。サポートされるデータのタイプには、標準のテンソル タイプと 2 つの非テンソル タイプ、シーケンスとマップが含まれます。オペレーターの仕様には、入力、出力、制約、および例が含まれています。 relu 演算子の演算子仕様の例を示します。

  • 00:15:00 ビデオのこのセクションでは、Vinitra Swamy と Pranav Sharma が、Open Neural Network Exchange (ONNX) 形式でサポートされているさまざまなバージョンと演算子について説明しています。彼らは、ONNX には 156 を超える深層学習の仕様操作と、さまざまなオペレーター間で相互運用可能な 18 の従来の機械学習操作があると説明しています。さらに、ユーザーは ONNX フレームワークを使用して、モデルのカスタム op を作成できます。また、中間表現レイヤー、オフセット、個々のオペレーターという 3 つの異なるレベルで行われるバージョン管理の重要性も強調しています。最後に、ONNX 用のオープンソースで高性能な推論エンジンである ONNX ランタイムについて説明します。クロスプラットフォームであり、下位互換性があるように設計されているため、運用環境での展開に適しています。

  • 00:20:00 このセクションでは、ONNX ランタイムのアーキテクチャと、その中でモデルがどのように実行されるかに焦点を当てています。下位互換性とパフォーマンスは、C++ で実装され、一部がアセンブラーで実装されている ONNX ランタイムの主な懸念事項でした。 ONNX ランタイムは、「実行プロバイダー」と呼ばれるものを使用して、ハードウェア アクセラレータをサポートしています。パーティショニング アルゴリズムにより、モデルをハイブリッド実行ステージで実行できるようになり、個々の実行プロバイダーはサブグラフをさらに最適化してパフォーマンスを向上させることができます。最後に、ONNX ランタイムは、モデルを実行するためにグラフ内のすべてのノードを通過するインタープリターとして機能します。

  • 00:25:00 このセクションでは、スピーカーは ONNX および ONNX ランタイムの実行モードについて説明します。これらは順次および並列です。ユーザーは実行モードごとに構成するスレッドの数を制御でき、結果は API を介して送信されます。講演者は、異なるデバイスが同じメモリを共有しない可能性があることに注意してください。そのため、実行された最適化に基づいてメモリ コピー ノードが挿入されます。彼らはまた、ユーザーがグラフを実行する実行プロバイダーの優先順位を付けたリストを指定する必要がある、グラフのパーティショニング プロセスについても説明しています。ただし、次のリリースでは、スマート パーティショニングと呼ばれる新しいフェーズが導入され、ONNX がグラフを配置する最適な方法とグラフを効率的に実行する方法を見つけ出します。講演者は、ハードウェア アクセラレータ上のソフトウェア抽象化である実行プロバイダーについても触れています。実行プロバイダーには、カーネル ベースとランタイム ベースの 2 種類があります。後者は、実行プロバイダーがグラフの一部を実行するブラック ボックスです。

  • 00:30:00 このセクションでは、スピーカーが ONNX ランタイムの設計原則について説明し、実行プロバイダー、カスタム オペレーター、グラフ オプティマイザーなどのオプションによる拡張性を強調します。また、Tensor RT、Direct ML、OpenVINO など、サポートされているプラットフォーム、プログラミング言語、および実行プロバイダーのマトリックスも提供します。講演者は、セッションの高レベルの構造と、実行関数を呼び出す前にセッション オブジェクトを作成するスレッド セーフな方法について説明します。また、モデルの最適化にかかる時間がモデルのサイズとその最適化の機会にどのように依存するかについても説明します。

  • 00:35:00 このセクションでは、講演者は、セッションの作成と、実行オプションとセッション オプションの使用、および将来の使用のために最適化されたモデルをシリアル化する機能について説明します。また、C# を使用したくない人のために Python を使用するオプションを使用して、カスタム オペレーターを登録するプロセスについても説明しています。 ONNX ランタイム 1.0 バージョンがリリースされ、今後 API が壊れることはありません。
    互換性は CentOS 7.6 までさかのぼります。最適なパフォーマンスのためにモデルを変換および調整するためのオープンソース ツールである ONNX Go Live Tool についても説明します。このセクションは、ONNX を利用した Microsoft サービスの例で締めくくります。これには、Office の不足している決定子モデルでの 14 倍のパフォーマンス向上と、コグニティブ サービスで使用される光学式文字認識モデルでの 3 倍のパフォーマンス向上が含まれます。

  • 00:40:00 このセクションでは、スピーカーは ONNX ランタイム API について説明します。これはプレビュー モードであり、Android デバイスで ONNX ランタイムを実行できるようにします。彼らはまた、トレーニングのサポートについても言及しています。これは現在探索的であり、ONNX ランタイムを使用して既に作成されたモデルを調整できるかどうかを確認することを目的としています。次にスピーカーは、YOLOv3 オブジェクト検出モデルで ONNX ランタイムを使用するデモンストレーションを行い、ONNX ランタイムが用途が広く、効率的であり、優れたパフォーマンスが必要な場合や異なるフレームワーク間でモデルをサポートする必要がある場合に役立つことを示します。

  • 00:45:00 ビデオのこのセクションでは、プレゼンターが、大規模で複雑なモデルを使用して画像とそれぞれのクラスを識別することにより、ONNX ランタイムを実演します。また、Onnx エコシステム コンバーターの簡単なデモを紹介し、ユーザーが Jupyter Notebook のさまざまなフレームワークからモデルをアップロードして変換できるようにします。ドキュメント分類モデルを Apple の機械学習フレームワークである CoreML から ONNX に変換し、その精度を検証します。彼らは、モデルを ONNX に変換するのは 1 回限りのコストであり、効率的なプロセスであることに注目しています。

  • 00:50:00 このセクションでは、講演者がビデオで取り上げた内容を要約します。これには、ONNX と ONNX ランタイムを使用する利点、さまざまなフレームワークから ONNX に変換するさまざまな方法、および 26 歳以上での ONNX の採用の増加が含まれます。企業。彼らは、聞いてくれた聴衆に感謝し、質疑応答セッションを続けることに興奮していることを表明します。
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 を紹介し、ONNX がトレーニングと推論を切り離して展開をより迅速かつ効率的にする方法を説明します。 scikit-learn を使用したライブ デモを提供し、機械学習パイプラインを ONNX 形式に変換する方法を説明しています。また、機械学習モデルを展開するための Docker コンテナーの制限についても説明し、代わりに ONNX を使用する利点を強調しています。彼らは、セキュリティを強化するためのモデルの暗号化のトピックに触れ、ONNX の使いやすさの問題に対処します。ONNX はまだ新しいエコシステムであり、不可解なエラー メッセージがいくつかあります。

  • 00:00:00 ビデオのこのセクションでは、プレゼンターが ONNX を使用した推論からモデル トレーニングを分離することの重要性について説明します。プレゼンターは、機械学習を始めた企業の 55% がモデルを本番環境に導入できていないことを指摘し、モデルを本番環境に導入することによるビジネス プロセスの自動化に価値の大部分があると主張しています。ただし、彼らはまた、モデルの展開が最初に思われるよりも複雑であることにも注意しており、そのため、ONNX がこの課題を克服するのにどのように役立つかについて議論する予定です.また、機械学習プロジェクトが通常どのように開始され、開発され、デプロイ要件と衝突するかについても説明します。

  • 00:05:00 このセクションでは、スピーカーが機械学習モデルを本番環境に導入する際の課題について議論します。特に、モデルの酸洗いとデプロイの難しさに焦点を当てています。 pickle などの未完成のパッケージを使用してモデルを転送する際に発生する問題と、モデルを本番環境に正常にロードするために正しい環境と依存関係をインストールする方法について説明します。また、モデルが遅すぎて本番環境で使用できないという問題にも対処し、モデルの変更や最適化につながります。最後に、モデルをエクスポートするためのユニバーサル ファイル形式の必要性について説明します。これにより、デプロイに任意のランタイムを簡単に使用できます。

  • 00:10:00 このセクションでは、展開に使用するツールを解放するために、トレーニング用のツールを使用して機械学習モデルを ONNX などのユニバーサル ファイル形式にエクスポートすることで、予測時間からトレーニングを切り離すという概念について講演者が説明します。 .彼らは、ONNX は「特徴量エンジニアリングを含むモデル全体を記述し、それをバイナリ形式に保存するための標準化された方法」であると説明しています。彼らはまた、ニューラル ネットワークだけでなく、さまざまな種類の機械学習モデルを使用する場合、ONNX が適切なオプションであることにも注目しています。ただし、ONNX を使用するには、機械学習モデルをノードが演算子であり、エッジがグラフを流れるデータである計算グラフとして記述する必要があること、および ONNX が型情報と形状を使用して厳密に型指定されていることを強調しています。

  • 00:15:00 このセクションでは、スピーカーは、形式との互換性を確保するために使用する必要がある一連の演算子を定義する ONNX の詳細について説明します。この講演の時点では、線形リグレッサーや真のアンサンブル リグレッサーなどのより複雑なオペレーターを含め、175 のオペレーターがありました。 ONNX は、各オペレーターを格納するために必要なデータも指定し、他の依存関係を必要とせずにファイル全体を自己完結型にします。スピーカーは、機械学習モデルだけでなく、有向非巡回グラフで表現できるものはすべて ONNX に変換できることを強調しています。さらに、各ステップを独自の有向非巡回グラフとして表すことができる限り、パイプライン全体を ONNX に変換できます。

  • 00:20:00 このセクションでは、スピーカーは、オニキス演算子のグラフとして簡単に定義できる numpy 操作を使用して単純なインピュターとリグレッサーを作成する方法を示します。 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 グラフ内のインスタンシエーターのデータベースにすべてのデータが必要です。最後に、彼らは Onyx の使いやすさの問題について議論します。エラー メッセージはわかりにくいかもしれませんが、その年齢と企業の支援を考えると、エコシステムが改善されることを楽観視しています.
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
Jan-Benedikt Jagusch Christian Bourjau: Making Machine Learning Applications Fast and Simple with...
  • 2022.05.12
  • www.youtube.com
Speaker:: Jan-Benedikt Jagusch Christian BourjauTrack: General: ProductionTaking trained machine learning models from inside a Jupyter notebook and deploying...
 

エッジとクラウドでのハイブリッド推論のための ONNX ランタイム Azure EP



エッジとクラウドでのハイブリッド推論のための ONNX ランタイム Azure EP

ONNX ランタイム チームは、開発者が Azure EP を使用してエッジ コンピューティングとクラウド コンピューティングの両方に単一の API を使用できるようにするハイブリッドの世界への最初のステップをリリースしました。これにより、デバイス接続の問題が解消され、開発者は最適化したクラウド モデルに切り替えることができます。 、コストを節約し、待ち時間を短縮します。この新機能により、開発者はアプリケーション ロジックを更新し、Azure EP を介してどのパスを取るかを選択できるため、より多くの機能とパワーが提供されます。このチームは、子供用サーバーとオブジェクト検出モデルの展開、およびエンドポイントをテストして Onnx Runtime Azure を簡単に構成する方法を示します。プレゼンターは、ローカル処理とリモート処理を切り替える機能と、パフォーマンスの低いモデルとパフォーマンスの高いモデルを含む潜在的なユース ケースについても説明します。 ONNX ランタイム Azure EP は、展開に必要なパッケージを事前に読み込んで簡単に構成できるため、ソフトウェアの使いやすさに貢献します。

  • 00:00:00 このセクションでは、開発者がエッジ コンピューティングとクラウド コンピューティングの両方に単一の API を使用できるようにするハイブリッドの世界への ONNX ランタイム チームの最初のステップとして、Azure EP を紹介します。そうすることで、開発者はデバイスの接続性について心配する必要がなくなり、最適化してそこで使用しているクラウド モデルに切り替えることができ、コストと待ち時間を節約できます。この新機能により、開発者はアプリケーション ロジックを更新し、Azure EP を介してどのパスを取るかを選択できるため、より多くの機能とパワーが得られます。全体として、ONNX ランタイム チームは、開発者コミュニティから何がもたらされ、この新機能がどのように実装されるかを楽しみにしています。

  • 00:05:00 このセクションでは、新しい ONNX ランタイム (ORT) リリース 1.14 の寄稿者である Randy Schrey が、このリリースに付属する優れた機能のいくつかを紹介します。最初に、モデルのサーバー側として機能する Azure Machine Learning で呼び出されるエンドポイントを示します。彼はまた、Nvidia によって分割されたエンドポイントを提供するために利用される Triton サーバーと、その印象的なパフォーマンスと安定性についても説明します。 Schrey は、子供用サーバーを展開する方法を示し、モデルの名前、バージョン、および場所の指定を含め、その外観の概要を示します。彼はまた、Triton サーバーを展開する際に従う必要があるフォルダー構造を強調し、モデルが入力と出力を取得する方法を記述した構成ファイルを示しています。

  • 00:10:00 このセクションでは、スピーカーはオブジェクト検出モデルを展開するためのフォルダーの構造について説明し、Triton サーバーが展開するモデルを見つける方法を説明します。また、Azure で提供されるモデルの使用に関する質問に答え、Azure 上の Trtis の現在の制限について言及し、サーバー側として Triton サーバーのみをサポートしていると述べています。次にスピーカーは、エンドポイントのテスト、Onnx Runtime Azure を簡単にインストールするプロセス、および Onnx Runtime Azure を Edge と Cloud でのハイブリッド推論に使用して、クライアント側からオンライン エンドポイントを操作する方法について説明します。講演者はスクリプトを提供し、Onnx Runtime Azure を使用してモデルを読み込んで使用するために必要な構成の一部について説明します。

  • 00:15:00 このセクションでは、プレゼンターは、エッジとクラウドでのハイブリッド推論に ONNX ランタイム Azure EP を使用する方法を示します。コード内の 1 つのパラメーターを変更することで、ローカル処理とリモート処理を切り替える機能を使用して、認証キーを構成し、推論を実行する方法を示します。彼らは、パフォーマンスの低いモデルとパフォーマンスの高いモデルのどちらを選択するかなど、潜在的なユース ケースについて議論し、現在のプレビュー リリースでは Triton 推論サーバーが必要ですが、将来的にはすべてのタイプの展開サーバーをサポートする予定であることに注意しています。

  • 00:20:00 このセクションでは、ONNX ランタイム 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) を実行する方法に焦点を当てています。 Nvidia TF2 量子化ツールキットと ONNX-TensorRT を使用してトレーニングされたモデルをデプロイするプロセスが説明され、さまざまな ResNet モデルの精度とレイテンシの結果が示されています。全体として、TensorFlow から ONNX-TensorRT を介した TensorRT デプロイまでのエンドツーエンドの QAT ワークフローが示されています。

  • 00:00:00 このセクションでは、NVIDIA の深層学習ソフトウェア エンジニアである Dheeraj が、量子化の基本と、TensorRT がさまざまな融合を通じて量子化されたネットワークをサポートする方法について説明します。彼は、量子化とは、線形または非線形のスケーリング手法を使用して、連続値を離散値セットに変換するプロセスであると説明しています。 TensorFlow 2.0 フレームワークを使用してトレーニングされたモデルと、トレーニング後の量子化 (PTQ) および量子化認識トレーニング (QAT) を実行する方法に焦点を当てています。 Dhiraj は、NVIDIA の量子化ツールキットと TF mod ツールキットの違いについても強調しています。ここでは、ノードが畳み込みレイヤーに異なって配置されています。

  • 00:05:00 このセクションでは、Nvidia TF2 量子化ツールキットと ONNX-TensorRT を使用してトレーニングされたモデルを展開するプロセスについて説明します。このプロセスでは、事前トレーニング済みの TensorFlow 2.0 モデルを Nvidia ツールキットで量子化し、少数のエポックで微調整して量子化プロセスをシミュレートし、モデルを 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...
理由: