做机器学习工程师,通常都要读过博。
即便没有写成岗位的必要条件,也慢慢变成了自然规律。
那自学成才的人类,要写怎样的项目经历,才能让面试官相信,自己也是有同等能力的呢?
一个叫做AdditionalWay的网友,在Reddit提出了这个直击灵魂的问题,引发了大量讨论,两天热度已经超过500。
讨论版上,有许多人提出了中肯的建议:
有位叫做po-handz的网友,他发表的意见收获了80分的高赞同,占据了评论区的顶楼:
把自己的项目投入生产环节 (launch into production) ,就能超越99%的应届生,也能超越大部分在位的ML工程师了。
对此,有人 (moravak) 表达了墙裂赞同:
这个“大部分”,其实就是≥99.9%。
顶楼又补充说,很多人就算读到博士毕业,可能也没有自己把一个项目做到生产环节的经验。
那么,怎样才算有这样的经历呢?
网友 (BernieFeynman) 简约地解释了一下:
搭些模型,不用非常非常厉害。但要让人能看到,模型在哪跑起来的样子,比如有个API可以调用之类的。
当然,做起来并不是一句话的事,顶楼详细描述了,一整个过程究竟能有多难:
比如,一般你不会只有一个模型,是有一组。所以,需要让这些大模型,加载在服务器的RAM上。 还要接受新输入的数据。这些数据,要和测试数据的格式保持一致,还要scale,该怎么scale呢? 推理要用GPU么?那样的话在AWS上每月可能要花1000刀,预算能支持么? 时序数据怎么办呢?你需要一个连续更新的模型,还要一直跟踪调参。 除此之外,你需要一个实时的、可维护的数据管道 (data pipeline) 。搞这个,比处理一个清晰干净的数据集要难多了。 最后的最后,你还需要一整套UI,网站,nginx堆栈,要做成用户友好的样子。
别说是刚毕业的博士,许多有经验的数据科学家也对这些东西一窍不通,因为他们可能只在自己专业的领域里工作,都是别人把干净的数据集交到他们手上。
你如果在这点上打赢他们,对企业来说就有更高的价值了。
训练实用技能,只是一方面。
如果不想在简历筛选环节见光死,网友 (rudiXOR) 在一家“正在招聘ML工程师的中型企业”,总结了十大雷区,供大家参考:
第一,拿着一大堆MOOC证书。没用,我试过,quiz一路点下去谁都做得到。 第二,对Kaggle成绩过于自豪。许多大学生都参加过Kaggle比赛,他们也知道这种比赛和ML工程师的工作,基本没什么共同点。 第三,去了3个月训练营,从PCA到LSTM,几乎所有ML技术都修炼到了。真的没人相信。 第四,GitHub项目都是只提交过一次代码的那种。根本看不出是不是自己做的。 第五,GitHub主页是新的,一个项目都没有。 第六,模型只在toy datasets上测试过,没有再严肃点的项目了。 第七,每种语言都说“精通”。比如C++、Python、Java、C#…… 第八,对照职位要求精心匹配了简历 (“Buzzword optimization for HR algorithms”) 。 第九,没有证明自己的数学/统计学知识水平。 第十,没有软件开发的经历。
就算前九条你都忘了,也可以严肃地参考第十条。网友在细数了雷区之后强调:
如果你是自学的,不要一上来就投数据科学家,或者ML工程师。 可以先申请数据分析师,或者软件工程师。 如果是自学ML,又没有软件开发的经历,我是不会请你的。
参考前文,如果没有读过博士,就要比博士多点工业界的经验才更有利。
不过,自学什么时候都不晚。
比如,谷歌大脑的研究员David Ha,在投入机器学习的怀抱之前,已经做到高盛的董事总经理 (MD) 了。
那么,各位也要加油啊。
Reddit讨论版还有更多建议: https://www.reddit.com/r/MachineLearning/comments/c3e9qu/d_those_who_hireinterview_for_machine_learning/
— 完 —