设计开发任务流


本章节介绍如何在任务流设计页面的编辑画布中设计开发任务流。

浏览设计页面

点击实验列表中目标实验的 任务流设计,可进入到设计编辑画布,开始任务流设计和开发。设计页面由以下部分组成:


算子列表

设计页面左侧为各类算子列表,提供分组、逻辑算子、模型算子、SQL算子、文件算子、处理算子、自定义算子等,并可在页面顶端的搜索框中搜索算子。


编辑画布

设计页面中部为任务流编辑画布,可将需要使用的算子拖拽到编辑画布中,编排任务流。对于复杂的任务流设计,可以在画布上将实现某种特定功能的多个算子进行分组,将一个或多个算子拖放至 Group 区域即可,分组支持嵌套。


参数配置

点击任务流设置 pipeline_setting 展开右侧参数配置区:

  • 未选中算子时可对任务流进行基础信息配置、添加全局参数和高级配置。全局参数不支持使用 file 和 dir 类型的参数,也不支持引用这两种参数的值,可在全局参数中为任务流指定一个退出处理算子。
  • 选中算子时可对算子进行基础信息配置、参数配置和高级配置,以下说明为算子的参数配置介绍:
    • 基础信息:定义算子的名称和描述。
    • 参数配置:配置算子的输入参数和输出参数
      • 输入参数:定义参数的名称、数据类型、功能(声明或引用)和参数值。当参数功能为声明时可直接传入输入值,支持输入或选择参数值;当参数功能为引用时可引用上一个算子的输出或全局参数值,支持输入参数值或添加全局变量(时间相关变量和系统环境相关变量,例如实验名称、运行实例名称、创建人等)。
      • 输出参数:定义参数的名称和数据类型。
    • 高级配置:配置运行算子所需的资源、超时时间和重试次数,以及挂载的 PVC(用于存储算子的运行结果)。如果底层资源支持也可以配置 GPU。


功能操作

设计页面顶部为功能操作区,可对算子或任务流进行以下操作:

  • 自动保存:开启或关闭自动保存编辑中的任务流信息。
  • 保存 save_icon:保存当前画布中的任务流信息。保存后不会产生任务流新版本。
  • 撤销 undo_icon/重做 redo_icon:回退或重做画布中的任务流信息。
  • 运行 run_icon:测试运行当前任务流。运行后会产生任务流新版本。
  • 导出 export_icon:导出并保存当前任务流配置信息。
  • 导入 import_icon:导入外部保存的任务流配置文件,在编辑画布上编辑。
  • 删除 delete_icon:从画布中删除选中的算子。
  • 复制 copy_icon:复制选中的算子及算子的参数配置。
  • 查看运行实例:可查看线上运行中的任务流实例列表。
  • 调度配置:为当前任务流设置调度。

编排任务流

通过拖拽算子至任务流编辑画布、设置每个算子的配置信息、使用箭头将算子连接起来表示算子间的逻辑依赖关系,编排为任务流。最后通过配置整个任务流的调度周期,实现任务流自动运行。


本章节以 “生成随机数” 场景为例,使用 PythonEx 算子和 Condition 算子编排任务流生产一个随机数并将生成的随机数按照以下标准分流显示:

  • 大于等于5
  • 小于5

由于 PythonEx 算子需要使用内部存储中的文件,点击 下载代码,将代码文件保存到本地并解压,然后参考 上传模型代码到内部存储 将代码文件上传到内部存储。


通过以下步骤,完成任务流和算子的参数配置,并将算子编排为任务流。

  1. 将需要使用的算子(1个 PythonEX 算子和2个 Condition 算子)拖拽到编辑画布中。

  2. 选中 PythonEx 算子,将名称改为 “RandomIntGenerator”,在其参数配置中:

    • 声明上传代码文件的目录作为 workspace
    • 声明代码文件目录中的 generaterandomint.py 作为 entrypoint
    • 添加 result_number 作为输出参数
    ../_images/workflow_config_1.png
  3. 选中 Condition 算子,将名称改为 “Smaller than 5?”,在其参数配置中,引用 RandomIntGenerator 算子的输出作为 Condition 算子的表达式:RandomIntGenerator.result_number < 5

    ../_images/workflow_config_2.png
  4. 双击 Smaller than 5? 算子,打开其子画布,拖入一个 PythonEx 算子打印生成的随机数,在其参数配置中:

    • 声明上传代码文件的目录作为 workspace
    • 声明代码文件目录中的 showresult.py 作为 entrypoint
    • 添加一个 result_number 参数,引用 RandomIntGenerator.result_number
  5. 选中 Condition(1) 算子,将名称改为 “Equal or greater than 5?”,在其参数配置中,引用 RandomIntGenerator 算子的输出作为 Condition 算子的表达式:RandomIntGenerator.result_number >= 5

    ../_images/workflow_config_3.png
  6. 参照步骤3,双击 Equal or greater than 5? 算子,在其子画布中配置 PythonEx 算子。

  7. 在主画布中,拖拽 RandomIntGenerator 算子的输出点,用箭头将其连接到2个 Condition 算子的输入点,表示算子之间的逻辑依赖关系,完成任务流的编排。

    ../_images/workflow_config_4.png

运行任务流

  1. 保存任务流后,点击功能操作区中的 运行 图标。在弹窗中,系统将生成任务流运行实例名称(命名规则为:yyyymmddhhmmssms)。如需修改运行任务流的资源配置,在 高级配置 中,完成运行资源配置。点击 确认,开始运行任务流。

    ../_images/workflow_config_5.png
  2. 任务流开始运行后,点击功能操作区中的 查看运行实例 图标,在 运行实例列表 中,查看已运行的任务流实例。

    ../_images/workflow_list.png
  3. 点击运行名称,查看任务流实例的运行结果。

    ../_images/workflow_running_results.png

配置任务流自动调度

可对任务流进行调度配置实现任务流自动运行。

操作步骤

  1. 在实验列表中,点击实验名称卡片下方的 调度配置 按钮或在 任务流设计 页面点击 调度配置
  2. (可选)如在实验列表中配置,点击 新增调度 ,选择需要自动运行的任务流 版本号
  3. 设置 最大并发 ,而后点击 下一步 完成生产调度配置:
    • 触发类型:选择 Periodic 按固定频率周期调度任务流或按指定时间(通过 Cron 表达式配置)调度任务流
    • 设定调度任务流的开始时间和结束时间(默认开始调度时间为当前系统时间,默认结束时间为当前时间+10分钟)
    • 若按固定频率周期调度任务流,设定运行时间间隔(默认运行时间间隔为1小时)
    • 若按指定时间调度任务流,输入 Cron 表达式
  4. 完成任务流调度配置后,点击 确认