学習済みモデルの使用
学習済みモデルの使用
学習済みの強化学習モデルがあれば、シミュレーション環境でAIの決定のパフォーマンスを評価して、学習済みのAIモデルを実運用環境で使用できます。使用準備の一環として、ここまでに付属のPythonスクリプトをダウンロードし、それらのスクリプトを実行する環境を構成しているはずです。次に、これらのスクリプトを修正して使用し、HTTPリクエストへの応答に学習済みモデルを使用します。このHTTPリクエストは、実際のシステムまたはFlexSimのシミュレーションモデルから送られます。学習済みの機械学習モデルを使用して予測を行う処理を、推論と呼びます。
推論サーバーのホスト
flexsim_inference.pyスクリプトには、BaseHTTPRequestHandlerから継承されるFlexSimInferenceServerクラスの定義が含まれています。また、含まれているmain()関数は、学習済みモデルをロードして、FlexSimInferenceServerクラスを使うHTTPサーバーを開始し、ロードされたAIモデルを使用して予測を行う例を示します。このサーバーは例示を目的とした簡単な例で、実際の運用には推奨されません。ライブシステムには、よりセキュアなサーバーを実装する必要があります。
- flexsim_inference.pyスクリプトにあるモデルのロード名を、学習のとき使用した名前に変更します:"ChangeoverTimesModel"
- 上端の[Pythonファイルの実行]ボタンを押して、flexsim_inference.pyスクリプトを実行します。
- Pythonスクリプトにより、モデルをロードしてサーバーを起動しているというメッセージが表示されます。
- ウェブブラウザーで、localhost:80/?observation=3に移動します。
これによりサーバーにクエリが行われ、0から4までの値が返されます。通常は3が返されます。
FlexSimモデルでのサーバーの使用
- FlexSimでChangeoverTimesRL.fsmモデルが既に開いていなければ、ここで開きます。
- [ツールボックス]ペインでReinforcementLearning1をダブルクリックして、[プロパティ]を開きます。
- [On Request Action]トリガーで、[サーバーにアクションを問い合わせる]にオプションを追加して、ランダムなアクションのオプションの上にドラッグします。これによって、最初にサーバーに対してアクションの照会を行い、サーバーが利用できない場合はランダムなアクションを行うよう設定されます。モデルがサーバーとの通信を試みるのを有効または無効にするには、[条件]を変更します。
- [OK]ボタンをクリックして変更を適用し、ウィンドウを閉じます。
- Python推論サーバーが実行中であることを確認します。サーバーが停止していたら再起動してください。
- モデルを[リセット]して[実行]します。モデルは観察とともにサーバーに照会を行い、予測されるアクションを受け取って、各アイテムをプルするときにそのアクションを使用します。ItemTypeパラメータが、可能な限り一致するアイテムタイプをプルすることで交代時間を最小化するため、予測された値に設定されていることを確認できます。