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