算法工程师的开发环境都是什么样的?

2022-04-09 08:25:23 +08:00
 dayeye2006199

各位算法工程师,你们平时在公司内部开发模型,做实验,上线模型的环境是什么样的?方便分享一下经验吗? 我们最近想在内部统一开发环境,这是我们初步的构想:

  1. 使用 jupyterhub 跑在 k8s 上为多位工程师自助式提供 jupyter 的环境
  2. 提供若干个常见的算法开发镜像,启动 jupyter 环境的时候可以选择( tensorflow ,pytorch 之类的)
  3. 使用 GPU 设备插件,来像算法同事提供带 GPU 的环境
  4. 鼓励大家使用 mlflow 来管理实验
  5. 使用kubeflow pipeline和 notebook 中的elyra 插件来使用多个 notebook 构建复杂的算法流程,方便重复实验
  6. 批量推理的话也是使用 kubeflow pipeline 来完成
  7. 在线推理的话使用kserve通过写 yaml 的方式完成

这套东西看起来很美好,就是组件比较多,比较大的依赖 kubeflow 这个项目,这个项目的成熟度不知如何。

不知道大家有什么最佳实践可以分享吗?公司属于中小规模,没有什么历史负担。已经在使用 k8s ,业务主要是提供各种定制化的 AI 服务 API ,所以对上线速度和开发效率比较看重。

谢谢

3613 次点击
所在节点    程序员
12 条回复
Calibans
2022-04-09 09:31:56 +08:00
同问
0x4F5DA2
2022-04-09 09:44:53 +08:00
现在做 cv 相关的算法,感觉整这些上手难度还挺大的。有时候想把最新论文的开源代码跑起来,在你这套框架下面就不知道怎么弄,目测工作量会很大。

之前实习过三家公司。有两家是在 docker 里跑 jupyter lab 或者 vscode ,提供终端和代码编辑,然后就能像用物理机一样用,也可以支持类 slurm 那样提交任务排队等调度;还有一家用的是 slurm ,需要在本地开发并调试好之后提交任务去跑。
0x4F5DA2
2022-04-09 09:50:11 +08:00
最简单的肯定提供物理机,然后一人一个账号,用来做开发和调试,然后写个脚本定期杀长时间的 gpu 任务。然后整一个 slurm 的集群,用来提交任务跑代码。
dayeye2006199
2022-04-09 10:03:22 +08:00
@0x4F5DA2 Jupyter 带 terminal 的环境,可以要一个带 GPU 的 lab 容器,然后 gitclone 开源代码到容器里调试运行,是否可以满足需要?

vscode 也可以作为开发环境提供。容器里面运行一个 coder 的进程,然后暴露给用户。
yzbythesea
2022-04-09 10:58:33 +08:00
上线模型都是基于云计算厂商已有服务搭建的。本地开发就是容器化。
tfdetang
2022-04-09 11:44:56 +08:00
1 、以前也用过 kubeflow 的方案。说实话维护起来还是蛮重的,学习成本也并不低;
2 、kubeflow+jupyterhub 那套用来做数据探索和模型 prototype 还是非常好用的。 正式的训练任务还是写成代码工程进行版本管理的,用 notebook 串联还是觉得不是很严谨;
3 、我们现在实验管理也都是完全放在 mlflow 上了,还是很方便的。训练以后关键的配置文件和模型一起作为 artifacts 放到对象存储上,保证拉取模型的时候与配套的配置一起使用;

4 、推理那块我们用的是 Triton Serving 的推理框架(不过一些 tensorflow 的模型还跑在 TF serving 下)
0x4F5DA2
2022-04-09 11:57:07 +08:00
@dayeye2006199 我觉得吧,在不改变现有的使用习惯的前提下,提供新的功能,就还 OK
Jasonkkk
2022-04-09 20:56:13 +08:00
@0x4F5DA2 我们离线模型就是这样的,甚至没有 slurm 。也可以选择在公司级别的云平台上跑例行。可能我们是策略岗所以没这些环境,研究员可能专业点
zhoujinjing09
2022-04-09 23:23:05 +08:00
你们有专人维护 k8s 吗,kubeflow 维护起来还是比较麻烦的
dayeye2006199
2022-04-11 00:36:08 +08:00
各位老铁收藏很热情,回答的热情也走起来把
suixn
2022-04-11 10:26:02 +08:00
TME 之前开源了一套方案,可以参考下。
https://github.com/tencentmusic/cube-studio
dayeye2006199
2022-04-12 00:49:18 +08:00
@suixn 恩这个是在 kubeflow 的多个组件上进行了定制和二次开发吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/845833

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX