2022 年的愚人节,上海整个浦西开始了第一天的疫情封禁,也是我在腾讯云的最后一天。腾讯云是我第一次在公有云团队的职业经历,因此对我来说是全新的体验。公有云和私有云都经历过后,对于云计算行业也算有了更多的了解,也让我认为这个领域仍然存在非常多的挑战与机会。
在腾讯工作的体验是非常好的,其中让我印象最为深刻的是每天中午的关灯午休。自从十几年前来到上海读书后,我就再也没有在黑暗的环境中午休的机会了,但是腾讯又重建了我的这一习惯。每到中午的时间,保洁阿姨就会帮忙把整个办公室的灯关掉,这个时候我通常会先去吃饭,回来后简单浏览一些新闻就开始在行军床上休息。刚来腾讯的时候我自以为我不会再适应午休的生活了,别的同事都在睡觉的时候,我就在浏览各种内网的文档。后来也实在没忍住,买了一张床放在公司,也慢慢开始了午休的生活 hhh
因为保密的关系,在公司的很多工作并不能与大家分享,不过开源的工作想必不在此列。在腾讯时,我也在团队的支持下参与了一些开源项目的特性贡献。首先是弹性分布式训练。在集群上进行训练时,通常训练任务是静态的,没有办法在运行时动态地调整任务的配置和实例数量,因此在调度层面能够做的集群利用率优化就非常受限。回顾 Spark 或者其他的离线计算任务,都是在支持了弹性能力后,资源的利用率有了突飞猛进的提高。因此围绕这个特性,我在 Kubeflow 和 PyTorch 社区做了些许工作,感兴趣可以参考 PyTorch 弹性分布式训练的设计与实现一文,这里不对细节做过多介绍啦。值得一提的是,最近在 Nvidia GTC 2022 上听国内量化公司幻方 AI 的 AI 基础设施的演讲,他们为了支持时分的集群调度而提供的弹性能力也与 PyTorch Elastic 的设计相似。但是我仍然觉得现在的思路还有非常多的问题,感兴趣的朋友可以与我探讨。
其次是弹性的 Jupyter Notebook 在 Kubernetes 上的项目 elastic-jupyter-operator。在模型开发和调试的过程中,通常算法工程师会使用 Jupyter 来进行交互式地编程。而 Jupyter 在集群层面执行时,需要预先申请一整块 GPU,哪怕是在空闲的时候,也没法退回给 Kubernetes 调度器交由其他用户使用。这一项目主要借助了 jupyter enterprise gateway 的能力,以云原生的方式在 Kubernetes 上实现了按需申请和释放 GPU 的 Jupyter Notebook 服务。
选择离开腾讯,主要是想在 AI 基础设施领域做更多的探索性工作,和另外一个朋友一起创业来做一些“新鲜东西”。我认为这个领域还有广阔的机会以及未来的商业化前景。关于我们想做的项目和方向,会在后面专门写一篇文章来介绍,这里可以简单分享一下。
现在 AI 在越来越多的领域有了落地,算法工程师的数量也与日俱增。他们也不只是来自 CS 背景,很多可能是材料(又在黑材料专业了)、生物信息学等交叉学科。因此传统的基础设施产品并没有很好地满足他们的需求,比如 Kubernetes、Docker 这些产品虽然在传统业务开发中已经成为了事实标准,但是算法工程师们却了解很少。而为算法工程师提供服务的 AI 平台们也都是易用性差强人意,并没有把用户,也就是开发者的使用体验放在首位,更多关注集群层面 GPU 的利用率等指标。
所以很多小团队甚至放弃了 Kubernetes、Slurm 等调度系统,选择在公有云上或者自己的小机房内基于裸机开发,通过 Excel 等方式来管理任务。哪个进程先跑起来就算是申请到了资源。
除了调度的问题之外,在跟非常多的 AI 相关的从业者交流后,很多工程师都对环境的构建和维护非常头疼。现在非常多团队使用 Docker 分发环境,而 Docker 本身也是非常复杂的,大部分算法工程师更倾向于用 docker commit
来不停地堆叠依赖,这并不是好的实践。
针对环境的构建和开发过程中的调度问题,我们希望通过开源的项目来解决这一问题。通过提供对算法工程师更加友好的构建语言(可以理解为是 Dockerfile 在 AI 场景下的竞品),在更好地处理依赖管理、缓存、Jupyter 与 VSCode remote 等算法工程师常用的 IDE 支持的同时,保证简洁的使用体验。除此之外还有很多,就等后面的文章来介绍了。
现在以及有一些新的公司比如 wandb.ai、HuggingFace、Jina 等,以算法工程师和数据科学家的体验为目标设计产品。它们旨在解决 AI 基础设施某个细分领域的需求,而且提供非常好的使用体验,并且以此形成了广泛的开发者社区。这也是我理想中的路径吧。
虽然我在主观上对这一方向非常有信心,但是也深切地认识到创业的超高失败率。如果对这件事情感兴趣也欢迎随时讨论交流,当然更广泛来说,如果对 AI Infra 这一领域感兴趣都欢迎讨论。它不同于 OLAP 或者 OLTP 等等成熟已久的 Infra 领域,正因为新,所以还有很多的方向和场景并没有事实标准或成熟项目,值得探索哦。
最后希望浦西能够早日告别封禁,求求了。
License
- This article is licensed under CC BY-NC-SA 3.0.
- Please contact me for commercial use.