查看原文
其他

梁德澎:当一个炼丹师去做框架开发 | OneFlow U

OneFlow社区 OneFlow 2022-05-10

梁德澎,一流科技工程师。2017年,他研究生毕业于中山大学,读研实习期间,当时还在微软亚洲研究院(MSRA)工作的袁进辉成为他的实习生导师,也是在那里的空闲时间,他开始鼓捣深度学习框架。


在当时来看,对他来说这也许只是一段很普通的工作和学习经历,但事后去看,你会发现,这些事在冥冥之中似乎存在某种因果关联。


毕业之后,由于有开源项目经验,还能熟练上手开源框架,他先是去做了三年的深度学习“炼丹师”,2020年6月,由于对工程比较感兴趣,在收到曾经的实习导师袁进辉的邀请后,他选择加入OneFlow团队,于是开启了框架开发之路。

 

本文为梁德澎自述。


我真正对编程感兴趣还是上大学的时候。在中山大学,我的专业是信息与计算科学,数学与计算机的基础课程都有开设。大二,我加入了本院的一个计算机社团,开始做一些当时很火的Android开发项目,与同学一起写Android App还有小游戏。从那时起,我开始接触开源代码。

 

开发项目会遇到难题,我们就去网上搜资料进行学习,有时为了解决问题,还和同学一起编程到凌晨, 挺好玩的,也不觉得累。

 

2014年,大四快毕业,我本来是要准备考研,但刚好中大开了一个新的超级计算学院,我顺利拿到了保研到本校的机会,选了一个做深度学习方向的导师,也因此入了AI的坑。

 

2016年读研阶段,当时还在MSRA的袁进辉老师需要实习生,我的硕士导师和他有合作意向,就让我去MSRA实习。在那里,我开始深度参与开源项目,这对我后来找工作帮助很大,某种程度上,这段经历也成为我加入OneFlow的契机。


1

参与开源项目,塑造个人品牌

 

在MSRA 实习时,我参与了袁老师当时在深度学习框架方面的预研工作。不过,我负责的是实现一些算子,参与的不是很深。袁老师对我比较放羊,除了完成分配的任务,我就鼓捣自己感兴趣的事。

 

MXNet框架就是我那时接触到的第一个开源项目。回想起来,感觉也挺巧的,MXNet在多语言支持上比较丰富,而我当时习惯用的编程语言是Scala,MXNet刚好也有Scala的前端,且相比Python前端还有挺多功能没有完善,也缺模型的例子。

 

所以我就从添加模型例子开始,给MXNet Scala前端贡献了些代码,期间还复现了风格迁移开山之作的那篇论文。现在MXNet contributors 排行榜上还能找到我的ID。当时写了挺多模型,所以炼丹的经验也丰富了不少。

 

对于在校大学生来说,参加开源项目好处不少。从简单的开源项目任务做起,你能扩大眼界,有机会进入业界牛人的圈子与他们交流,也能在实践中学习,提升个人能力,丰富简历内容。

 

你也应该持续打造个人品牌,通过参与开源项目和输出高质量技术文章等方式,合作者的评价也是个人品牌的一部分,比如做事是否靠谱,和你合作是否愉快,是否认可你的个人能力,这在找工作时会很有帮助。

 

2017年,研究生毕业后,由于有开源项目经验,而且Github也比较好看,我去了一家做短视频直播公司的AI部门,主要做直播审核以及提供短视频特效相关的视觉模型等工作。刚好,部门技术选择的框架也是MXNet,所以上手比较快。

 

在这家公司的前两年,读论文和训模型就是我这个炼丹师主要做的工作,因为和移动端优化的同事交流也比较多,最后一年刚好部门架构调整,我对工程也比较感兴趣,就转去做移动端推理框架部署优化的工作。

 

2

技术主导为先,远程办公很赞


刚去MSRA实习时,我其实还不知道袁老师是微博上的大V,但他给人的印象很和蔼,讲话很斯文,没什么牛人的架子,感觉人很好。当时实习期限也不是很长,过年期间我就留在了北京,袁老师还带我去他家一起吃了年夜饭。

 

与在三年前做实习生导师相比,现在他创业做OneFlow有什么变化?总体感觉,他在为人处世上没什么变化。

 

2020年初,我开始看其他机会,刚好袁老师来问我,对OneFlow是否感兴趣。从近年来主流媒体的舆论导向上看,都在谈科技自主创新,考虑了下,感觉换一个更有发展前景的赛道,发展空间或许会更大。OneFlow给出的条件里最吸引我的是能远程办公,当然,给的薪酬也不错。


在OneFlow工作一年,模型库开发和框架开发我都有参与。不同于炼丹师的日常,大部分是和数据打交道,阅读和复现论文,调参炼丹,和业务部门对接需求,写代码基本也是以写给自己用的Python为主。转框架开发之后,由于离开了原来熟悉的领域,需要补足工程能力,比如C++,而且开源框架代码写出来主要是给别人用的,对代码质量和性能要求比较高。


做框架开发最大的感受是,当你从算法到底层框架整个流程都走通之后,不用很精通,就能做很多你想做的事情,比如某个算子原来是在Python层搭出来的,如果想进一步提升性能,你懂些CUDA的话,立马就可动手实现。


在这里工作也确实和大公司不一样,技术为主导,没什么明确的上下级关系。


很多人可能不太看好创业公司做开源框架,但我觉得现阶段其实不用太关心别人怎么看,只要我们自己把产品做好,赢得开发者和用户的口碑,别人自然会改变看法。做好当下的事情才有未来可言。

 

现在很多时候是计划赶不上变化,感觉只要大趋势和大方向判断对了,进入一个快速发展的行业怎么都不会差。我自己的短期计划是,学习如何开发一个分布式深度学习框架,这也是我加入OneFlow的其中一个目的,还有就是尝试角色上的转换,从过去习惯单打独斗到联合其他同事一起做更大的事情。


总体上,我希望不要自我限制,多尝试新事物。

 

最后,这篇文章还肩负着HR同事交待的一个重大任务:随着OneFlow名声渐起,更多优秀的同事加入我们,不过目前各类工程师岗位(包括实习生)依然虚位以待,非常期待有你的加入。招聘详情请点击“阅读原文”,合适的话,别忘了砸个简历,我在“OneFlow同事群”等着欢迎你。


注:封面图源自Paula Schmidt, Pexels


近期文章

点击“阅读原文查看招聘详情,加入我们一起搞事情,就差你了。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存