背景
30 人的机器人公司,5 人的算法团队,传统的视觉模型需要迭代,缺乏工程化的流程
什么是 MLOps
MLOps 是位于 ML、DevOps &数据工程之间的交叉点的一套实践,其目的是在生产中可靠有效地部署和维护 ML 系统从而提供模型迭代的效率
目标
集成开源工具,工程化模型迭代流程,提高效率
业务流程
系统架构
组件
Label Studio
标注平台
FiftyOne
数据集管理工具,最常用的功能是将多个数据集合并
MLflow
用来做模型训练的管理,查看训练相关指标
Code-server
VS Code in the browser,用来做配置文件的编辑,省去了大量的前端开发量
Glusterfs
分布式文件系统,存放数据集、训练配置、模型、任务日志、训练产物等
/mnt/glusterfs
├── config/
├── datasets/
├── models/
└── tasks/
└── {taskId}/
├── config/
├── logs/
└── artifacts/
docker-py
Docker SDK,用来管理训练容器
不同类型的训练任务触发不同的训练容器,容器里的训练脚本集成了 MLflow,训练日志会存到 /mnt/glusterfs/tasks/{taskId}/logs 目录下,通过 MLOps server 提供给用户查看
飞书 SDK
用来在流程的关键节点发送通知,如训练任务开始,训练任务完成
MLOps server
待捯饬好后放到 github 上
基于 github.com/fastapi/fas… 构建
通过 Label Studio, FiftyOne, MLflow 等SDK,将流程串联起来,提供 API 给前端
扩展
- 引入 DVC 进行数据集版本管理
- 支持模型部署,将目标模型转成 engine,推送至目标设备