ONNX Helper ライブラリを使用した ML モデルへのアクセス

ONNX Helper ライブラリを使用すると、「.onnx」ファイル形式で保存されたトレーニング済みの機械学習 (ML) モデルに簡単にアクセスできます。ONNX (Open Neural Network Exchange の略) は、トレーニング済みの ML モデル用の標準化された相互運用可能なフレームワークです。

標準の Java ライブラリは存在しますが、使用するには比較的高度な技術的知識が必要です。ONNX Helper は、AnyLogic のどのエディション (Personal Learning Edition、University、Professional) でも無料でダウンロードできるアドオン ライブラリです。単一のオブジェクトと単一の関数を通じて、ML モデルをクエリするシンプルで簡単な方法を提供します。

ライブラリをダウンロード

トレーニング済みの機械学習 (ML) モデルをシミュレーション モデルに組み込むことが望ましい場合が多くあります。以下は、当社の ML テストベッドのケースに基づいた具体的な例です:

  • 静的または分布ベースの移動時間を、実際のデータでトレーニングされた ML モデルに置き換えます。モデルは日付と時刻の入力を使用して、移動時間を予測します。
  • 実際の改修施設において、到着した部品の修理可能性を分類するために使用されているものと同等の ML モデルを、施設のシミュレーション モデルに組み込むことで、精度が向上します。
  • モデルを実際の環境に展開する前に、マシンの速度を制御するようにトレーニングされた ML モデル (強化学習などを使用) の影響と全体的なパフォーマンスを視覚的かつ統計的に表示します。

このようなケースでは、入力データは回収され、前処理後、PyTorch、TensorFlow、caret、および DL4J などの利用可能な多くの ML ライブラリのいずれかを使用して ML モデルのトレーニングに使用されます。ML モデルをデータでトレーニングした後、ファイルにエクスポートし、後で予測を提供するために呼び出すことができます (例: エッジ デバイスまたはシミュレーション モデル内)。

これらのファイル タイプのうち、「.onnx」拡張子を持つものは、ONNX (Open Neural Network Exchange) からのものです。その目的は、ML モデルが特定のフレームワークにロックされることを回避するのに役立つオープン エコシステムを提供することです。ONNX 形式の ML モデルは、さまざまなフレームワークからインポートして呼び出すことができ、クロスプラットフォームとクロス言語の両方をサポートしています。

シームレスな統合のためのヘルパーオブジェクト

ONNX ランタイム Java ライブラリは確立されていますが、Java の技術者向けであるため、ビジネス志向の AnyLogic ユーザーにとっては障壁となります。対照的に、AnyLogic ONNX Helper ライブラリは、標準ランタイムライブラリの抽象化として機能します。これには、対話に必要なルーチン コードを処理する機能が組み込まれています。これにより、エンド ユーザーがトレーニング済みの ML モデルに対してクエリを要求する方法が大幅に簡素化され、関心のあるすべての人がアクセスできるようになります。

このライブラリ内のオブジェクト「ONNX Helper」は、ONNX ファイル (.onnx) への単一の接続を表します。クエリを実行する ONNX ファイルが複数ある場合は、このオブジェクトの複数のインスタンスを使用できます。

ONNX ヘルプを介して AnyLogic 内でMLモデルをセットアップして組み込む方法を示すワークフロー
ライブラリをダウンロード

ヘルパー オブジェクトのインスタンスをモデルにドラッグすると、その唯一のプロパティは、目的の ONNX ファイル (ローカル パスまたは絶対パスとして) を参照することになります。ヘルパー オブジェクトには、ユーザーの好みに応じていくつかのバリエーションを持つ 1 つの基本的な予測関数と、一般的な操作のためのさまざまな関数が含まれます。

シミュレーション モデルを実行すると、ヘルパー オブジェクトをクリックして、次のような ONNX モデルに関する情報を表示できます:

  • ファイル名
  • 名前、形状、およびデータ型などの入力
  • 名前、形状、およびデータ型などの出力

これらのトピックの詳細については、プロジェクトの GitHub リポジトリと Wiki を参照してください。

サンプルモデル


以下の例は、さまざまなユースケースと複雑さのレベルを示しています;これらは GitHub リポジトリから入手できます。


  • 01

    シンプルな操作

    シンプルな操作モデル

    ライブラリの最も基本的な機能のデモとして、本モデルは、異なるデータ型を使用する複数の入力と出力を持つ手動で構築された ONNX ファイルを使用します。一部の入力/出力では、可変サイズの配列も使用できます。入力に対する操作は単純です:transposing, ceilingと掛け算。

    詳細

  • 02

    サプライチェーン (ONNXを使用)

    サプライチェーン (ONNXを使用) モデル

    このモデルは、小売業者、卸売業者、工場で構成される組み込みサンプル モデル「サプライ チェーン」のバリエーションです。ONNX モデルの出力に基づいてこの情報を照会するオプションを含めることで、元のモデルでの需要頻度とサイズの固定レートと分布の使用を拡張します。また、パラメータ変動実験も含まれており、各オプションを比較できます。

    提供される ONNX モデルは、加工された現実世界のデータでトレーニングされたリカレント ニューラル ネットワークを使用して、季節に基づいて次の注文が到着するまでの時間と注文のサイズを予測します。

    詳細

  • 03

    シンプル ホスピタル
    (AI テストベッドとONNX )

    シンプルホスピタルモデル

    このモデルは、患者が到着し、しばらく入院してから退院する簡略化された病院を表しています。2 つのニューラル ネットワーク、つまり 2 つの ONNX Helper オブジェクトが使用されています。1 つのニューラル ネットワークは、過去数日間の到着率に基づいて患者の到着率を予測します。2 番目は、個人の 24 の健康関連属性に基づいて患者の入院期間を予測します。

    詳細

  • 04

    アイリス予測

    アイリス予測モデル

    これは、さまざまなサイズのアイリスをランダムに生成するおもちゃのモデルです。生成された花ごとに、提供された ONNX モデルは、花びらと萼片のサイズに基づいて、3 種類のどれであるかを分類します。

    詳細

  • 05

    抽選番号を推測

    抽選番号推測モデル

    これは、28×28のグリッドに直線を並べて描画できるおもちゃのモデルです。提供された ONNX モデルは、数字を推測しようとします。モデルのトレーニングには、MNISTデータベースのサブセットが使用されました。

    詳細

AI のトレーニングとテストのためのシミュレーション – Eメール パック

AnyLogic シミュレーションは、ビジネスにおける AI のトレーニングおよびテスト プラットフォームです。AnyLogic 汎用シミュレーションを使用すると、AI モデルのトレーニングとテスト用の詳細かつ堅牢な仮想環境を構築できます。

この強力な機械学習ツールの詳細については、当社の AI メール パックとホワイト ペーパーをご覧ください。

AI パックとホワイトペーパー