欢迎光临散文网 会员登陆 & 注册

算法工程师的一天,有苦有甜诶!

2022-06-30 17:00 作者:深度之眼官方账号  | 我要投稿

作者:深度之眼 来源:直播

编辑:学姐

对话算法工程师系列前四期回顾:

算法岗面试,掌握这些点打动面试官!

非全硕士、双非本科真的无缘算法岗?

大厂又裁员!算法岗真饱和了?

面试算法岗,对论文有硬性要求吗?


大家会比较关心的算法工程师每天都在干些什么工作?今天请来我们几位算法工程师来和大家聊一聊他们一天的工作~



YY老师的工作日常

我的岗位是算法科学家,叫算法科学家的岗位其实也非常的多,具体的工作内容其实也是五花八门的,像我的这个领域的话,更多的偏向于是算法的应用,用算法去解决实际的业务课题。


所以说我的话可能一半左右的时间都是在开会,在可能跟大家想象的就不太一样,不是在写代码,而是在开会。


第一块:我会跟各个业务部门去沟通,如果业务对我来说是比较新的,我首先会去了解他们的业务,去了解一下他们整个做事的过程当中关键的有哪些步骤,然后再去分析说就这些步骤当中有哪一些可能是数据能帮到他们的,但还有哪些可能是数据帮不了的,这是一块内容。


第二块:还有一些我跟有些业务是已经有一些项目合作上的往来,那么这个时候更多的跟他们去接触项目上的一些事情,比如说现在这个项目运行的过程当中有没有出现什么问题,然后有没有哪些东西是需要去优化的,所以这一块就大部分时间一半左右的时间在开会,剩下来的时间的话在想问题。



想问题就是,比如说今天就已经收到了三个业务的request,那么我会去想这三个request,它的紧急程度和重要程度是什么样子的。


一个request是我发现五一放假回来之后,我就必须要交出结果的,要不然就来不及了。我要必须马上安排能做掉,今天下班之前就要给出结果;


然后另一个其实就是一个取数的需求,业务方我感觉他也没什么诚意,他想找我做体力活的,我优先级往后排,能不做就不做,这个是我决定。


然后第三个是属于说其实是,我老板给我的一个request,就是他希望我能够去优化我们现在在跑的一个预测系统,我会选择就说这件事情很重要,但是同时它不是马上就能完成的。


我就要具体想一想就说,我如果要做这件事情的话,我需要什么时候完成,我需要哪些resource,然后给我老板一个回馈,具体真的去完成的话,那是后面的时间。



像这个过程——思考问题,然后排优先级,然后去分配任务,这个过程的话可能花掉了,我1/4的时间就剩下了一半,然后还有1/4的时间的话,具体建模型写代码的过程,当然大部分其实建模型的过程,如果稍微有点经验的同学就知道,其实都是在清洗数据,去看我这个数据到底有没有什么地方是异常的,我的数据规律是什么样子的。


现在基本上我是不自己就亲自建模了,我基本上了解一下数据的规律以后会把建模的具体的任务安排给实习生或者是我们团队的其他同事去完成,我在旁边会在这个特征的选择,然后算法的选择上面就是做一些指导,基本上就是我日常的工作。


张老师的工作日常


关于CV这边,其实我觉得不管是什么行业,它都有初级的岗位和高级的岗位。


高级的岗位刚才像YY老师所说的主要就是开会,指导一些团队里的其他工程师,做一些相关的事情,管理一些比如说团队之间的一些协同工作,一些合作相关的事宜。


初级一点的岗位,比如说 CV领域实习生或者是1~3年的工程师,一般会做一些比如说你要做一些数据相关的工作,其实在工程领域 CV的工程领域很多时候还是对数据的要求或者说需求更多一些。


你要通过项目里面的一些需求,我到底需要什么样的数据,怎么什么样的数据能够让我的算法更好,去采集一些数据去找供应商,或者是找公司的标注团队去标注数据,标注完之后会做一个数据的质检,数据的清洗,这方面的工作这个是要占一定的比重的。


还有一些工作就是要调试代码,训练模型,这个也是要花一些时间去做的。还有一些工作你训好了这个模型,整个产品做的有一个版本了,你要上线要测试,有可能是其他同事去测试,也有可能你也要参与一部分,前期的时候。这个也可能是要做的一个事情。



还有在前面这些事情工作时间沾满的情况下,你可能还要抽出一些时间去看看一些前沿的论文和一些比较优秀的开源代码,找时间去做一下自我提升,看看这些新的方法,能不能对这个项目有什么提升和价值,这个也要花掉一小部分时间,基本上就是这几方面的工作。


Sunny老师的工作日常


我日常工作我在清洗数据和读论文之间来回徘徊。


以一个时间线来说一下我每天这个工作,比如我10:00到公司的时候,我每天早上上午可能做的最主要的事情就是看paper,我会有几个,比如说我比较关注的几个领域,像实体识别或者说few-shot learning,以及现在的prompt learning相关的东西,会看相关的论文,这个时候可能比较关注的首先就是arcxiv然后相关关键词搜一遍,看看有没有新论文,看看摘要是不是需要再跟进一下。


过滤了一遍之后发现有确实要读的论文,号召大家去认真的读一下。然后下午2:00开始的时候一个非常重要的工作——看这个实验结果,比如说是昨天跑起来的实验结果,看看效果怎么样,训到什么程度了,有没有训完,是不是达到我想要的效果。


如果说是达到了还好,如果没达到的话,我的头疼就要开始了,我就得赶紧去分析问题,然后这去看去看bad case,然后去想一想这个问题到底出在哪,要比较头疼。



然后下午的其实主要的工作也就是是集中在看实验效果,看看是不是需要重新的去写代码,是不是当前模型要继续训下去,还是说中断,根据在验证集上的效果可能是不是需要提前中断,这是下午的一个主要工作。


但是下午在这个过程中可能会穿插一些,比如说有一些和业务上的一些会议,一些讨论,这些工作。这是下午的一些事情。


晚上其实是难得一天真的可以安安静静去看去认认真真安安静静coding的时候,这个时候一般晚上的会花两个小时时间,真的就是自己一个人在那里好好的去把一些下午思考反馈到一些问题,看怎么能改进或者说方法上有没有一些调整的地方,把这个代码写完,然后尽量在下班之前把新的模型或者新的实验给run起来,不要耽误明天的下午,然后看实验结果,这基本上是我以及或者说我们团队大部分人的这样一个工作状态。


下午的时间我刚才还漏了一点,就是说你本身在处理这个模型这个问题上的时候,还有一部分的工作可能就是在数据上也有可能是清洗数据,也有可能是分析数据。


总之我们肯定是做算法工程师,肯定是离不了数据这一块的事情,可能也是要来来回回跟他们打交道。

所以总结来说的话,我的工作其实就是训模型,清洗数据,看数据,看paper,然后改模型,然后训模型就是这样一个过程,就是枯燥乏味,但还算有趣的这样一个轮回里面形成闭环。


对,这是我的这样一个工作状态。


算法工程师工作内容中没有部署这个环节吗?


Sunny老师认为:


这个问题可能是问在我刚才讲的时候部署,这可能要分不同的情况来我们具体来看。


有些时候比如说我最开始的时候,因为团队的还没有团队的工种可能没有那么丰富,有时候说算从数据标注可能都会要亲自参与一部分,包括标注人员的培训,到模型的开发,前期的可行性验证,模型开发训练,到模型的部署这一块都有可能是我自己一个人来完成的,或者说是由一个算法工程师来完成的。


随着团队的扩大,或者说你本身团队的组织形式比较完善的话,一般会分成这样两个形式:


一个专门的算法团队,他可能是负责算法的预演,或者说算法在具体场景上的应用训练调优等等。另外一个团队,团队的人数可能不定,会专门负责来把相关的模型,算法工程师导出的模型来做一些部署,可以认为是一些部署,但部署的工作可能会参杂比如说一些推理框架的研发,然后一些模型拿到你部署文件之后,它可能是需要做一些就是量化加速之类相关的工作。


整体我们总来说的话就是,在这样一个团队的架构情况下,算法工程师会专注于相关的业务上的算法的研发,然后有一个工程化的团队会专注于把专注于推理框架会以及模型的相关部署服务,还有这个scale相关的这个工作。


所以我刚才讲的时候只讲了我这块的工作,因为我们确实有另外一个团队专门来负责部署或者这些推理相关的一些工作。可能不同公司不同部门的算法工程师的工作内容或许会有些不同。

点这里👇关注我,记得标星哦~

评论区讲一讲你一天的工作

就有机会获得学姐送出的周边礼物哦!


算法工程师的一天,有苦有甜诶!的评论 (共 条)

分享到微博请遵守国家法律