在做算法工程师的道路上,什么情况下技术会突飞猛进?
导读
算法工程师作为近几年非常火热的岗位,近几年校招开放了大量的算法岗位。作为想要在这个岗位上不断前进不断深入的人,有哪些tips或者经验可以传授给这条赛道上的各位呢?本文汇总了知乎上三个优质的回答,希望能给各位一点启发。
# 回答一
作者:沈世钧
来源链接:
https://www.zhihu.com/question/436874654/answer/1746629056分享2个关于算法(包括算法工程师)的心得。
1.成就一个优秀算法工程师的,不仅是聪明和汗水,更还有那一瞬间的灵感。
一作算法的朋友,入行几年一直平庸无奇,然而就在某个下午,它在公司的走廊上遛弯的时候,就在一瞬间,它脑子中闪出一个精彩的点子,一下把公司的算法性能提高了几倍。
为此,公司奖了他一大笔钱。有了这笔钱,朋友原本准备在上海首付买房,结果直接全款,而且还是90多平米的大房子。
但其实,当其他的同时了解了朋友的灵感之后都感慨万千,因为实在是太“简单”了,不过是利用了gpu的某个硬件特性而已。
但是,就是这么个简单的东西,放在那里,别人就是没想到,最后被朋友捡了个漏,只能说大概那一刻,他被上帝的苹果砸中了头。
2.算法是一个残酷的竞技场。
做软件开发的都有体会,一个优秀的软件工程师相比于一个平庸的软件工程师,可能会有数倍的生产力优势。
但是,即使是一个平庸的软件工程师,管理得当,总能够有产出,然后薪水合理,总还是能够追求性价比的。
所以,这么多年来,我还没见过因为纯技术的因素被淘汰出这个行业的软件工程师。也就是说,只要肯吃苦,薪水合理,总能有口饭吃。
但算法工程师不一样。
杰出的算法工程师相比于无所作为的算法工程,可能是极大和0的差别。
和软件开发不同,相同功能的系统,很能进行量化的比较,但算法不一样,在标准的数据集上,可以得出一个精确的性能/精度结果。在此之上,就可以就行各种比赛以及排名。
所以经常会出现这种情况。
作为一名算法工程师,过去的1年你投入了巨大的精力在某个算法的改进上,结果感觉也进步不小,但很有可能在年末的比赛中被同行吊打。
我就见过朋友辛苦了一年,比赛结果出来,排名直接去年的前5跌出前10,这个时候人只能感慨:“不是我不努力,而是对手太强”。
但最让人感到痛苦的时候,当我们被对手吊打的时候,我们甚至猜不出对手到底使用什么“黑科技”,从而取得了如此突飞猛进的成果,也许就如上面所描述的,对方的某个算法工程师也被上帝的苹果砸中了脑袋。
所以,在关键指标上,公司对算法工程师的产出考核是极端苛刻的,要么是1,要么是0。你辛苦研究出的东西很可能一出生就是落后的,要被淘汰的东西。
所以,算法工程师的情绪常常要在谷底和巅峰之间飞跃,承受巨大的压力。
正是因为算法输出成果的可比较性,在其中的算法工程师往往会承受巨大的压力,这种压力比程序员更大。
程序员虽然很累,但好在程序员的工作需求往往是明确的,过程(搬砖)是可预期的,压力主要体现在工期上。而算法工程师的需求有时候是不明确的,即使是明确的,但过程却未知,需要去探索,有时候依赖于灵感。
过去的这些年,我从没见过因技术主动离队的程序员,但我却见过不止一个因为技术,承认自己被击败,而主动离队的算法工程师。
# 回答二
作者:DLing
来源链接:
https://www.zhihu.com/question/436874654/answer/1744174731
数据放在第一位,成也数据,败也数据。深刻认识数据的重要性,把数据集维护好,数据量够了,再谈后面的模型优化,数据都不干净,用再好的模型,也不会出好的结果。
启动开发前,多问问自己有没有了解这个业务,目前定的方案还有没有盲点没有考虑到,毕竟启动开发需要准备各种数据集,耗时长且需要一定的人员和经济投入,如果开发过程中或者测试阶段发现方案不合适,这时候推倒重来的话,就DT了。
算法工程师并不只是调包侠,炼丹师,而是一个综合要求很高的岗位。要训的了模型;写的了逻辑;优化的了算法性能,时刻把运行速度,准确率,召回率,显存利用率,显存占用,cpu利用率,内存占用,并发路数等等记在心里;还得深刻了解业务,目前的方案合不合适?产品定的指标,给的需求有没有坑?完成这些需求,要选什么样的硬件最划算,可不可以少几个模型,毕竟看数据也很费眼;
多实验,多记录,多对比,勤讨论,勤汇报,勤迭代。这一行多少还是有点玄学的,很多问题没有很强的理论可以支撑,靠经验的地方很多,这个模型效果好,很多情况也不是推导出来的,而是实验出来的,有时候想破脑袋,也没有动手起几个模型效果来的快。平时多跟同事同行讨论讨论,搞不好费了你好几根头发的问题,就被别人解决过呢?
多看行业顶会论文,多追追大牛的博客,思路打开了,落地也就简单很多。
# 回答三
作者:坡哥说
公众号:坡哥说
来源链接:
https://www.zhihu.com/question/436874654/answer/1705702321
模型不是一切!
模型不是一切!
模型不是一切!
重要的事情说三遍!
其实并不存在所谓的突飞猛进,就是从业务出发,去连接业务和模型、特征本身。那些模型也好,技术也罢,不落在真实的业务场景和产品中,则产生不了太大的商业价值。
我们绝大部分人都是普通人,大家都是为了挣钱、养家糊口才去工作的,而老板愿意给你发更多钱并不是因为你搞的这个技术很黑科技,很牛X,而是你做的东西带来了商业价值。
苦口婆心地劝还在学校的学生不要迷恋模型,可能一点儿用也没有,因为人家接触不到真实业务场景和数据。
其实,算法工程师,越做越久,就会发现本质还就是数据分析和归纳,模型那些东西不会占用很多时间,更何况,工业界用的实实在在的那些模型,其实都是些非常经典,架构简单的,绝不是堆砌那些花里胡哨,投入产出比低的模型。
往期精彩:
点个在看