|
北美计算机视觉工程师的日常
看到大部分答案基本都是大佬们在讲国内算法工程师的日常体验,那这里我就补充一个数据点,讲一下北美做算法工程师是怎样的日常。
我的经历还算比较丰富,曾经在三年内从初创公司的实习生跳到国内大厂北美研究院的全职,再跳到德国车企北美研究院的senior职位,所以在这里,我想分别介绍一下这三种不同类别公司的日常是怎样的。
初创公司日常体验——一入初创深似海
在startup干活的特点有三个:钱少、活多、压力大。至于成长速度与成长上限,有很大一部分取决于你的leader.
九点上班,中午十二点午饭,下午一点干到六点下班,然后开始加班到十点,周末单休。没错,我在这家初创公司拿着可怜的实习生薪水,过着比国内996还要悲痛的生活--因为我的组长就坐在我身后,我一旦发呆或者看手机,他就会过来提醒我,连一点摸鱼的机会都不给。也是在这段时间,由于压力过大和缺乏锻炼机会,我体重狂涨将近20斤,过了很久才恢复过来。现在想想,当初就是被PUA了。
我刚加入者家公司的时候,整个公司一共就10个人,我的小组长也是刚加入(没错,我们组就我俩人),他开发了一个很丑陋的产品原型,我的目标就是不断改进这个原型。
在这段时间里,我的工作80%集中在不停地扒拉别人现有的github repo和pretrained model,然后放到我们自己的数据集上跑一跑,把效果好的demo记录下来,汇报给小组长,小组长会拿来深入研究(后来事实证明,他所谓的研究就是拿着我搞的demo继续拉大老板的投资,根本没做实质性的工作)。另外的20%时间用来复现那些看起来效果很好,但是没有开源的论文。有些论文复现难度很大,我就会拿着向小组长请教,结果发现这个以PhD自称的组长也都是束手无策,只会含含糊糊地说个所谓的方向(比如,你要把这几个数学公式搞懂再写阿!什么,你搞懂了?不可能,那一定能复现,你再好好查查.......).
我在最初时对工作内容还算满意,虽然很多时候做事情像蜻蜓点水一样浮躁,复现时经常受挫孤独无援,但我的确对相关领域在短时间内有了完整的了解,数学能力与代码能力也在复现中得到了提升。但到了后来,小组长push我越来越严重,言语bully, 他自己却又毫无作为,每天沉浸在社交媒体,我实在忍无可忍,直接在某天发作,与他进行了一番激烈的撕逼,当场辞职。
虽然我本人在初创公司的体验很差,既没有生活可言,薪水可怜,成长有限,但是不排除这个世界上仍有很多好的startups值得你加入。不过一定要瞪大眼睛仔细观察,如果你的tech leader技术水平有限,人品一般,还是躲得越远越好。
国内大厂北美研究所日常体验——充实愉悦暖似家
从上一个初创公司离职后,我加入了某国内大厂北美研究所,在这里度过了一段充实愉悦的时光。
其实在这里的工作时间表有两套,第一套是研发阶段,第二套是落地阶段。
在研发阶段的时间安排整体比较轻松,早上九点到办公室,中午十二点开饭(湾区最棒伙食,经常能吃到火锅、烤鱼),午饭后会在附近的小道上和同事们一起散步半个小时,然后接着回来工作,干到晚上六点下班,几乎很少加班。下班之后我一般会去健身房锻炼一小时,然后回家继续充电,写写论文,上一些网课。
到了落地阶段时间安排就不太固定了,其实工作时间仍旧是八到十个小时,但为了配合国内团队,有时候需要昼夜颠倒,白天休息,凌晨干活同步。好在这种日子一般不长,而且其他同事也会与我并肩作战,整体感觉还好。
40%的时间是在做各种算法的prototyping, 包括阅读大量文献,筛选适合我们应用场景的baseline, 并且在baseline上不断提出改进的idea, 然后在大量的数据集上训练与验证,力争效果达到最好。由于每次训练需要花的时间比较久,我们每个人往往同时会负责两个项目(一主一辅),这样就不必眼巴巴等着训练结果出来,而且交叉领域很多时候会带来新的灵感。
另外有40%的时间是用来做模型优化与移动端移植。因为许多模型需要放在移动端跑,所以需要针对不同的prototype进行模型剪枝、蒸馏、量化、结构调整,在表现与性能之间找到最优平衡点,然后利用各种移动端ML Framework将模型移植。
最后还有20%的时间就是用在数据清理和写专利啦!
这里有很多厉害的同事可以给我指点,同时操手算法设计与落地让我具备了全栈能力,代码水准大幅度提高。而且这里的同事大部分都很nice, leader人超级棒,给我留下了许多温暖的回忆。
德国车企北美研究院日常体验——一丝不苟惊喜多
在德国车企北美研究院的工作可以说是轻松愉悦又心惊胆战,这里继秉承着德国人严谨的特性(就连comment里面语法写得不好都会被decline pr,如果代码写的不够规范或者效率太低,组长会非常严厉地提醒你), 也有着德国特有的人文关怀(假期超级多,豪华汽车只要提前预约就可以免费开)。
早上九点上班,十一点四十吃饭,一点开始工作,最早五点半就能下班,基本是实打实的朝九晚五。重点来了,除了每年正常的带薪休假外,我们在圣诞节期间会全体放假两周,感恩节期间放假一周,每年还经常来几天wellness day放假,可以说一年里面有差不多一个半月都处于放假状态.....
由于我的主要职责还是在计算机视觉这块领域,所以与上一个公司比较类似,30%时间算法prototyping, 30%时间放在模型优化与移植到无人车上测试,另外还有20%的时间针对组内现有的代码架构做一些泛性优化,剩下的时间用来撰写论文与专利。
日常整体较为轻松,最大的进步在于代码的规整性、可读性和效率大大提高(毕竟审查变态般严格),同时有许多自由的时间与空间去探索最前沿的论文成果,可以结合自己的经验产生新的模型(顺便再出几篇论文就更好了)。
精致的结尾
在北美做算法工程师整体来说日常体验来说还是不错的,虽然工作时长基本停留在每天8到9个小时,但是效率非常高,很少有划水,同时充分的休息又让这种高效可以持续很久。这里的大部分公司都是扁平化管理,所以交流起来比较轻松友好。 |
|