使用 Amazon SageMaker AI RL 的範例 RL 工作流程 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon SageMaker AI RL 的範例 RL 工作流程

以下範例說明使用 Amazon SageMaker AI RL 開發 RL 模型的步驟。

  1. 公式化 RL 問題—首先,您必須將企業問題公式化成 RL 問題。例如,自動調整規模可讓服務根據您定義的條件,動態增加或減少容量。目前,這需要透過設定警示、調整規模政策、閾值及其他手動步驟來完成。為了使用 RL 解決此問題,我們會定義馬可夫決策過程的元件:

    1. 目標—擴展執行個體的容量,使其符合所需的負載設定檔。

    2. 環境—一個自訂環境,其中包含了負載設定檔。它會使用每天及每週的變化,以及偶爾發生的峰值,產生一個模擬負載。模擬系統在請求新資源及提供資源給請求使用之間會有一段延遲。

    3. 狀態—目前的負載、失敗的任務數量,以及作用中的機器數量。

    4. 動作—移除、新增或保持相同數量的執行個體。

    5. 獎勵—超過指定閾值時,成功交易的正面獎勵,以及交易失敗時的嚴重懲罰。

  2. 定義 RL 環境—RL 環境可以是與 RL 代理程式互動的真實世界,或是真實世界的模擬。您可以連線使用 Gym 介面開發的開放原始碼和自訂環境,以及像是 MATLAB 和 Simulink 這種商業模擬環境。

  3. 定義預設—預設會設定 RL 訓練任務,並定義 RL 演算法的超參數。

  4. 撰寫訓練程式碼—以 Python 指令碼的形式撰寫訓練程式碼,然後將指令碼傳遞給 SageMaker AI training 訓練任務。在您的訓練任務中,匯入環境檔案及預設檔案,然後定義 main()函式。

  5. 訓練 RL 模型—使用 Amazon SageMaker Python SDK 中的 SageMaker AI RLEstimator 來啟動 RL 訓練任務。若您使用本機模式,則訓練任務會在筆記本執行個體上執行。當您使用 SageMaker AI 進行訓練時,您可以選取 GPU 或 CPU 執行個體。若您在本機模式中進行訓練,請將訓練任務的輸出存放在本機目錄中;或您使用 SageMaker AI 訓練,則請存放在 Amazon S3 上。

    RLEstimator 需要使用以下資訊做為參數。

    1. 上傳環境、預設和訓練程式碼的來源目錄。

    2. 指向訓練指令碼的路徑。

    3. 您希望使用的 RL 工具組及深度學習框架。它會自動解析至 RL 容器的 Amazon ECR 路徑。

    4. 訓練參數,例如執行個體數、任務名稱,以及輸出的 S3 路徑。

    5. 您希望在日誌中擷取的指標定義。這些也可以在 CloudWatch 中及 SageMaker AI 筆記本內視覺化。

  6. 視覺化訓練指標和輸出—在使用 RL 模型的訓練任務完成後,您可以在 CloudWatch 中檢視您在訓練任務中定義的指標。您也可以使用 Amazon SageMaker Python SDK 分析程式庫,在筆記本中繪製指標。視覺化指標可協助您透過隨時間逐步改善的獎勵,來了解模型的效能。

    注意

    若您在本機模式中進行訓練,您無法在 CloudWatch 中視覺化指標。

  7. 評估模型—您可以在檢查點通道中繼續傳遞先前訓練模型中建立檢查點的資料,以進行評估和推論。在本機模式中,使用本機目錄。在 SageMaker AI 訓練模式中,您需要先將資料上傳到 S3。

  8. 部署 RL 模型—最後,在託管於 SageMaker AI 容器或邊緣裝置上的端點,使用 AWS IoT Greengrass 來部署訓練模型。

如需 RL 搭配 SageMaker AI 的詳細資訊,請參閱使用 RL 搭配 Sagemaker Python SDK