

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

# 使用 Amazon SageMaker AI RL 的範例 RL 工作流程
<a name="sagemaker-rl-workflow"></a>

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

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

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

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

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

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

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

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

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

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

1. **訓練 RL 模型**—使用 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) 中的 SageMaker AI `RLEstimator` 來啟動 RL 訓練任務。若您使用本機模式，則訓練任務會在筆記本執行個體上執行。當您使用 SageMaker AI 進行訓練時，您可以選取 GPU 或 CPU 執行個體。若您在本機模式中進行訓練，請將訓練任務的輸出存放在本機目錄中；或您使用 SageMaker AI 訓練，則請存放在 Amazon S3 上。

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

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

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

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

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

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

1. **視覺化訓練指標和輸出**—在使用 RL 模型的訓練任務完成後，您可以在 CloudWatch 中檢視您在訓練任務中定義的指標。您也可以使用 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) 分析程式庫，在筆記本中繪製指標。視覺化指標可協助您透過隨時間逐步改善的獎勵，來了解模型的效能。
**注意**  
若您在本機模式中進行訓練，您無法在 CloudWatch 中視覺化指標。

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

1. **部署 RL 模型** - 最後，使用 在 SageMaker AI 容器或邊緣裝置上託管的端點上部署訓練模型 AWS IoT Greengrass。

如需 RL 搭配 SageMaker AI 的詳細資訊，請參閱[使用 RL 搭配 Sagemaker Python SDK](https://sagemaker.readthedocs.io/en/stable/using_rl.html)。