从新东方讲师到AI框架工程师,我的历次职业转折|OneFlow U
Posted OneFlow深度学习框架
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从新东方讲师到AI框架工程师,我的历次职业转折|OneFlow U相关的知识,希望对你有一定的参考价值。
姚迟,一流科技研发工程师,现主要负责技术文档和内容输出。他在湖南大学本硕读的化学专业,在长沙新东方主讲了五年化学,但由于一段话击中了他,使他感到自己必须亲身参与一次科技浪潮。
于是他毅然选择辞职,在培训班闭门学习了汇编,并且顺利进入做互联网安全的大厂转型成为一名工程师。不过在大厂短暂并不愉快的工作经历,让他大失所望,后来由于种种原因,在安全行业逐浪的愿望离他渐远。一次无意插柳又让他重燃技术热情,决定参与到深度学习框架这个新浪潮之中。
多次职业转折源于他不给自己设限,追求实现自我,这使他拥有比其他人更丰裕的人生密度,当然其中也有可想而知的挑战和风险,但在职业生涯早期,他磨炼出了克服困难的足够勇气和底气。
本文为姚迟自述。
1
五年新东方化学讲师
我接触编程应该算很早了。小时候,父母可能受到了“英语、计算机、驾照是21世纪的通行证”这种饥渴营销的影响,很早就让我去跟一个老师学计算机,其实就是学DOS命令、五笔、QBasic一类的,他们也很舍得教育投资,大概在1997年还给我买了一台奔腾II电脑。
遗憾的是,虽然起步早,但我小学到高中的时间大都浪费在了折腾搭私服“江湖”、逛论坛等一系列没什么沉淀的事情上。初中时,我是网络安全小组20cn.net的“圈内”成员,和一圈大我一轮两轮的人冲浪,却没想到和他们深入学习编程,没有对朴素的技术原理做有深度的思考,比如“为什么printf可以把字符串打印到控制台”,学到的更多是“网管”技能。
我上大学后学的化学专业。湖南大学的化学专业有个国家重点实验室,可以开设本硕连读班,只用读6年,并且湖大是可以到大三研修“第二专业”的,当时我的小算盘是:本硕班可以快一年拿到硕士学位,然后大三(2008年)去辅修计算机。
但没想到,当我怀揣着梦想和刚取出的3000块学费去报名时,相关老师告诉我“人太少了,开不起来,赶紧去其它二专业吧”。我也不知道我能学啥,就去报了个英语二专业。
在英语专业,有同学在新东方实习,新东方又在扩科招人,听说我是本硕班的,就把我推荐过去了。我是抱着随便见见世面的想法去的,还没分清疯狂英语和新东方的区别,可以想见,我应聘时的表现肯定是不佳的,多年后我的上司也坦言“刚开始实在太难找人了,让这家伙试着吧”。后来没想到,我在那儿一待就是5年。
我的硕士导师谭泽老师,他在34岁时就成为了湖大教授、博导,师从化学家Negishi(根岸英一,2010年获诺贝尔化学奖),是个严厉又佛系的人,非常有个性。他一方面接受我做他的学生,和我讲蒲慕明写给学生的信,讲美国读书时导师如何不惧学生威胁,把办公室换上防弹玻璃;一方面决定放养我,大概意思就是“实验的仪器和试剂都很贵,你做一线可能浪费材料,当备胎吧”。后来他申请到的基金少于预期,我就更加备胎了,被鼓励先自谋生路,最后一年再来加倍做实验。于是,我有了充足时间去应对新东方的工作。
在新东方,我见识了当时最顶尖的理科老师,着实被震撼到了,原来可以这么牛,他可以背下20年内所有高考题的序号、分值、内容、答案……,更震撼的是,背后的手段可以这么简单枯燥:刷题、写逐字稿、反复总结、练习……
我真的就很单纯,觉得当那种很牛的老师太“酷”了。在没有任何工资补助的前提下,花了大半年时间,刷了十年的高考题目、手工抄了其中数百道、写了几十万字的逐字稿,然后顺理成章登上了讲台。
然后,我破格以兼职身份成为了全职人员才能担任的项目负责人。毕业后直接留任新东方,在这里我得到了很多(包括老婆,哈哈)。
当一切都很顺利时,我的中二毛病就渐渐抬头了。当时看到《浪潮之巅》里的总结“近一百年来,总有一些公司很幸运地、有意或无意地站在技术革命的浪尖之上。在这十几年到几十年间,它们代表着科技的浪潮,直到下一波浪潮的来临。对于一个弄潮的年轻人来讲,最幸运的,莫过于赶上一波大潮。”读到这段话让我很激动,觉得自己应该去参与某一波浪潮。
2
学习汇编转型工程师
因为我长期逛论坛、玩微博,所以关注了不少技术网红,比如老师木、tombkeeper、kxn、delphij等。在2014年,我结婚了,同时敏感地意识到,安全圈要迎来春天了(国家政策提到“没有网络空间安全,就没有国家安全”)。中二的我觉得是时候转行去参与某一波浪潮了。
小时候的经历、在大学参与过SIT项目(本质上是用Matlab解决一个物理化学领域里的最优化问题),加上旁听过其它学院的课,回头看我应该符合“调包侠”的小白水平,但是想到没有搞懂“为什么printf可以把字符串打印到控制台”这个问题觉得非常可耻,不搞懂它,我就无法达到我仰慕的那些人的水平(当然现在我知道了,我搞不搞懂这个问题都没法达到)。
当时我不知道如何搞懂它,但觉得从底层的汇编学起肯定是没错的。
于是我打算从汇编学起,一边买书一边在网上找“怎么学汇编、哪里教汇编”,最后找到了一家可以闭门苦学的培训机构武汉科锐去学习“软件逆向”。家人也非常支持我,于是我就辞职去学编程了。
在那里,我第一次知道了调试为何物,感觉之前自己硬看代码太傻了,知道了畸形PE、0环等……创始人兼主讲老师钱林松也很快与我亦师亦友,带着我参与科锐的一些企业项目,其实都挺有意思的,比如通过二进制逆向做一些“稀缺游戏”再发布,把游戏“战争之人”给改成“亮剑”版本,如果考虑不仔细,就会出现“马爆炸了”的笑点,因为马是由坦克替换资源得到的;或者做像猎杀潜航、文明这类游戏的MOD。做完之后免费发布出去,然后用“异于通常手段”的方式和客户端通信。
临近“毕业时”,老钱想留我,和我说“大公司做的事情就是你做的这些”,我是不信的,觉得游戏等毕竟只是玩具,我想去“一线安全公司”大干一场。老钱很支持我,考虑360在北京,北京居不易,就想去广东某头部移动互联网安全公司,他就把我推过去了。
很快,我就会知道,我要被生活大干一场了。
2015年,我到这个南方的互联网安全大厂成为了“反病毒工程师”。我本以为理想中的病毒分析应该是,认真分析每一个接触到的新样本,完全搞透它背后的原理,以此不断积累技术。然而实际情况是:可能一天给你数百个样本,然后一天内必须标出白名单、黑名单。我痛苦了一阵子后,直接写了个脚本,把样本上传到 VirusTotal 根据上面的结果自动打黑白,这样工作更轻松了,但感觉自己被“逼良为娼”。最不能忍受的是所在小组的领导们假装努力工作的氛围。
本来看这种情况,两星期内就想跑路,但怕履历上不好看就熬着,工作三个月后被通知可以转正,但我摊牌后连夜“逃”回了长沙。
这段经历我感觉很受伤,觉得这种一线互联网公司太让我失望了,当然主要还是怪自己的幼稚、中二和无知。
正在犹豫自己要干嘛时,老钱又向我递来了橄榄枝。我和老钱说“我在新东方可能把我这辈子应该讲的课时用完了,不想讲课”,所以他让我只做管理和项目,主要是合法地做与本文出现的一种动物有关的软件,在此就不展开了。
再后来我有了可爱的女儿,2017年在武汉买房安了家,但我老婆非常不适应武汉,居住了几个月,被形形色色的小商小贩骗得团团转,就给我下了最后通牒:你再不回长沙我们就分手吧。
于是,我含泪和老钱分手了。
3
参与新浪潮的机会再至
辞职很匆忙,长沙的IT环境也没有武汉好,回长沙最开始offer预选方案有两个:一家做 DDOS 防御的公司智为,还有国防科大某个实验室(待遇比不上智为,但有寒暑假)。
鉴于我想继续做技术,同时又对老婆、女儿、父母有较深的愧疚,回长沙后想多陪他们,在两个选择中我挺纠结的。这时,长沙的老牌IT培训机构牛耳出现了,给的offer待遇比较好,并且破格只需要上课到场,其它时间可以自由活动。我很快接受了。
我在牛耳的工作是去长沙一所高校林科大给本科生教嵌入式,之前完全没搞过,不过此时水平已经学一学就可以任职了。教学方面我还挺受认可的,反正我带的学生开始毕业之后,牛耳林科大校区断流多年的一线大厂的offer又重新复活了。
除了每周花十几个小时去给学生上课外,我的时间基本上就在陪孩子,小区里的游乐场、公园、商场、画画体验馆到处都留下了一个男人背着妈咪包抱着孩子的身影。
这时,袁老师出现了,也应该出现了。
与袁老师联系上非常偶然,我关注袁老师(@老师木)很久,但并不是很清楚他在干嘛,只知道另一位在我微信联系人里的技术网红@梁斌Penny对他评价很高,说是“大象级码农,在干大事”。
2020年5月的一天,他发了个“技术文档招聘”,但上面没写薪酬、没写具体做什么,我就脑补认为这应该是招“论坛版主”这样的角色。当时我空闲时间很多,觉得版主这种事适合我做啊,还可以多认识下技术网红,和技术一线建立联系,有利于教学培训。
我还挺正式的,没直接给袁老师发私信,是先按海报信息联系上行政合伙人赵姐,然后再联系上的他。
和袁老师第一次电话聊了一个多小时。
他的开场是“我们要做全世界最好的深度学习框架”。我说,我不懂你们要做什么,但是我想认识你,我懂技术也表达好,还时间多,可以免费给你当版主。
聊天过程中,才发现OneFlow是真在招全职的“技术文档工程师”,不是招版主。和袁老师聊得挺愉快的,包括工作经历、项目经历、技术演化、人生感悟等,因为没有面试的心理包袱,所以更像是两个男人之间的喝茶侃大山。
中间袁老师突然插了一句:你不会来北京是吧,那也可以远程上班。我说这太不靠谱了,即使现在可以远程,到时说有变化,不能远程了让我再去北京可怎么办。
袁老师:我们北京的同事也正在远程上班。
我:哦~~~那倒好像是真的。
愉快地结束聊天后,我发了两类资料给袁老师,一类是我的上课录屏,证明我“表达好”;一类是破解商业软件的笔记,证明我“懂技术”。
然后袁老师就邀请我加入了:你的工作经验、能力和履历都挺符合我要求的,有一个问题就是要搞深度学习方向这类型的工作,同样也要求你成为这个方向的准专家(算法、应用、架构等等),也需要你像搞化学、逆向、IT培训一样投入,去学习很多新的东西。
在溜娃和躺平中,早已没有技术追求的我,突然很兴奋,我又有机会参与到“做全世界最好的深度学习框架”这波浪潮中,而且可以完全远程上班就更棒了。我答应了。
4
成为AI框架的准专家
OneFlow的工作氛围是非常“野生”的。比如我第一次去北京办公室,遇到个猜不出名字的哥们,就询问身边的同事,结果问了一圈也没问出来是谁。后来直接去问本人,才知道是坐那都已经有一个多月的实习生。当然现在流程上已经很完备,没这么“野生”了,实习生入职有指派的导师、新手村任务、陪练NPC、保护期等。
同时OneFlow是强调“心力”的,节选袁老师的一个issue回复:每个人出于热爱和责任做事,要把某一方面的事情做好,要发自内心的热爱,有激情,而不是指派。我理解,这种“心力”是创业公司和大公司做事的最大不同,也是一种最大的优势。我们不预设每个人的能力和工作范围,把自己负责的事情做好,证明能搞定一类事情,也可以获得去试探其它方向的机会。
OneFlow强调的“热爱和责任”是个巨大的优点,这很难在其它公司见到:只要你提问得当,几乎所有同事会把帮助你解决技术问题当作他的责任。
从我加入开始就不断受到其它同事的帮助:暄哥(谢暄)带我了解OneFlow本身、GitHub工作流;成诚、俊丞给我讲OneFlow的内部设计及原理;文骁严格地review我的代码并教我CUDA优化注意事项;德澎帮我挑有代表性的模型算法去复现、学习;建浩给我讲我没实践过的 C++ traits……不胜枚举。
所以,在之后我写文档遇到了知识瓶颈,就通过直接参与算子开发加深理解,开发几个算子后又成为“算子负责人”(这个重大的责任现在转交给了比我适合得多的同事 BBuf),又参与了建浩牵头的多设备支持项目等,就显得比较自然(编者注:袁老师评价姚迟已经是一位优秀的深度学习框架研发工程师)。
从不忘初心的角度看,我坚信,我的职责是成为“深度学习框架的准专家”并做优质的技术文档产出,我的工作都围绕这个目标展开。
OneFlow 框架中有许多领先的技术和设计,如果被更广阔的人群或技术圈知晓,可能会推动更爆炸的技术浪潮,如何做好这方面的技术内容输出,我觉得与框架研发的挑战一样重要和困难。所幸的是身边有不少志同道合又非常优秀的同事,我们可以在代码敲疲惫后讨论怎样做技术内容输出,又可以借技术内容输出随意研究最前沿的技术,这种工作状态是很理想的。
现在我们也在招技术文档工程师实习生,详情请见本期二条内容“在OneFlow做技术文档是怎样的体验”,期待你的加入。
最后,不得不提的是,我还在OneFlow捡了一女婿。一鹏作为博士生来公司实习,非常逗,他无耻的样子颇有我当年的风范:在得知我有个可爱的女儿后,就直叫我“岳父”,我让贤婿记得以后每个月工资分我一半预付彩礼,但到目前为止都没收到过款。
其他人都在看
欢迎下载体验OneFlow新一代开源深度学习框架:https://github.com/Oneflow-Inc/oneflowhttps://github.com/Oneflow-Inc/oneflow
以上是关于从新东方讲师到AI框架工程师,我的历次职业转折|OneFlow U的主要内容,如果未能解决你的问题,请参考以下文章
软件测试工程师是青春饭吗?--已过32的测试老鸟带你分析:软件测试职业发展规划