周期性调度

当测试数据或超参数更新,并需要持续进行增量训练和模型调优时,您可以通过周期性调度功能定期提交DLC任务。DLCDataWorks互通,方便您可以直接通过DataWorks的调度配置,实现定时提交DLC任务。本文为您介绍如何定时提交DLC任务。

背景信息

目前支持以下两种方式配置任务周期性调度:

前提条件

  • DLC授权,详情请参见云产品依赖与授权:DLC

  • 已授权DataWorks可访问人工智能平台PAI。

    您可进入授权界面进行一键授权,权限策略详情请参见AliyunServiceRoleForDataWorksEngine。仅阿里云主账号或拥有AliyunDataWorksFullAccess权限策略的RAM用户可执行一键授权操作。

  • 已创建业务流程。

    数据开发(DataStudio)基于业务流程对不同开发引擎进行具体开发操作,因此,创建节点前需先新建业务流程,操作详情请参见创建业务流程

注意事项

  • PAI DLC节点每次运行完成,均会在人工智能平台PAI的分布式训练(DLC)平台生成一个新的DLC任务。为避免使用DataWorks周期性调度DLC节点在PAI产生较多不易区分的同名任务,建议在DataWorks开发DLC任务时根据实际需要合理设置调度周期。同时,建议在任务名称中增加日期时间变量,并通过调度配置为该变量赋值时间调度参数,实现任务命名增加日期时间。详情请参见步骤二:开发PAI DLC任务

  • DataWorks不支持使用公共调度资源组执行PAI DLC任务。

方式一:使用PAI DLC节点载入DLC任务并配置调度依赖

步骤一:创建DLC任务

登录PAI控制台,进入分布式训练任务页面并创建DLC任务。以提交PyTorch框架类型的DLC任务为例,操作详情,请参见快速提交单机PyTorch迁移学习任务

步骤二:创建PAI DLC节点

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 右键单击目标业务流程,选择新建节点 > 算法 > PAI DLC

  3. 新建节点对话框输入节点名称,单击确认,完成节点创建。后续您可在节点中进行对应任务的开发与配置。

  4. 在节点的编辑页面,通过名称搜索,载入已创建的DLC任务。

    任务载入后,DLC节点编辑器会根据PAI中该任务的配置生成相应节点代码,您可基于该代码编辑修改任务。更多详细内容,请参见步骤二:开发PAI DLC任务

步骤三:配置任务调度

单击节点编辑区域右侧的调度配置,在调度配置面板中,包含基础属性调度参数时间属性资源属性调度依赖等配置项。您可以在时间属性区域配置调度周期,后续DataWorks会根据配置的调度周期自动调度运行节点任务。配置详情请参见任务调度属性配置概述

说明
  • 您需设置节点的重跑属性依赖的上游节点,才可提交节点。

  • 为避免使用DataWorks周期性调度DLC节点在PAI产生较多不易区分的同名任务,建议在DataWorks开发DLC任务时根据实际需要合理设置调度周期。详情请参见

步骤四:调试任务代码

您可根据需要执行如下调试操作,查看任务是否符合预期。

  1. (可选)选择运行资源组、赋值自定义参数取值。

  2. 保存并运行SQL语句。

    单击工具栏的保存图标,保存编写的SQL语句,单击运行图标,运行创建的SQL任务。

  3. (可选)冒烟测试。

    如您希望在开发环境进行冒烟测试,查看调度节点任务的执行是否符合预期,则可在节点提交时,或节点提交后执行冒烟测试,操作详情请参见执行冒烟测试

步骤五:提交发布任务

节点任务配置完成后,需执行提交发布操作,提交发布后节点即会根据调度配置内容进行周期性运行。

  1. 单击工具栏中的保存图标,保存节点。

  2. 单击工具栏中的提交图标,提交节点任务。

    提交时需在提交新版本对话框中输入变更描述,并根据需要选择是否在节点提交后执行代码评审。

    说明
    • 您需设置节点的重跑属性依赖的上游节点,才可提交节点。

    • 代码评审可对任务的代码质量进行把控,防止由于任务代码有误,未经审核直接发布上线后出现任务报错。如进行代码评审,则提交的节点代码必须通过评审人员的审核才可发布,详情请参见代码评审

如您使用的是标准模式的工作空间,任务提交成功后,需单击节点编辑页面右上方的发布,将该任务发布至生产环境执行,操作请参见发布任务

步骤六:查看操作日志

任务提交发布后,会基于节点的配置周期性运行,您可单击编辑界面右上角的运维,进入运维中心查看周期任务的调度运行情况。详情请参见查看并管理周期任务

方式二:创建脚本任务并配置调度依赖

步骤一:创建独享调度资源组

DataWorks控制台创建独享调度资源组,详情请参见新增和使用独享调度资源组

步骤二:绑定归属的工作空间

独享调度资源组需要绑定归属的工作空间,才可以在对应的工作空间下选择该资源组,详情请参见绑定归属工作空间

步骤三:安装部署工具包DLC

安装DLC工具包,需要联系管理员授权。

  1. 创建命令。

    1. 登录DataWorks控制台

    2. 单击左侧导航栏中的资源组,默认进入独享资源组页面。

    3. 找到用途数据调度的独享资源组,单击操作列下的图标image.png,并选择运维助手

    4. 在运维助手页面,单击创建命令

    5. 创建命令页面,配置以下关键参数。

      参数

      描述

      命令类型

      选择手动输入

      命令内容

      输入如下命令。

      wget -P  /home/admin/usertools/tools/ https://dlc-release.oss-cn-zhangjiakou.aliyuncs.com/console/public/latest/dlc --no-check-certificate
      chmod +x /home/admin/usertools/tools/dlc

      安装目录

      安装至/home/admin/usertools/tools/目录。

      超时时间

      命令执行的超时时间,单位为秒。如果命令执行超时,则系统强制结束命令。建议配置为60秒。

    6. 单击创建

  2. 执行命令。

    1. 在运维助手页面,单击上一步已创建命令操作列下的运行命令image.png

    2. 运行命令面板,单击运行

  3. 查看命令执行情况。

    1. 在运维助手页面下方的列表,单击相应命令后的查看结果image.png

    2. 命令执行结果对话框,查看命令执行情况。如果执行进度为100%,则DLC工具包安装成功。image.png

步骤四:创建工作流

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 鼠标悬停至新建图标,单击新建节点 > 通用 > Shell,在新建节点对话框输入节点名称及路径。

  3. 单击确认,完成节点的创建。

步骤五:提交任务测试

因为定时提交任务基于原有任务节点,所以定时提交之前,需要进行冒烟测试,创建初始任务节点。如果已经存在初始节点,则直接执行步骤六。

  1. 编辑部署脚本。

    1. 在业务流程页面,双击已创建的Shell节点(部署节点)。

    2. Shell节点页面,输入如下命令。

      # 生成任务描述文件。
      cat << EOF > jobfile
      name=dataworks-job
      workers=1
      worker_spec=ecs.g6.large
      worker_image=registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/pytorch-training:1.7.1-gpu-py37-cu110-ubuntu18.04
      command=echo $(date)
      EOF
      
      # 提交任务。
      /home/admin/usertools/tools/dlc submit pytorchjob\
          --access_id=<access_id> \
          --access_key=<access_key> \
          --endpoint=pai-dlc.cn-hangzhou.aliyuncs.com \
          --region=cn-hangzhou \
          --job_file=./jobfile \
          --interactive

      jobfile是描述任务相关信息的文件,具体配置细节请参见提交命令endpoint参数与地域的对应关系如下。

      地域

      Endpoint

      华东2(上海)

      pai-dlc.cn-shanghai.aliyuncs.com

      华北2(北京)

      pai-dlc.cn-beijing.aliyuncs.com

      华东1(杭州)

      pai-dlc.cn-hangzhou.aliyuncs.com

      华南1(深圳)

      pai-dlc.cn-shenzhen.aliyuncs.com

      中国(香港)

      pai-dlc.cn-hongkong.aliyuncs.com

      新加坡

      pai-dlc.ap-southeast-1.aliyuncs.com

      马来西亚(吉隆坡)

      pai-dlc.ap-southeast-3.aliyuncs.com

      德国(法兰克福)

      pai-dlc.eu-central-1.aliyun.cs.com

  2. 运行脚本。

    1. Shell节点页面,单击页面上方的2图标。

    2. 警告对话框,单击继续运行

    3. 运行参数页面,选择调度资源组为已创建的独享资源组。

    4. 单击确定

      运行完成后,即可生成一个任务。您可以前往PAI默认工作空间的分布式训练(DLC)页面,查看任务。

步骤六:执行定时调度

  1. 执行调度任务。

    1. Shell节点页面,单击页面右侧的调度配置

    2. 调度配置页面的时间属性区域,选择调度周期重跑属性

    3. 调度依赖区域,单击依赖的上游节点后的使用工作空间根节点

    4. 配置依赖关系,详情请参见配置同周期调度依赖

    5. 单击Shell节点页面上方的保存图标,保存配置。

    6. 单击Shell节点页面上方的提交图标,提交调度任务。

  2. 查看定时调度的运行实例。

    1. Shell节点页面,单击右上方的运维

    2. 运维中心页面,选择周期任务运维 > 周期实例

    3. 在实例详情页面,查看自动提交任务的定时时间

    4. 选择操作列下的更多 > 查看运行日志,查看每次定时提交任务的运行日志。

相关文档

您可以在PAI控制台查看并管理已定时提交的DLC任务: