AI应用是构建在AnalyticDB Ray平台之上的一套标准化应用运行与管理框架,旨在帮助用户快速搭建并部署面向特定AI场景的解决方案。机器人仿真平台是该框架的核心能力之一,其集成主流物理仿真环境(如 Gym、Isaac Sim等),可以通过Ray将强化学习训练任务提交至云端,实现多机多卡的分布式并行仿真与训练,显著提升智能体策略迭代效率。本文介绍如何通过云原生数据仓库 AnalyticDB MySQL 版控制台创建机器人仿真平台以及如何使用该平台执行训练任务。
前提条件
集群的产品系列为企业版、基础版或湖仓版。
费用说明
创建Ray Cluster资源组,会产生如下费用:
Head磁盘空间与Worker磁盘空间计费一致,均会按照设置的存储空间大小计费。
Head资源类型与Worker资源类型为CPU时,会按照所使用ACU弹性资源组计费。
Head资源类型与Worker资源类型为GPU时,会按照GPU的规格、数量计费。
操作步骤
(可选)步骤一:创建存储卷
在机器人仿真平台中,训练完成的模型通常需要导出数据以便本地使用或部署,或者在训练过程中需要访问私有数据。为此,您可以选择创建存储卷并将其挂载到AI应用中。
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,然后单击目标集群ID。
在左侧导航栏,单击AI应用。
在存储管理页签下,单击创建存储卷。
在创建存储卷面板配置如下参数。
存储卷创建后仅支持修改存储名称与默认挂载路径。
参数
说明
存储类型
支持如下选项:
OSS。
NAS。
存储名称
存储的名字。您可以自定义。
Bucket路径
当存储类型为OSS时,需要选择OSS的路径。
存储路径
当存储类型为NAS时,需要选择NAS的路径。
默认挂载路径
AI应用中,读取或写入数据的路径。
权限
表示应用访问存储的权限,支持:
只读权限。
读写权限。
Fluid缓存加速
存储读取可以用Fluid加速:
缓存类型:支持内存或者云盘类型。
缓存加速容量:单位GB,按容量收费。
参数配置完成后,单击确定。
步骤二:创建仿真平台(Isaac Sim&Lab)
登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,然后单击目标集群ID。
在左侧导航栏,单击AI应用。
在存储管理页签下,单击创建仿真平台(Isaac Sim&Lab)。
在创建仿真平台(Isaac Sim&Lab)面板配置如下参数:
基本配置:
参数
说明
应用名称
AI应用名称。您可以自定义。
镜像
选择lab2.10.0-ray2.43.0。
资源配置:
存储配置(可选):
参数
说明
存储类型
支持如下选项:
OSS。
NAS。
存储名称
在下拉列表中选择已有的存储卷。若无存储卷,可单击点击创建,创建存储卷。
挂载路径
AI应用数据的挂载路径。
说明若需要挂载多个存储,可单击添加存储,并配置对应参数。
网络配置(可选):
参数
说明
是否挂载用户网卡(ENI)
若挂载了存储卷,则必须打开开关,以确保可以成功访问挂载的存储卷。
参数配置完成后,单击确定。
步骤三:访问仿真平台(Isaac Sim&Lab)
SSH命令行访问
将运行SSH命令行工具的服务器IP地址添加至AnalyticDB for MySQL集群的白名单中。
获取AI应用的连接地址。
在AI应用页面单击应用管理页签。
单击目标应用服务调用列调用信息,查看服务地址。
执行如下命令,登录Ray Cluster的Head节点:
ssh root@<ssh-service-host>ssh-service-host:步骤2获取的连接地址。
执行模型训练任务:
cd /workspace/isaaclab isaaclab -p scripts/reinforcement_learning/rl_games/train.py --task Isaac-Ant-v0 --headless
XPRA远程GUI访问
将运行SSH命令行工具的服务器IP地址添加至AnalyticDB for MySQL集群的白名单中。
获取AI应用的连接地址。
在AI应用页面单击应用管理页签。
单击目标应用服务调用列调用信息,查看服务地址。
依次执行如下命令,访问GUI页面:
# 将本地20001端口映射为服务器20000端口,端口号可自定义。其中ssh-service-host填写步骤2获取的连接地址 ssh -L 20001:localhost:20000 root@<ssh-service-host> # 启动Xpra服务器,并将其绑定到localhost的20000端口 xpra start --bind-tcp=localhost:20000 # 使用本地的第一个显示屏 export DISPLAY=:0执行完上述命令后,在浏览器访问
http://localhost:20001地址,访问GUI页面。执行模型训练任务:
cd /workspace/isaaclab isaaclab -p scripts/reinforcement_learning/rl_games/train.py --task Isaac-Ant-v0
Ray API访问
将运行SSH命令行工具的服务器IP地址添加至AnalyticDB for MySQL集群的白名单中。
获取AI应用的连接地址。
在AI应用页面单击应用管理页签。
单击目标应用服务调用列调用信息,查看服务地址。
执行以下命令,安装Ray。
pip3 install ray配置ray集群地址。
创建名为
cluster_cnofig的文件,并指定AI应用的地址。name: isaacray address: http://<isaaclab_host>:8265isaaclab_host:步骤2获取的连接地址。
指定执行任务所需的资源量(例如:GUP数量)。
创建名为
tasks.yaml的配置文件,并在该文件中进行相应配置。配置文件参数详情介绍,请参见task_runner.py章节。创建任务脚本文件
task_runner.py。脚本文件的参数详情,请参见task_runner.py章节。#pip: [] #py_modules: [] tasks: - name: "task1" py_args: "-m torch.distributed.run --nnodes=1 --nproc_per_node=2 --rdzv_endpoint=localhost:29501 /workspace/isaaclab/scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Cartpole-v0 --max_iterations 200 --headless --distributed" num_gpus: 2 num_cpus: 10 memory: 10737418240 # - name: "task2" # py_args: "script.py --option arg" # num_gpus: 0 # num_cpus: 1 # memory: 10*1024*1024*1024提交任务。
python3 submit_job.py --config_file=cluster_config --aggregate_jobs task_runner.py --task_cfg tasks.yaml参数说明:
submit_job.py:提交任务的脚本文件。详情请参见Ray Job Dispatch and Tuning。
config_file:步骤4中创建的
cluster_cnofig文件。aggregate_jobs:步骤6中创建的任务脚本文件
task_runner.py。task_cfg:步骤5中创建的
tasks.yaml文件。
查看作业运行状态。
在AI应用页面单击应用管理页签。
单击目标应用操作列详情,查看Dashboard地址。
在浏览器中访问Dashboard地址,进入可视化界面后查看作业的运行状态。