更新时间:2024-04-30 GMT+08:00

什么是Workflow

Workflow(也称工作流,下文中均可使用工作流进行描述)本质是开发者基于实际业务场景开发用于部署模型或应用的流水线工具。在机器学习的场景中,流水线可能会覆盖数据标注、数据处理、模型开发/训练、模型评估、应用开发、应用评估等步骤。

图1 Workflow

区别于传统的机器学习模型构建,开发者可以使用Workflow开发生产流水线。基于MLOps的概念,Workflow会提供运行记录、监控、持续运行等功能。根据角色的分工与概念,产品上将工作流的开发和持续迭代分开。

一条流水线由多个节点组成,Workflow SDK提供了流水线需要覆盖的功能以及功能需要的参数描述。用户在开发流水线的时候,使用SDK对节点以及节点之间串联的关系进行描述。对流水线的开发操作在Workflow中统称为Workflow的开发态。当确定好整条流水线后,开发者可以将流水线固化下来,提供给其他人使用。使用者无需关注流水线中包含什么算法,也不需要关注流水线是如何实现的。使用者只需要关注流水线生产出来的模型或者应用是否符合上线要求,如果不符合,是否需要调整数据和参数重新迭代。这种使用固化下来的流水线的状态,在Workflow中统称为运行态。

总的来说,Workflow有两种形态。

  • 开发态:使用Workflow的Python SDK开发和调测流水线。
  • 运行态:可视化配置运行生产好的流水线。

Workflow基于对当前ModelArts已有能力的编排,基于DevOps原则和实践,应用于AI开发过程中,提升了AI应用开发与落地效率,更快的进行模型实验和开发,并更快的将模型部署到生产环境。

工作流的开发态和运行态分别实现了不同的功能。

开发态-开发工作流

开发者结合实际业务的需求,通过Workflow提供的Python SDK,将ModelArts的能力封装成流水线中的一个个步骤。对于AI开发者来说是非常熟悉的开发模式,而且灵活度极高。Python SDK主要提供以下能力。

  • 调测:部分运行、全部运行、debug。
  • 发布:发布到运行态。
  • 实验记录:实验的持久化及管理。

运行态-运行工作流

Workflow提供了可视化的工作流运行方式。使用者只需要关注一些简单的参数配置、模型是否需要重新训练和模型当前的部署情况。

运行态工作流的来源为:通过开发态发布,或者通过AI Gallery订阅。

运行态主要提供以下能力。

  • 统一配置管理:管理工作流需要配置的参数及使用的资源等。
  • 操作工作流:启动、停止、复制、删除工作流。
  • 查看运行记录:查看工作流历史运行的参数以及状态记录。

Workflow的构成

工作流是对一个有向无环图的描述。开发者可以通过 Workflow 进行有向无环图(Directed Acyclic Graph,DAG)的开发。一个DAG是由节点和节点之间的关系描述组成的。开发者通过定义节点的执行内容和节点的执行顺序定义DAG。绿色的矩形表示为一个节点,节点与节点之间的连线则是节点的关系描述。整个DAG的执行其实就是有序的任务执行模板。

Workflow提供的样例

ModelArts提供了丰富的基于场景的工作流样例,用户可以前往AI Gallery进行订阅

从AI Gallery订阅的Workflow如何使用

  1. 登录AI Gallery的Workflow案例库
  2. 从AI Gallery的Workflow资产页面,选择并订阅一个Workflow,勾选“我已阅读 《数据安全与隐私风险承担条款》 和 《华为云AI Gallery服务协议》”后,单击“继续订阅”。
  3. 订阅完成后,单击“运行”后跳转到ModelArts控制台界面,选择资产版本、Workflow名称、云服务区域以及工作空间,单击“导入”,进入该Workflow的详情页面。
  4. 单击右上角的“配置”后进入配置页面,根据您所订阅的工作流,配置Workflow需要的部分输入项和参数,参数配置完成后,单击右上角的“保存配置”
  5. 保存成功后,单击右上角的“启动”,启动Workflow。
  6. Workflow进入运行页面,等待Workflow运行。
  7. 每一个节点运行状况页面的“状态”为此节点的运行状态,运行成功会自动执行下一个节点的运行,直至所有节点运行成功,代表Workflow完成运行。