1.ONNXランタイム
このビデオでは、従来の深層学習モデルを表現するためのオープン形式であるOpen Neural Network Exchange (ONNX)プロジェクトについて説明しています。 また、モデルを実行するための高性能エンジンであるONNXランタイムについても説明しています。
ONNXランタイムは、ONNXで定義されたすべての演算子の包括的なカバレッジとサポートを提供し、Linux、Windows、Macを含む多くのプラットフォームでCPUとGPUの両方で動作します。
また、AzureMLでONNXランタイムを使用してモデルを変換、読み込み、実行するためのステップバイステップガイドを提供し、さまざまなモデルのパフォーマンスと予測効率の向上など、潜在的な利点を示しています。
このビデオは、開発者がONNXを試し、成長するONNXコミュニティに貢献することを奨励しています。
2.モデルを#ONNX形式に変換する
このビデオは、MLモデルをONNXランタイムで使用するためのONNX形式に変換するためのさまざまな方法について説明しています。ONNXは、PyTorch、TensorFlow、Scikit-Learnなど、多くの一般的な機械学習ライブラリと互換性があります。
モデルをONNX形式に変換するには、適切な変換ライブラリを使用してから、このライブラリを使用してONNXモデルを作成します。これにより、ONNXランタイムでモデルを使用できるようになり、モデルのパフォーマンスが向上し、複数のフレームワークとの互換性が確保されます。
このビデオでの例では、PyTorchとTensorFlowを使用してモデルをONNX形式に変換する方法が示されています。
![機械学習モデルの評価と変数の選択 機械学習モデルの評価と変数の選択](https://c.mql5.com/36/62/www-mql5-com.jpg)
- www.mql5.com
3. ONNX:機械学習モデルのオープン形式
このビデオでは、機械学習モデルを表すために構築されたオープン形式であるONNX形式の説明を提供しています。モデルをさまざまなフレームワークからONNX形式に変換して、互換性と使いやすさを確保できます。
一部の例では、TensorFlow、PyTorch、Keras、scikit-learnなどの互換性のある形式を示し、ONNXを使用する利点を説明しています。その中には、モデルの実行時間の短縮と特定のハードウェアでの最適化されたパフォーマンスが含まれます。
次のビデオでは、モデルをKerasからONNXに変換し、画像分類と画像セグメンテーションの問題についてテストする方法を紹介しています。
![機械学習モデルの評価と変数の選択 機械学習モデルの評価と変数の選択](https://c.mql5.com/36/62/www-mql5-com__1.jpg)
- www.mql5.com
4. ONNXを使用した(深層)機械学習モデルの展開
このビデオでは、GitHubで公開されているMicrosoftオープンソースMLライブラリの開発について説明しています。
著者は、モデルがギガバイトのメモリを備えた大規模なマシン上に構築されているが、一度に1つの予測を最適化する必要がある非常に異なる条件下でモデルが使用される場合の機械学習モデル展開の問題について説明しています。
著者は、scikit-learn、XGBoost、ML.NETなどのさまざまなライブラリのパフォーマンスを実証し、パッケージサイズが大きくなるにつれてパフォーマンスの差が小さくなることを示しています。そのような場合の最適化ソリューションとして、著者はONNXを提示しています。
5.リカレントニューラルネットワーク|取引アルゴリズムのLSTM価格変動予測
このビデオでは、リカレントニューラルネットワーク、特にLSTMネットワークを使用して、FOREX、株式、仮想通貨などの金融市場の価格変動を予測する方法について説明しています。
アルゴリズムはPythonで書かれています。ダウンロードして、さまざまなパラメータでテストできます。
深層学習アルゴリズムは、優れた予測性能を示すと考えられており、ここでは、取引と価格変動予測でテストされています。さらに、RSI(相対強度インジケーター)やMA(移動平均)などのテクニカル指標を使用して、取引モデルの入力を拡張します。
![MQL5のドキュメンテーション: テクニカル指標 MQL5のドキュメンテーション: テクニカル指標](https://c.mql5.com/36/62/mql5.png)
- www.mql5.com
ONNX について知りたいことすべて
ONNX 形式は、あるフレームワークから別のフレームワークにモデルをエクスポートできる移植可能なファイル形式を提供することにより、ディープ ラーニング環境のツールとフレームワークの断片化されたセットによって提示される課題に対処することを目的としています。透明性が高く、十分に文書化されており、深層学習ドメインで使用される構文、セマンティクス、および規則を標準化し、深層学習モデルと従来の機械学習モデルの両方をサポートしています。 ONNX は、手動による最適化や変換を行わなくても、さまざまなハードウェア環境での相互運用性、効率性、および最適化を可能にします。このビデオでは、ONNX 固有のコンバーターを使用してトレーニング済みモデルを scikit-learn から ONNX 形式に変換する基本的なデモを紹介し、PI torch を使用してトレーニングが行われるリアクティブなユース ケースで最終的な推論を実行する方法を示します。テンソルフロー。
ウェビナーは、「ONNX TF バックエンド」の「準備」機能を使用して ONNX モデルを TensorFlow 形式に変換し、出力を「.pb」ファイルとして保存する方法のデモンストレーションで締めくくられます。講演者は、TensorFlow モデルを使用して ONNX を参照しなくても推論できることを指摘しています。聴衆に感謝し、講演者は、Microsoft の分散アプリケーション ランタイムに関する別のウェビナーと共に、The New Stack の ONNX に関する今後の記事を発表します。参加者からのフィードバックは肯定的でした。
- 00:00:00 ツールとフレームワークの断片化と分散が原因で機械学習とディープ ラーニングの複雑さに苦しんでいる場合、ONNX はまさに必要なソリューションである可能性があります。ウェビナーのセクションで、講演者はディープ ラーニング環境で現在直面している課題と、ONNX がそれらにどのように対処できるかについて説明します。機械学習と深層学習に関する一般的な知識があることを前提として、この説明では、ONNX と ONNX ランタイムの両方によって提供される約束の詳細な概要を提供します。このセクションの終わりまでに、ウェビナー シリーズ全体で繰り返されるテーマである、マシン インテリジェンスと最新のインフラストラクチャの融合のアイデアを聴衆に紹介します。
- 00:05:00 このセクションでは、スピーカーはディープ ラーニングの課題、特にトレーニングと生産の観点から説明します。トレーニングに関しては、断片化されたフレームワークとツールキットのセットを使用することは容易ではなく、GPU を使用してトレーニングを高速化する場合はインフラストラクチャが不可欠です。また、ハードウェアだけでなく、NVIDIA GPU 向けの CUDA や KuDNN、Intel の FPGA 向けの oneDNN など、ソフトウェアについても同様です。本番環境では、トレーニング済みのモデルをターゲット環境に合わせて最適化し、高精度と低レイテンシを実現する必要があります。これには、データ型の変換と TensorRT などのツールの使用が必要です。したがって、ディープ ラーニングでは、ハードウェア レイヤーとソフトウェア レイヤーを理解し、モデルを最適化して目的のパフォーマンスを実現する必要があります。
- 00:10:00 このセクションでは、スピーカーは、AI モデルを効果的に最適化して展開するために必要なさまざまなツール、フレームワーク、およびハードウェア環境について説明します。講演者は、特に CPU のモデルの最適化と量子化の必要性を強調し、Nvidia T4 や Intel の OpenVINO ツールキットなどの一般的なツールキットについて言及します。スピーカーはさらに、さまざまなハードウェア環境にはさまざまなツールキットが必要であると説明します。たとえば、産業用オートメーションと IoT のユース ケースには Nvidia の Jetson ファミリ、ビジョン コンピューティングには Intel のビジョン プロセッシング ユニット、エッジには Google の Edge TPU などがあります。 AI モデルの最適化と展開のプロセスは、ドリフトの検出、再トレーニング、最適化、展開、およびモデルのスケーリングを含む、複雑で継続的なプロセスです。講演者は、この閉ループ メカニズム全体を効果的に処理するパイプラインを持つことの重要性を強調しています。
- 00:15:00 このセクションでは、スピーカーは、効率、最適化、および相互運用性を促進するさまざまなフレームワークとターゲット環境の間の仲介者として機能する Open Neural Network Exchange として ONNX を紹介します。 ONNX はディープ ラーニング モデルと従来の機械学習モデルをサポートし、あるフレームワークから別のフレームワークへのモデルのエクスポートとインポートを可能にします。さらに、ONNX は手動での最適化や変換を行うことなく、さまざまなハードウェア環境をサポートします。講演者は、2017 年に AWS、Microsoft、Facebook を創設メンバーとして設立されて以来、ONNX は Nvidia、Intel、IBM、Qualcomm、Huawei、Baidu などからの貢献によって大幅に成長し、パブリック クラウド プラットフォーム内でこのエコシステムを積極的に推進していることに注目しています。ツールキット、およびランタイム。 ONNX は、他のフレームワークやツールキットの進歩に対応して大幅な変化を遂げ、コンパクトでクロスプラットフォームになり、最新の開発に対応しています。
- 00:20:00 このセクションでは、講演者は、あるフレームワークまたはツールキットでトレーニングされたモデルを別のフレームワークまたはツールキットにエクスポートできる移植可能なファイル形式である ONNX について説明します。 ONNX は、JVM や CLR などのポータブル ランタイムに大きく影響を受けており、高度なツールキットからの抽象化と分離のレベルを提供します。これは、ディープ ラーニング ドメインで使用される構文、セマンティクス、および規則を標準化する、透明性が高く十分に文書化された形式です。 ONNX ML は、従来の機械学習をサポートする拡張機能でもあります。モデルを ONNX としてエクスポートすると、モデル全体を表す複数の計算ノードのグラフになります。
- 00:25:00 このセクションでは、スピーカーは ONNX のグラフ内の計算ノードの構造について説明します。各ノードは自己完結型であり、実際の計算を実行する演算子と、入力データおよびパラメーターが含まれています。入力データは、次の計算ノードに送信される出力を発行するためにオペレーターによって処理される、さまざまなデータ型で構成されるテンソルにすることができます。スピーカーは、ONNX オペレーター タイプを上位レベルのフレームワークまたはツールキットにマップすることで、モデルの解釈と上位レベルのグラフ構造の ONNX 内で使用可能な実際のオペレーターへのマッピングを容易にするため、ONNX ではオペレーターが不可欠であることにも言及しています。
- 00:30:00 このセクションのビデオでは、カスタム オペレータと、それらを ONNX 内で定義する方法について説明します。カスタム オペレーターは、使用可能な ONNX オペレーターに含まれていない独自のアクティベーション関数または手法を作成する上級ユーザーに役立ちます。カスタム オペレーターは、モデルをフレームワーク レベルから ONNX にエクスポートする際に使用できます。次に、ビデオでは、ONNX を使用してトレーニング済みモデルを scikit-learn から ONNX 形式に変換する基本的なデモを、ONNX 固有のコンバーターを使用して紹介します。
- 00:35:00 このセクションでは、スピーカーは ONNX 形式の透明性と解釈可能性を強調します。これにより、モデルの構造の解析と調査が容易になります。 ONNX モデルは protobuf にエクスポートすることもでき、モデル内の使用可能なノードをプログラムで反復処理できます。このビデオは、既存のモデルを使用した推論を示しています。コードは、推論のために入力データを送信する方法を示しています。これにより、入力データの各要素の分類を含む numpy 配列が返されます。 ONNX の利点の 1 つは、Escalon から切り離されているため、モデルがどこから来ているかを気にする必要がなく、モデルを簡単に使用できることです。 ONNX 形式は、使用前に記述されたプログラミング言語を気にする必要がないため、DLL または jar ファイルに似ており、柔軟で用途が広いものになっています。
- 00:40:00 このセクションでは、スピーカーは ONNX ファイル形式と ONNX ランタイムについて話します。 ONNX は、明確に定義された仕様でモデルのグラフと演算子を定義する移植可能な独立した形式です。一方、ONNX ランタイムは、Microsoft が主導し提唱するプロジェクトです。これは ONNX とは別のプロジェクトであり、実際のランタイムを作成することで ONNX の約束を次のレベルに引き上げます。 Microsoft は、ONNX ランタイムが Windows 10 の最小限のデファクト レイヤーになりつつあるため、大きく賭けています。スピーカーは、ONNX と ONNX ランタイムの関係をレイヤーの視覚的表現を通じて説明します。
- 00:45:00 このセクションでは、スピーカーは、基礎となるハードウェアを抽象化し、さまざまなハードウェアやオプティマイザーで簡単に使用できるようにする ONNX ランタイムの可能性について説明します。 ONNX はプラグイン モデルを介して実行プロバイダーを使用します。プラグイン モデルは、ハードウェア ベンダーが既存のドライバーやライブラリとのインターフェイスとして構築できるため、ランタイムの移植性が非常に高くなります。 Microsoft は、ONNX ランタイムのパフォーマンスが高いことを証明する多数のベンチマークを公開しており、Microsoft 内の多くの製品チームは現在、Bing から Office 365、コグニティブ サービスに至るまで、ONNX ランタイムを優先するディープ ラーニング ランタイムとして採用しています。次にスピーカーは、ONNX ランタイム上で実行できる ONNX モデルを取得する 4 つの方法について説明します。Model Zoo から始まり、Azure ml を使用してモデルをトレーニングし、クラウドまたはエッジにデプロイすることで終わります。
- 00:50:00 このセクションでは、モデル ズーから事前トレーニング済みの ONNX モデルをダウンロードし、それを推論に使用する方法についてプレゼンターが説明します。このデモには、モデル Zoo からダウンロードされた事前トレーニング済みの EMNIST ONNX モデルと、推論に使用される手書き数字のテスト画像が含まれます。プレゼンターはコードを順を追って説明し、入力データを ONNX モデルに送信する前に必要な前処理手順について説明します。コードは ONNX ランタイム、NumPy、および OpenCV ライブラリを使用し、最終的な出力は予測された数字の値です。発表者は、モデルが正確であり、手書きの数字を正しく識別できることを示します。
- 00:55:00 このセクションでは、スピーカーは、トレーニングが PI torch を使用して行われ、推論が TensorFlow で実行される非常にリアクティブなユース ケースで最終的な推論を実行する方法を示します。講演者は、PI torch モデルを ONNX モデルに変換し、さらに TensorFlow で直接使用できる protobuf ファイルに変換する方法を示します。コードは簡単で、変換は Pytorch で利用可能な組み込みのエクスポート ツールを介して行われます。
- 01:00:00 このセクションでは、スピーカーは ONNX モデルを TensorFlow 形式に変換する方法を説明します。これは、ONNX をインポートし、「ONNX TF バックエンド」から「準備」機能を使用してモデルをロードし、出力を「.pb」ファイルに書き込むだけで実行できます。講演者は、ONNX に言及することなく、TensorFlow モデルを推論に使用できることを示します。セッションは、The New Stack の講演者による ONNX の今後の記事に関するメモで終了します。ここでは、チュートリアルとすべてのソース コードが利用可能になります。
01:05:00 このセクションには ONNX に関する情報は含まれていませんが、このトピックに関するウェビナーの結論として機能します。講演者は聴衆の出席とサポートに感謝し、ウェビナーの録画ビデオがまもなくアップロードされることを発表します。聴衆はウェビナーの関連性と質を評価するよう求められ、ほとんどの回答者が肯定的なフィードバックを返しています。スピーカーは、Microsoft の分散アプリケーション ランタイムに関する別のウェビナーが来月開催されることを発表して締めくくります。
![Everything You Want to Know About ONNX Everything You Want to Know About ONNX](https://c.mql5.com/36/64/everything-you-want-to-know-about__1.jpg)
- 2020.07.12
- www.youtube.com
ONNX と ONNX ランタイム
ONNX エコシステムは相互運用可能な標準形式であり、任意のフレームワークのモデルを、展開ターゲットごとに最適化された統一モデル表現形式に変換します。 ONNX 標準の ONNX ランタイム実装は、ハードウェア アクセラレータをサポートするクロスプラットフォームでモジュラーです。トランスフォーマーが処理するさまざまなレベルの最適化には、グラフ変換、グラフ分割、および割り当てが含まれます。スピーカーは、C API、バイナリ互換性を損なうことを心配することなく新しいパフォーマンス上の利点を活用するための API の安定性、ONNX モデルを実行するための最適な構成を決定するために使用できる ONNX Go Live ツールなど、ONNX を使用することのさまざまな利点についても説明します。異なるハードウェアで。また、ONNX とフレームワークを比較し、クロスプラットフォームの互換性にも触れています。
- 00:00:00 このセクションでは、ONNX ランタイム チームの Ton of Sharma が、ONNX エコシステムの紹介と調査を行い、ONNX と ONNX ランタイムの両方の技術設計とともに、その動機と Microsoft での広範な採用について説明します。彼は、モデルのトレーニングにさまざまなフレームワークを使用するさまざまなチームの問題を強調していますが、モデルを本番環境にデプロイし、ハードウェアを最大限に活用することになると、ONNX はその中間に位置し、任意のフレームワークのモデルを統一されたモデル表現形式に変換します。展開ターゲットごとに最適化されており、相互運用可能な標準形式になっています。このオープンソース プロジェクトは 2017 年 12 月に開始され、Facebook、Microsoft、Amazon が最初にコンソーシアムに参加し、現在 40 ~ 50 社以上の企業が ONNX に積極的に参加し、投資しています。
- 00:05:00 このセクションでは、スピーカーは、ONNX Model Zoo、Azure Custom Vision AutoML ツール、またはオープン ソース変換の使用など、目的のフレームワークでモデルがトレーニングされた後に、ONNX モデルを取得するさまざまな方法について説明します。特定の形式のモデルを ONNX に変換するツール。 ONNX 標準の実装である ONNX ランタイムは、目的のデバイスまたは展開ターゲットで ONNX モデルを可能な限り高速に実行する方法として導入されています。 Tensor RT や Intel MKL DNN などのさまざまなベンダーのハードウェア アクセラレータが組み込まれており、拡張可能で、モジュラーで、クロスプラットフォームです。最新バージョンの ONNX ランタイム 1.0 は、ONNX 仕様を完全にサポートしており、Windows Machine Learning フレームワークで実行されるコア ライブラリです。
- 00:10:00 このセクションでは、基になるフレームワークとして LLVM と TVM を使用して JET 形式にコンパイルした後の ONNX の展開について話します。彼らは、ONNX をさまざまな種類のデバイス (Azure 機械学習サービス、エッジ クラウド、エッジ IoT デバイスなど) にデプロイするためのリファレンス ポイントとノートブックを公開しています。これは、MNIST プラットフォームの計画の一部です。 Microsoft の ML 最小および ML ドットネットは既に ONNX をサポートしており、これまでに約 60 以上の ONNX モデルが運用されており、パフォーマンスが平均 3 倍向上しています。 ONNX の設計原則は、相互運用可能、コンパクト、クロスプラットフォーム、下位互換性、およびディープ ロード モデルと従来の機械学習モデルの両方をサポートすることでした。
- 00:15:00 このセクションでは、データ フロー グラフ自体の表現から始めて、ONNX 仕様の 3 つの部分について説明します。彼は、表現を拡張し、新しい演算子と型を追加できると説明しています。 2 番目の部分は、グラフに格納される標準の型と属性の定義であり、3 番目の部分は、ONNX モデルのすべての演算子のスキーマです。モデル ファイル形式は、簡単に検査できる protobuf に基づいており、バージョン、メタデータ、および入力、出力、計算ノード、およびグラフ名で構成される非循環計算グラフが含まれています。テンソル型、複合型、およびシーケンスやマップなどの非テンソル型がサポートされています。 ONNX オペレーター セットには約 140 のオペレーターが含まれており、ONNX オープンソース GitHub リポジトリにプル リクエストを送信することで、誰でもオペレーターを追加できます。
- 00:20:00 このセクションでは、スピーカーは、ONNX の既存の操作ではサポートされていないカスタム操作を追加する機能など、ONNX の機能について説明します。講演者は、バージョニングの重要性と、ONNX が IR バージョン、OP セット バージョン、オペレータ バージョンを含む 3 つの異なるレベルでバージョニングをどのように組み込んでいるかについても話します。 ONNX ランタイムについても説明します。主な目標は、パフォーマンス、後方互換性と前方互換性、クロスプラットフォームの互換性、およびモデルのハイブリッド実行です。ランタイムには、外部ハードウェア アクセラレータを追加するためのプラグ可能なアーキテクチャが含まれています。
- 00:25:00 このセクションでは、スピーカーは ONNX ランタイム内でモデルを実行する 2 つのフェーズについて説明します。モデルとのセッションを作成し、モデルをロードしてから、実行 API を呼び出します。モデルをロードすると、protobuf の非効率的なグラフ表現が作成され、コンパイラの最適化と同様に、グラフはさまざまなレベルのグラフ変換を経ます。 ONNX ランタイムは、カスタマイズ可能なさまざまなレベルのグラフ変換ルールとフュージョンを提供し、ユーザーは API を介して独自のルールを追加できます。グラフが最適化されると、さまざまなハードウェア アクセラレータに分割され、各ノードが特定のアクセラレータに割り当てられます。スピーカーは実行部分にも触れ、シーケンシャル モードと並列実行モードの 2 つの動作モードについて言及します。最後に、スピーカーは、実行するプロバイダーをユーザーに伝える ONNX ランタイムの今後の作業について話します。
- 00:30:00 このセクションでは、スピーカーが ONNX ランタイムでの最適化について詳しく説明します。グラフの変換、グラフのパーティショニング、および割り当ては、トランスフォーマーがグラフを書き換えるさまざまなレベルの最適化です。セッションと実行は ONNX ランタイムの 2 つの API であり、モデルをロードして最適化し、run 関数を呼び出すだけで実行できるようにします。講演者は、ONNX ランタイムのハードウェア アクセラレータ インターフェイスである実行プロバイダーについても説明し、ベンダーが実行プロバイダー API を実装して新しいハードウェア アクセラレータを追加する方法についても説明します。最後に、講演者は、新しい実行プロバイダーやカスタム op の追加、フュージョンのレベルの拡張など、ONNX ランタイムの複数の拡張ポイントについて言及します。
- 00:35:00 このセクションでは、スピーカーは ONNX ランタイムで C API を使用する利点について説明します。これには、ユーザーがバイナリ互換性を損なうことを心配することなく新しいパフォーマンス上の利点を利用できるようにする API の安定性が含まれます。また、さまざまなハードウェアで ONNX モデルを実行するための最適な構成を決定するために使用できる ONNX Go Live ツールについても説明しています。次にスピーカーは、ONNX ランタイムを可能な限り高速に実行するための継続的なパフォーマンスの最適化に加えて、Android デバイスの API での N のサポート、Qualcomm、トレーニングの最適化など、今後の機能に触れます。
- 00:40:00 ビデオのこのセクションでは、スピーカーは、特定のオペレーター (OP) 内の操作を最適化して、可能な限り高速に実行することの重要性に焦点を当てています。彼らは ONNX をフレームワークと比較し、それが前任者よりも優れているかどうかを識別しようとしています。講演者は、トレーニングの仕組みについても説明し、現在取り組んでいるものの、ソース トレーニングはまだ完了していないことを指摘します。また、ONNX 形式が生成するものと、文字列など、ONNX が処理できる形式の種類に関する質問にも答えます。マーキー製品としての ONNX ランタイムの設計に対する Microsoft の影響については、いくつかの議論があります。現在、これにはオープン ガバナンス モードがなく、最終的には Microsoft によって管理されていますが、外部からの貢献を引き続き歓迎しています。講演者は、クロスプラットフォームの互換性についても触れ、ランタイムが Linux、Windows、および Mac 用に設計されていることを指摘しました。
![ONNX and ONNX Runtime ONNX and ONNX Runtime](https://c.mql5.com/36/64/onnx-and-onnx-runtime__1.jpg)
- 2019.12.06
- www.youtube.com
ONNX - ONNX ランタイム、簡単な例
この YouTube ビデオでは、講演者が、複数のフレームワークにわたってパフォーマンスを最適化できる機械学習モデルのオープン フォーマットである ONNX を紹介しています。このビデオでは、ニュース記事のセンチメント分析や数値ベクトル分類器のニューラル ネットワークへの変換など、さまざまなシナリオで ONNX を使用する例を紹介しています。講演者は、確立されたライブラリを関数に使用し、コードの実行時間を正確に測定することの重要性を強調します。さらに、講演者は、さまざまなオペレーティング システムでの開発の課題について説明し、実行時のパフォーマンスを向上させるために必要なモジュールのみを読み込むことを推奨しています。全体として、このビデオは、機械学習モデルに ONNX を使用する利点と課題に関する貴重な洞察を提供します。
- 00:00:00 このセクションでは、モデルのパフォーマンスを最適化するためにさまざまなフレームワークで使用できる、機械学習モデルのオープン フォーマットである ONNX について講演者が説明します。 ONNX はプロトコル バッファに基づいています。これは XML 形式のアナログ バイナリ形式ですが、より高速で、より小さなメッセージに適しています。 ONNX モデルは、1 つのオペレーティング システムとプロセッサで開発でき、モバイル デバイスやグラフィックス カードなど、どこでも使用できます。 ONNX ランタイムは、モデルのトレーニングと推論をクロスプラットフォームで高速化するためのライブラリです。 ONNX では、ハードウェア アクセラレーションを使用せずにモデルの量子化によってサイズを縮小したり、モデルをプルーニングして重み値の一部をゼロ値に置き換えてサイズを縮小したりすることもできます。講演者には、ONNX に関する詳細情報を見つけることができる Web サイトへのリンクが含まれています。
- 00:05:00 このセクションでは、スピーカーは、ONNX ランタイムを使用して ONNX 形式の事前トレーニング済みモデルを操作するために必要な手順について説明します。モデルは、任意のフレームワークを使用して作成し、ONNX 形式で保存してから、それほど強力でないサーバー上で使用したり、重いサーバー負荷を処理したりするなど、さまざまな方法で使用できます。次にスピーカーは、Hugging Face トランスフォーマー ライブラリを使用して、暗号通貨に関連するニュース記事のセンチメントを判断する例を示します。最後に、講演者は、必要なライブラリをロードして処理し、サンプルのニュース記事でモデルを実行した結果を示すことによって、モデルのアプリケーションを実演します。
- 00:10:00 このセクションでは、スピーカーは、ONNX フレームワークを使用して、数値ベクトル分類器を変換してニューラル ネットワークから結果を生成するプロセスについて説明します。彼らは、プロセスが大幅に遅くなったため SoftMax 関数は使用されず、代わりに手動で入力された値が使用されたと説明しています。次に、モデルを読み込んで精度をテストし、有望な結果を示しました。ただし、さまざまなオペレーティング システムやフレームワークへのインストールには問題があり、モデルを展開する際の徹底的なテストと柔軟性の必要性が浮き彫りになりました。
- 00:15:00 このセクションでは、スピーカーは、さまざまなプラットフォームでソフトウェアを開発しようとするときに発生する可能性のある問題と、すべてを手動で実装しようとするのではなく、確立されたライブラリを使用することの重要性について説明します.彼女は、さまざまな浮動小数点形式を使用する際の問題と、非常に大きな数または非常に小さな数を処理しようとすると、これがどのようにエラーにつながるかについて言及しています。さらに、確立されたライブラリの開発者は、発生する可能性のある潜在的な問題にすでに対処しているため、カスタム関数を作成しようとするのではなく、SoftMax などの関数の既存の実装を使用することを彼女は提案しています。
- 00:20:00 このセクションでは、講演者が MacOS での開発中に遭遇した問題と、MacOS と Linux の違いについて説明します。彼はまた、あまりにも多くのモジュールをロードすると実行時間に大きな影響を与える可能性があるため、実行時のパフォーマンスを向上させるために残りを無効にして、必要なモジュールのみをロードする必要があることにも言及しています。講演者は、パフォーマンスに影響を与える可能性のあるさまざまな要因を考慮して、「timeet」ユーティリティを使用して実行時間を正確に測定することも推奨しています。
- 00:25:00 ビデオのこのセクションでは、スピーカーはコードの実行時間を測定することの重要性、特にさまざまなコードのパフォーマンスを比較することの重要性について説明しています。彼らは、より正確な評価のために実行時間を複数回測定し、平均を取る必要性を強調しています。次に、スピーカーはこのアプローチを使用して、データを処理するさまざまな方法で 2 つのコードのパフォーマンスを比較し、一方の方法が他方よりも大幅に高速であることを示しました。最後に、スピーカーはプレゼンテーションへのリンクを提供し、聴衆の参加に感謝します。
![ONNX - ONNX Runtime, простой пример. ONNX - ONNX Runtime, простой пример.](https://c.mql5.com/36/64/onnx-onnx-runtime-prostoy-primer__1.jpg)
- 2023.01.25
- www.youtube.com
PyTorch-ONNX コンバーターの概要
この概要では、Microsoft の Bowen Bao が PyTorch-ONNX コンバーターを紹介し、PyTorch モデルをトーチ中間表現 (IR) に変換してから ONNX IR に変換し、最後に Protobuf ファイルに変換するアーキテクチャとフローを説明します。コンバーターは、動的な形状を持つモデルのエクスポート、定量化されたモデルを処理し、ループ、if ステートメント、および ONNX ループと ONNX if ノードを介したその他の操作をキャプチャします。さらに、ユーザーは、カスタム オペレーターを作成するか、既存のカスタム PyTorch オペレーターを使用して、ONNX モデルをエクスポートするか、カスタム シンボリック関数を登録して、エクスポーターにエクスポート方法を伝えることができます。また、Bowen は ONNX ローカル関数についても説明し、自動キャストによる混合精度への対処を行い、故障診断を改善しながら、より多くのモデルをサポートし続ける計画について締めくくっています。
- 00:00:00 このセクションでは、Microsoft のソフトウェア エンジニアである Bowen が、アーキテクチャとフローを含む PyTorch-ONNX コンバーターの概要を説明します。 PyTorch パッケージの一部であるコンバーターは、トーチ トレーサーとトーチ スクリプトを利用して、PyTorch モデルをトーチ中間表現 (IR) に変換し、次に ONNX IR に変換します。最後の手順では、Protobuf ファイルで ONNX モデルにシリアル化します。このコンバーターは、動的な入力形状と出力形状を持つモデルのエクスポート、および定量化されたモデルをサポートし、ループ、if ステートメント、および ONNX ループと ONNX if ノードを介したその他の操作をキャプチャできます。さらに、ユーザーはカスタム オペレーターを作成するか、既存のカスタム PyTorch を使用できます。
演算子を使用して ONNX モデルをエクスポートするか、カスタム シンボリック関数を登録して、エクスポーターにエクスポート方法を伝えます。最後に、Bowen は ONNX ローカル関数の背後にある動機について説明します。 - 00:05:00 このセクションでは、PyTorch-ONNX コンバーターと、フラット化されたノードなど、エクスポートされた ONNX モデルに関するいくつかの一般的な不満に焦点を当てています。この問題に対処するために、ユーザーが Torch モジュール クラスまたはノード タイプ関数を指定できるようにするローカル関数機能が追加されました。 Torch autocast と NVIDIA Apex mp を使用することで、混合精度もサポートされます。このビデオは、改善された故障診断と、より多くのモデルをサポートし続けるという目標に関する議論で締めくくられています。提供されるリンクは、PyTorch-ONNX コンバーターを使用するユーザーに役立つリソースとツールを提供します。
![An Overview of the PyTorch-ONNX Converter An Overview of the PyTorch-ONNX Converter](https://c.mql5.com/36/64/an-overview-of-the-pytorch-onnx__1.jpg)
- 2022.07.13
- www.youtube.com
ONNX の概要 |チュートリアル-1 |ニューラル ネットワーク エクスチェンジを開く | ONNX
ONNX の概要 |チュートリアル-1 |ニューラル ネットワーク エクスチェンジを開く | ONNX
このチュートリアルでは、既存のモデルをあるフレームワークから別のフレームワークに変換する中間機械学習フレームワークである ONNX について紹介します。このコースでは、深層学習で直面する課題、ONNX の概要、および ONNX ランタイムに関するディスカッションを扱います。インストラクターは、ONNX を使用してモデルを変換する実際の例を示し、Python モデルを TensorFlow モデルに変換する実際のユース ケースを共有します。 Python プログラミング、機械学習の基礎、および PyTorch、TensorFlow、Scikit-learn などのフレームワークに精通している必要があります。
![Introduction to ONNX | Tutorial-1 | Open Neural Network Exchange | ONNX Introduction to ONNX | Tutorial-1 | Open Neural Network Exchange | ONNX](https://c.mql5.com/36/64/introduction-to-onnx-tutorial-1__1.jpg)
- 2022.05.21
- www.youtube.com
![MQL5 - MetaTrader 5クライアントターミナルにビルトインされたトレードストラテジーの言語](https://c.mql5.com/i/registerlandings/logo-2.png)
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
MQL5にONNXモデルのサポートを追加しました。私たちは、これは未来だと考えています。機械学習の使用を新しいレベルに引き上げるのに役立つこの有望な分野について話し合って研究するために、このトピックを作成しました。その新しい機能を使用することで、好みの環境でモデルを訓練し、最小限の労力で取引で実行できるようになります。
簡単な技術概要
ONNX (Open Neural Network Exchange)は、さまざまなフレームワーク間で機械学習モデルを交換するためのオープンソース形式です。ONNXはMicrosoft、Facebook、Amazon Web Services (AWS)によって開発され、MLモデルの開発と展開を促進することを目的としています。
ONNXの主な利点:
ONNXを使用するには、開発者はTensor FlowやPyTorchなどのさまざまなフレームワークからモデルをONNX形式にエクスポートできます。さらに、モデルをMQL5アプリケーションに含めて、MetaTrader 5取引ターミナルで実行することもできます。他では味わえない、またとないチャンスです。
モデルをONNX形式に変換するための最も一般的なツールの1つは、MicrosoftのONNXMLToolsです。 ONNXMLToolsは簡単にインストールできます。インストールの詳細とモデル変換の例については、https://github.com/onnx/onnxmltools#installのプロジェクトページを参照してください。
訓練済みのモデルを実行するには、ONNXランタイムを使用する必要があります。 ONNXランタイムは、ONNX形式でエクスポートされたMLモデルを実行するように設計された高性能クロスプラットフォームエンジンです。 ONNXを使用すると、開発者は1つのフレームワークでモデルを構築し、それを他の環境に簡単に展開できます。開発プロセスを簡素化しながら柔軟性が提供されます。
ONNXは、ML開発者や研究者にとって強力なツールです。これらの機能を使用すると、MQL5を使用した取引でモデルを効率的に開発および実装できます。
MLモデルを操作するための利用可能な情報と新しいアプローチを探索し、MQL5.communityメンバーと共有してください。このトピックに関する有用な出版物をいくつか見つけました。この新しい有望なテクノロジーについて調べて使い始めるのにお役立てください。