各位算法工程师,你们平时在公司内部开发模型,做实验,上线模型的环境是什么样的?方便分享一下经验吗? 我们最近想在内部统一开发环境,这是我们初步的构想:
这套东西看起来很美好,就是组件比较多,比较大的依赖 kubeflow 这个项目,这个项目的成熟度不知如何。
不知道大家有什么最佳实践可以分享吗?公司属于中小规模,没有什么历史负担。已经在使用 k8s ,业务主要是提供各种定制化的 AI 服务 API ,所以对上线速度和开发效率比较看重。
谢谢
1
Calibans 2022-04-09 09:31:56 +08:00 via iPhone
同问
|
2
0x4F5DA2 2022-04-09 09:44:53 +08:00
现在做 cv 相关的算法,感觉整这些上手难度还挺大的。有时候想把最新论文的开源代码跑起来,在你这套框架下面就不知道怎么弄,目测工作量会很大。
之前实习过三家公司。有两家是在 docker 里跑 jupyter lab 或者 vscode ,提供终端和代码编辑,然后就能像用物理机一样用,也可以支持类 slurm 那样提交任务排队等调度;还有一家用的是 slurm ,需要在本地开发并调试好之后提交任务去跑。 |
3
0x4F5DA2 2022-04-09 09:50:11 +08:00
最简单的肯定提供物理机,然后一人一个账号,用来做开发和调试,然后写个脚本定期杀长时间的 gpu 任务。然后整一个 slurm 的集群,用来提交任务跑代码。
|
4
dayeye2006199 OP @0x4F5DA2 Jupyter 带 terminal 的环境,可以要一个带 GPU 的 lab 容器,然后 gitclone 开源代码到容器里调试运行,是否可以满足需要?
vscode 也可以作为开发环境提供。容器里面运行一个 coder 的进程,然后暴露给用户。 |
5
yzbythesea 2022-04-09 10:58:33 +08:00
上线模型都是基于云计算厂商已有服务搭建的。本地开发就是容器化。
|
6
tfdetang 2022-04-09 11:44:56 +08:00 1
1 、以前也用过 kubeflow 的方案。说实话维护起来还是蛮重的,学习成本也并不低;
2 、kubeflow+jupyterhub 那套用来做数据探索和模型 prototype 还是非常好用的。 正式的训练任务还是写成代码工程进行版本管理的,用 notebook 串联还是觉得不是很严谨; 3 、我们现在实验管理也都是完全放在 mlflow 上了,还是很方便的。训练以后关键的配置文件和模型一起作为 artifacts 放到对象存储上,保证拉取模型的时候与配套的配置一起使用; 4 、推理那块我们用的是 Triton Serving 的推理框架(不过一些 tensorflow 的模型还跑在 TF serving 下) |
7
0x4F5DA2 2022-04-09 11:57:07 +08:00
@dayeye2006199 我觉得吧,在不改变现有的使用习惯的前提下,提供新的功能,就还 OK
|
8
Jasonkkk 2022-04-09 20:56:13 +08:00 via iPhone
@0x4F5DA2 我们离线模型就是这样的,甚至没有 slurm 。也可以选择在公司级别的云平台上跑例行。可能我们是策略岗所以没这些环境,研究员可能专业点
|
9
zhoujinjing09 2022-04-09 23:23:05 +08:00
你们有专人维护 k8s 吗,kubeflow 维护起来还是比较麻烦的
|
10
dayeye2006199 OP 各位老铁收藏很热情,回答的热情也走起来把
|
11
suixn 2022-04-11 10:26:02 +08:00
TME 之前开源了一套方案,可以参考下。
https://github.com/tencentmusic/cube-studio |
12
dayeye2006199 OP @suixn 恩这个是在 kubeflow 的多个组件上进行了定制和二次开发吗?
|