

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

以下示例描述了使用 Amazon A SageMaker I RL 开发 RL 模型的步骤。

1. **表述 RL 问题** – 首先，将业务问题表述为 RL 问题。例如，自动扩缩使得服务可以根据您定义的条件动态增加或缩小容量。目前，此功能要求设置警报、扩展策略、阈值以及其他手动操作。为使用 RL 解决这个问题，我们定义了马尔可夫决策过程的各个组件：

   1. **目标** – 扩展实例容量，以便与所需的负载配置文件相匹配。

   1. **环境** – 包含负载配置文件的自定义环境。它会生成一个具有每天变化和每周变化以及临时峰值的模拟负载。这个模拟系统在请求新资源的时间与资源变为可用于处理请求的时间之间存在延迟。

   1. **状态** – 当前负载、失败的作业数以及活跃的机器数。

   1. **操作** – 删除、添加或保留相同数量的实例。

   1. **奖励** – 因事务成功而获得的积极奖励，因事务超过特定阈值而失败遭到的高额惩罚。

1. **定义 RL 环境** – RL 环境可以是与 RL 代理交互的真实世界，也可以是对真实世界的模拟。您可以连接使用 Gym 接口开发的开源和自定义环境，以及 MATLAB 和 Simulink 等商业模拟环境。

1. **定义预设** – 预设用于配置 RL 训练作业，并定义 RL 算法的超参数。

1. **编写训练代码-将训练代码**写成 Python 脚本并将该脚本传递给 A SageMaker I 训练作业。在训练代码中，导入环境文件和预设文件，然后定义 `main()` 函数。

1. **训练 RL 模型** — 使用 Amaz [on Pyth SageMaker on 软件开发工具包`RLEstimator`](https://sagemaker.readthedocs.io/en/stable)中的 A SageMaker I 开始 RL 训练作业。如果您使用本地模式，训练作业在笔记本实例上运行。使用 SageMaker AI 进行训练时，您可以选择 GPU 或 CPU 实例。如果您在本地模式下训练，则将训练作业的输出存储在本地目录中；如果您使用 A SageMaker I 训练，则存储在 Amazon S3 上。

   `RLEstimator` 要求将以下信息作为参数。

   1. 在其中上传环境、预设和训练代码的源目录。

   1. 训练脚本的路径。

   1. 您要使用的 RL 工具包和深度学习框架。这会自动解析为 RL 容器的 Amazon ECR 路径。

   1. 训练参数，例如实例计数、作业名称以及输出的 S3 路径。

   1. 要在日志中捕获的指标定义。这些也可以在 SageMaker 人工智能笔记本电脑中 CloudWatch 和笔记本电脑中进行可视化。

1. **可视化训练指标和输出**-使用 RL 模型的训练作业完成后，您可以在中查看您在训练作业中 CloudWatch定义的指标。您还可以使用 [Amaz SageMaker on Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable)分析库在笔记本中绘制指标。可视化指标可帮助您了解以奖励衡量的模型性能如何随着时间推移而改进。
**注意**  
如果您以本地模式训练，您无法在 CloudWatch 中将指标可视化。

1. **评估模型** – 先前训练模型中的检查点数据可以传递到检查点通道中进行评估和推理。在本地模式下，使用本地目录。在 SageMaker AI 训练模式下，您需要先将数据上传到 S3。

1. **部署 RL 模型**-最后，使用在 SageMaker AI 容器上托管的端点或边缘设备上部署经过训练的模型。 AWS IoT Greengrass

有关带有 SageMaker AI 的 RL 的更多信息，请参阅在 [Pyth SageMaker on SDK 中使用 RL](https://sagemaker.readthedocs.io/en/stable/using_rl.html)。