本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon SageMaker RL 的 RL 工作流程範例
下列範例說明使用 Amazon SageMaker RL 開發 RL 模型的步驟。
-
公式化 RL 問題—首先,您必須將企業問題公式化成 RL 問題。例如,自動調整規模可讓服務根據您定義的條件,動態增加或減少容量。目前,這需要透過設定警示、調整規模政策、閾值及其他手動步驟來完成。為了使用 RL 解決此問題,我們會定義馬可夫決策過程的元件:
-
目標—擴展執行個體的容量,使其符合所需的負載設定檔。
-
環境—一個自訂環境,其中包含了負載設定檔。它會使用每天及每週的變化,以及偶爾發生的峰值,產生一個模擬負載。模擬系統在請求新資源及提供資源給請求使用之間會有一段延遲。
-
狀態—目前的負載、失敗的任務數量,以及作用中的機器數量。
-
動作—移除、新增或保持相同數量的執行個體。
-
獎勵—超過指定閾值時,成功交易的正面獎勵,以及交易失敗時的嚴重懲罰。
-
-
定義 RL 環境—RL 環境可以是與 RL 代理程式互動的真實世界,或是真實世界的模擬。您可以連接使用 Gym 界面和 Simulink 等商業模擬環境開發的開源MATLAB和自定義環境。
-
定義預設—預設會設定 RL 訓練任務,並定義 RL 演算法的超參數。
-
撰寫訓練程式碼 — 將訓練程式碼撰寫為 Python 指令碼,並將指令碼傳遞至 SageMaker 訓練工作。在您的訓練任務中,匯入環境檔案及預設檔案,然後定義
main()
函式。 -
訓練 RL 模型 — 使用 Amazon SageMaker Python SageMaker
RLEstimator
SDK中的開始 RL 訓練任務。若您使用本機模式,則訓練任務會在筆記本執行個體上執行。當您用 SageMaker 於訓練時,您可以選取GPU或CPU執行個體。如果您以本機模式進行訓練,則將訓練任務的輸出存放在本機目錄中;如果您使用 SageMaker 訓練,則將訓練任務的輸出存放在 Amazon S3。 RLEstimator
需要使用以下資訊做為參數。-
上傳環境、預設和訓練程式碼的來源目錄。
-
指向訓練指令碼的路徑。
-
您希望使用的 RL 工具組及深度學習框架。這會自動解析為 RL 容器的 Amazon ECR 路徑。
-
訓練參數,例如執行個體數、任務名稱,以及輸出的 S3 路徑。
-
您希望在日誌中擷取的指標定義。這些也可以在筆記本中 CloudWatch 和 SageMaker 筆記本中進行視覺化。
-
-
視覺化的訓練指標和輸出 — 使用 RL 模型的訓練工作完成後,您可以檢視您在中的訓練工作中定義的指標。 CloudWatch您也可以使用 Amazon SageMaker Python SDK
分析程式庫,在筆記本中繪製指標。視覺化指標可協助您透過隨時間逐步改善的獎勵,來了解模型的效能。 注意
如果您以本機模式訓練,則無法在中視覺化指標 CloudWatch。
-
評估模型—您可以在檢查點通道中繼續傳遞先前訓練模型中建立檢查點的資料,以進行評估和推論。在本機模式中,使用本機目錄。在 SageMaker訓練模式下,您需要先將資料上傳到 S3。
-
部署 RL 模型 — 最後,使用將訓練過的模型部署在 SageMaker 容器上託管的端點上或邊緣裝置上。 AWS IoT Greengrass
如需有關使用 RL 的詳細資訊 SageMaker,請參閱搭配 Python 使用 RL