本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SageMaker RL 的 RL 工作流程示例
以下示例描述了使用 Amazon SageMaker RL 开发 RL 模型的步骤。
-
表述 RL 问题 – 首先,将业务问题表述为 RL 问题。例如,自动扩缩使得服务可以根据您定义的条件动态增加或缩小容量。目前,此功能要求设置警报、扩展策略、阈值以及其他手动操作。为使用 RL 解决这个问题,我们定义了马尔可夫决策过程的各个组件:
-
目标 – 扩展实例容量,以便与所需的负载配置文件相匹配。
-
环境 – 包含负载配置文件的自定义环境。它会生成一个具有每天变化和每周变化以及临时峰值的模拟负载。这个模拟系统在请求新资源的时间与资源变为可用于处理请求的时间之间存在延迟。
-
状态 – 当前负载、失败的作业数以及活跃的机器数。
-
操作 – 删除、添加或保留相同数量的实例。
-
奖励 – 因事务成功而获得的积极奖励,因事务超过特定阈值而失败遭到的高额惩罚。
-
-
定义 RL 环境 – RL 环境可以是与 RL 代理交互的真实世界,也可以是对真实世界的模拟。您可以连接使用 Gym 接口开发的开源环境和自定义环境以及商业仿真环境(例如MATLAB和 Simulink)。
-
定义预设 – 预设用于配置 RL 训练作业,并定义 RL 算法的超参数。
-
编写训练代码-将训练代码写成 Python 脚本并将脚本传递给 SageMaker 训练作业。在训练代码中,导入环境文件和预设文件,然后定义
main()
函数。 -
训练 RL 模型-使用 Amaz on Pyth SageMaker on SageMaker
RLEstimator
中的SDK,开始 RL 训练作业。如果您使用本地模式,训练作业在笔记本实例上运行。在 SageMaker 用于训练时,可以选择GPU或CPU实例。如果您在本地模式下训练,则将训练作业的输出存储在本地目录中;如果您使用 SageMaker 训练,则存储在 Amazon S3 上。 RLEstimator
要求将以下信息作为参数。-
在其中上传环境、预设和训练代码的源目录。
-
训练脚本的路径。
-
您要使用的 RL 工具包和深度学习框架。这会自动解析为 RL 容器的 Amazon ECR 路径。
-
训练参数,例如实例计数、作业名称以及输出的 S3 路径。
-
要在日志中捕获的指标定义。这些也可以在笔记本电脑中 CloudWatch 和 SageMaker 笔记本电脑中进行可视化。
-
-
可视化训练指标和输出-使用 RL 模型的训练作业完成后,您可以在中查看您在训练作业中 CloudWatch定义的指标。您也可以使用 Amaz SageMaker on Python SDK
分析库在笔记本中绘制指标。可视化指标可帮助您了解以奖励衡量的模型性能如何随着时间推移而改进。 注意
如果您在本地模式下训练,则无法在其中可视化指标 CloudWatch。
-
评估模型 – 先前训练模型中的检查点数据可以传递到检查点通道中进行评估和推理。在本地模式下,使用本地目录。在 SageMaker训练模式下,您需要先将数据上传到 S3。
-
部署 RL 模型-最后,使用在 SageMaker 容器或边缘设备上托管的端点上部署经过训练的模型。 AWS IoT Greengrass
有关带有 RL 的更多信息 SageMaker,请参阅在 Python SageMaker 中使用 RL