ONNXヘルパーライブラリを使用して、トレーニング済みのMLモデルへの接続を合理化する

右側にONNXという単語があり、背景が青色の幾何学的形状のAnyLogic ONNXプラグインロゴ

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

  • 静的または分布ベースの移動時間を、実際のデータでトレーニングされたMLモデルに置き換えます。このモデルは、日付と時刻の入力を使用して移動時間を予測します。
  • 到着したコンポーネントの修理可能性を分類するために使用される、実際の施設で使用されているのと同じMLモデルを、精度を高めるために施設のシミュレーションモデルに組み込みます。
  • 実世界に導入する前に、機械速度を制御するようにトレーニング(強化学習を使用するなど)されたMLモデルを実装することの影響と全体的なパフォーマンスを視覚的および統計的に示します。

このようなタイプのケースでは、入力データが取得されて前処理されてから、利用可能な多くのMLライブラリ(TensorFlow、キャレット、DL4Jなど)の1つを使用してMLモデルをトレーニングするために使用されます。目的のポリシーが見つかったら、ファイルタイプでエクスポートし、後で呼び出して予測を提供できます(たとえば、エッジデバイスやシミュレーションモデルで)。

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

MLモデルからシミュレーションモデルに、次にONNXを介して一連のシミュレーション実験のデータを示すAnyLogic ONNXワークフローの図解

以前、AnyLogicユーザーは、Java(プログラマーレベルの知識が必要)またはPythonを介してPypelineアドオンを使用して(計算オーバーヘッドを犠牲にして)ONNX互換ライブラリにアクセスすることを制限されていました。

現在、AnyLogicのビジネスユーザー重視のおかげで、新しいライブラリによりONNXアクセスがより簡単かつ効率的になりました。ONNX Helperライブラリは、すべてのユーザーがMLワークフローを合理化するのに役立つ効率的なアドオンです。

このアドオンライブラリをAnyLogic環境に組み込むことにより、他の組み込みライブラリと同じように、モデルがその機能にアクセスできるようになります。モデルにヘルパーオブジェクトを追加し、ONNXファイルを参照するように構成するだけです。次に、AnyLogicモデルのどこからでも、単一の“predict” 関数を呼び出して出力を照会できます。

このアドオンライブラリは、MLモデルのトレーニングには使用されませんが、すでにトレーニングされたMLモデルのクエリには使用されないことにご注意ください。AnyLogicが汎用シミュレーション用に最適化されており、MLモデルの適切なトレーニングは複雑で時間がかかる可能性があることを考えると、トレーニングは専用の特殊な環境で最適に実行されます。

インストール、使用法、例など、ライブラリの詳細については、AnyLogic ONNXプロジェクトページをご参照ください。

関連記事