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订阅。
运行态主要提供以下能力。
- 统一配置管理:管理工作流需要配置的参数及使用的资源等。
- 操作工作流:启动、停止、复制、删除工作流。
- 运行记录:工作流历史运行的参数以及状态记录。