• Description

測試或嵌入 ML 模型

在這種情況下,在類比環境中使​​用經過訓練的 ML 模型。換句話說,ML 模型首先在 AnyLogic 生態系統之外進行訓練。然後,為了評估或利用其預測能力,可以將其作為模擬模型的一部分。
測試或嵌入 ML 模型需要在運行時將經過訓練的 ML 模型與模擬模型連接起來。AnyLogic 提供了多種連接選項,無論它是用什麼語言訓練的,也適用于本地和遠端連接。


案例 1ML 模型作為代表模型中抽象行為的輸入的替代方案


模擬模型中輸入參數的一種用途是定義一些基於真實系統中存在的因果規則(例如,延遲時間、到達率等)的近似行為;這些通常被建模為單變數隨機變數,或者在某些情況下,作為具有多元概率分佈的隨機向量。作為替代,ML 模型可用於這些類型的輸入參數。


案例 2:使用 ML 模型來近似模擬系統中元件的行為


當模擬模型中的某些元件由於需要大量細節而極其複雜時,可以使用經過訓練的 ML 模型作為替代來近似行為。這與前一種情況類似,但涉及模型的特定元件,該元件可能不一定可以用單個值(或分佈)抽象。一個明顯的例子是一種物理設備,它不容易通過通用模擬方法建模,但基於可以很容易地用機器學習近似的真實資料。


案例 3:將任何現有的、已部署的 ML 模型合併到模擬環境中以提高準確性


模擬模型應該複製真實系統的規則——這一事實也適用於給定系統中任何現有的嵌入式 AI 解決方案。作為系統部署的 AI 解決方案的直接結果的規則和行為也應包含在模擬中。實現這一目標的最自然方法是將 AI 解決方案直接嵌入到模擬中。


案例 4:在部署前測試 AI 解決方案對系統整體性能的影響


AI 元件嵌入系統的目標是提高整體系統性能,而不僅僅是 AI 替代的特定組件。部署訓練有素的 AI 解決方案將對目標系統的整體性能有顯著改善是一個合理的期望。然而,系統中的任何擾動都有可能改變任何瓶頸或引起其他漣漪效應。單獨測試經過訓練的模型(例如,使用測試資料樣本)並不能驗證修改後的系統的性能 - 作為一個整體 - 得到了充分的改進。模擬模型可用作虛擬的、無風險的環境,以測試將 AI 納入現有系統的影響。


案例 5:視覺化數學!


資料科學家熟悉向那些不熟悉所涉及的細微差別或影響的人(例如,客戶、經理或決策者)展示和傳達其 ML 解決方案的效果的問題。模擬建模軟體的一個目的是以一種既具有視覺吸引力又易於理解的方式來呈現模型的動態行為。因此,它可以用來直觀地顯示模擬環境的性能,無論是否有 ML 解決方案。


案例 6:在原始模擬環境中測試 RL 策略


強化學習的最終目標是學習一種可以優化控制系統的有用策略。由於學習過程(訓練)是在模擬環境中完成的,同樣的模擬模型也可以用來測試學習到的策略!在將其部署到真實系統中之前,評估學習策略的性能將是一個有用的步驟,這個過程通常被稱為“Sim-to-Real Transfer”


工作流程和工具


測試或嵌入 ML 模型需要在運行時連接經過訓練的 ML 模型和模擬模型。AnyLogic 提供了三種通用選項來連接 ML 模型,無論它是用什麼語言訓練的,也適用于本地和遠端連接。


通過 API 調用進行通信


ML/AutoML 平臺託管的 ML 模型進行遠端通訊(通過 API 調用)。

任何經過訓練的 ML 模型都可以以允許通過 API 查詢的方式進行部署。幾乎所有流行的 ML/Auto ML 平臺都提供了一種開箱即用的簡單機制。在您的模擬中,可以添加簡單的代碼以在適當的時間構建請求並應用返回的預測。此工作流從經過訓練的 ML 模型的程式設計語言中抽像出來。


嵌入到模擬環境中的 ML 模型


將經過訓練的 ML 模型原生嵌入到模擬環境中。

當訓練使用 JavaAnyLogic 的母語)或訓練平臺允許以 Java 中可用的格式匯出 ML 模型時,可以對經過訓練的 ML 模型進行本地查詢。例如,使用 H2O.ai Driverless AI,可以將經過訓練的模型下載為 MOJO(模型物件,優化)——一種評分引擎,可以在其 Java 庫的幫助下部署在任何 Java 環境中。


使用 Pypeline 工具庫存取機器學習模型


使用 Pypeline 工具庫在本地訪問基於 Python 的經過訓練的 ML 模型。

如果 Python 庫可以存取已部署的經過訓練的 ML 模型,則可以使用 Pypeline(自訂 AnyLogic 庫)對其進行查詢。Pypeline 允許您使用本地安裝的 Python 執行帶參數的 Python 腳本或從 AnyLogic 模型中互動式運行 Python 代碼。