人工智能平台PAI的容器训练DLC,用于分布式执行训练任务。DataWorks为您提供了PAI DLC节点,您可以直接通过该节点载入DLC任务并配置调度依赖,实现DLC任务的周期性调度运行。
前提条件
已授权DataWorks可访问人工智能平台PAI。
您可进入授权界面进行一键授权,权限策略详情请参见AliyunServiceRoleForDataWorksEngine。仅阿里云主账号或拥有AliyunDataWorksFullAccess权限策略的RAM用户可执行一键授权操作。
已创建业务流程。
数据开发(DataStudio)基于业务流程对不同开发引擎进行具体开发操作,因此,创建节点前需先新建业务流程,操作详情请参见创建业务流程。
注意事项
PAI DLC节点每次运行完成,均会在人工智能平台PAI的分布式训练(DLC)平台生成一个新的DLC任务。为避免使用DataWorks周期性调度DLC节点在PAI产生较多不易区分的同名任务,建议在DataWorks开发DLC任务时根据实际需要合理设置调度周期。同时,建议在任务名称中增加日期时间变量,并通过调度配置为该变量赋值时间调度参数,实现任务命名增加日期时间。详情请参见步骤二:开发PAI DLC任务。
DataWorks不支持使用公共调度资源组执行PAI DLC任务。
本文以下示例操作以华东2(上海)地域为例,其它地域请以具体界面为准。
步骤一:创建PAI DLC节点
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
右键单击目标业务流程,选择
。在新建节点对话框输入节点名称,单击确认,完成节点创建。后续您可在节点中进行对应任务的开发与配置。
步骤二:开发PAI DLC任务
开发任务代码:简单示例
在PAI DLC节点编辑页面,您可通过如下方式编写DLC任务:
基于已有DLC任务编写任务代码。
通过名称搜索,载入在人工智能平台PAI已创建的DLC任务。任务载入后,DLC节点编辑器会根据PAI中该任务的配置生成相应节点代码,您可基于该代码编辑修改任务。
说明若无权限载入或创建任务,则可根据界面指引进行授权。
若无可用任务,则可前往PAI控制台新建。PAI DLC任务可通过多种方式创建,您可根据需要选择,详情请参见创建训练任务、提交训练任务:Python SDK、提交训练任务:命令行。
直接编写DLC任务代码。
在DataWorks的PAI DLC节点编辑器中,根据需要直接编写任务代码。
PAI DLC节点任务编写并运行完成后,会根据配置内容在人工智能平台PAI中新生成相应DLC任务。任务代码示例如下:
dlc submit xgboostjob \ #提交DLC任务。
--name=wsytest_pai04_XGBoost \ #DLC任务名称。建议使用变量名或DataWorks的节点名称。
--command='echo '\''${变量名}'\'';' \ #DLC任务待执行的命令。
--workspace_id=80593 \ #执行DLC任务的工作空间。
--priority=1 \ #任务优先级,取值1-9,1优先级最低,9优先级最高。
--workers=1 \ #任务节点数量。节点大于1时,表示该任务为分布式任务,即任务可并发在多个节点执行。
--worker_image=registry.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04 \ #节点镜像,用于提供DLC任务运行的环境。
--worker_spec=ecs.g6.xlarge #节点配置,即所使用的计算节点规格。
开发SQL代码:使用调度参数
DataWorks提供的调度参数可实现周期调度场景下代码动态入参,您可在节点任务中通过${变量名}
的方式定义代码中的变量,并在调度配置>参数处,为该变量赋值。调度参数支持的格式,详情请参见调度参数支持的格式。
调度参数代码示例如下。
--command='echo '\''${变量名}'\'';' \ --可结合调度参数使用。
步骤三:配置任务调度
如您需周期性执行创建的节点任务,可单击节点编辑页面右侧的调度配置,根据业务需求配置该节点任务的调度信息。配置详情请参见任务调度属性配置概述。
您需设置节点的重跑属性和依赖的上游节点,才可提交节点。
步骤四:调试任务代码
您可根据需要执行如下调试操作,查看任务是否符合预期。
(可选)选择运行资源组、赋值自定义参数取值。
单击工具栏的图标,在参数对话框选择调试运行需使用的调度资源组。
如您的任务代码中有使用调度参数变量,可在此处为变量赋值,用于调试。参数赋值逻辑详情请参见运行,高级运行和开发环境冒烟测试赋值逻辑有什么区别。
保存并运行SQL语句。
单击工具栏的图标,保存编写的SQL语句,单击图标,运行创建的SQL任务。
(可选)冒烟测试。
如您希望在开发环境进行冒烟测试,查看调度节点任务的执行是否符合预期,则可在节点提交时,或节点提交后执行冒烟测试,操作详情请参见执行冒烟测试。
步骤五:提交发布任务
节点任务配置完成后,需执行提交发布操作,提交发布后节点将根据调度配置内容进行周期性运行。
单击工具栏中的图标,保存节点。
单击工具栏中的图标,提交节点任务。
提交时需在提交新版本对话框中输入变更描述,并根据需要选择是否在节点提交后执行代码评审。
说明您需设置节点的重跑属性和依赖的上游节点,才可提交节点。
代码评审可对任务的代码质量进行把控,防止由于任务代码有误,未经审核直接发布上线后出现任务报错。如进行代码评审,则提交的节点代码必须通过评审人员的审核才可发布,详情请参见代码评审。
如您使用的是标准模式的工作空间,任务提交成功后,需单击节点编辑页面右上方的发布,将该任务发布至生产环境执行,操作请参见发布任务。
后续步骤
任务提交发布后,会基于节点的配置周期性运行,您可单击编辑界面右上角的运维,进入运维中心查看周期任务的调度运行情况。详情请参见查看并管理周期任务。