V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dododada
V2EX  ›  程序员

算法工程师的工程能力问题

  •  
  •   dododada · 169 天前 · 8384 次点击
    这是一个创建于 169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在招算法,发现一个问题,不知道是不是我的认知问题,请教一下兄弟们。

    据我了解,算法分为算法研究,算法前后处理,算法工程部署等等。

    最近面试的一些算法,研究能力并不突出,自己从 0 到 1 研究过模型网络,做过完整模型的就一个,其他的都是开源模型+数据集训练部署,然后就这一个,表达沟通能力还有问题,总是用“这个”, “那个”来表述一些术语,听的我们云里雾里的

    很多算法工程师训练+调参做到 onnx 就结束了,然后还有的就只是负责 dll 的转化,前处理后处理什么的,很少有做过四层网络+服务器+应用+算法+部署整个流程的

    我知道算法的工作内容繁多,除了算法本身可能也没有精力了解其他内容。

    但是,搞计算机的,真的是只负责自己的那一小块么?

    83 条回复    2024-05-26 00:16:16 +08:00
    xuelulu
        1
    xuelulu  
       169 天前   ❤️ 9
    我以为工程部署:在已有的系统下,对单独模块部署,结果变成四层网络+服务器+应用+算法+部署?四层网络+服务器这个不是运维?应用这个不是开发?你这是一个人干三到四个人的活啊
    yslin
        2
    yslin  
       169 天前
    细分方向是这样的
    dododada
        3
    dododada  
    OP
       169 天前
    @xuelulu 不是,我不是说要干这个,我是说要有了解
    nno
        4
    nno  
       169 天前
    你说的是服务端部署,和大部分只做终端部署的不太一样
    服务端部署也有现成的框架,但同样需要对算法比较熟悉才能知道如何合理配置资源和一些影响 qps 的参数
    Carson089
        5
    Carson089  
       169 天前 via iPhone
    算法每一项要做精就很难,你确定你公司需要找 1 个人全部做完,然后薪水比你们 cto 还高的人?
    dododada
        6
    dododada  
    OP
       169 天前
    @Carson089 显然不可能一个人干完,那么多活儿干死也干不完。我的意思是,算法工程师,不需要考虑工程能力么?
    mk3s
        7
    mk3s  
       169 天前
    你应该反向想, 为什么大佬总是那么极少数, 是不是就释怀了呢
    RainCats
        8
    RainCats  
       169 天前
    多少钱干多少事,你这个问题其实换到 web 开发这边也一样。
    垃圾公司都是希望几千块、万把块就找到一个后端厉害+前端厉害+运维能力厉害的开发
    darkengine
        9
    darkengine  
       169 天前
    还有一种可能,是不是薪资达不到这样的人的期望
    emSaVya
        10
    emSaVya  
       169 天前
    @dododada

    一般百万包的算法/策略 也就写写 python c++ 写起来都很不规范。

    你想招算法+工程 两开花 openai 这个级别的肯定有 算法+工程还能做性能优化。
    dododada
        11
    dododada  
    OP
       169 天前
    @mk3s 很有道理

    @darkengine 其实我们现在的数据采集,训练,前后处理,部署基本都是分开的;而且好像也没有大牛看得上我们这种小公司,说到大牛,上次有个干了 3 年的算法,要 37k 月薪,我觉得在南京这个地方,这种薪资的水平应该有对应的技术水平,但是发现并不具备指导算法团队工作的能力
    ZhouHeiYaWang
        12
    ZhouHeiYaWang  
       169 天前
    说白了,在招人的时候面试者都希望求职者一个人干多个人的活
    JoeDH
        13
    JoeDH  
       169 天前
    算法也要变成全干工程师了?
    chhtdd
        14
    chhtdd  
       169 天前
    你这要求得招算法全栈,已经涉及到训练推理部署全流程了
    munan56
        15
    munan56  
       169 天前
    算法到底是做什么的
    tommydong
        16
    tommydong  
       169 天前
    所以你们是招训练的还是推理的还是部署的?
    UIXX
        17
    UIXX  
       169 天前
    这实际上是个很宽泛的问题,关键是,你怎么定义算法工程师?

    从字面来说,算法工程师肯定要考虑工程能力,它甚至是该职业能力的主要衡量指标。在高度分工的体系中,算法工程师就是区别于算法研究员的一线实施,负责算法落地,着重实现、应用、调校。要不要相应的理论基础取决于工作模式——是单干还是协同。

    而现实是,大部分相关公司不会有自己的算法研究员,基本上是产学研三合一,算法工程师又要搞理论又要写代码担子自然重了,给了人一种啥都要会的错觉。
    linyun1
        18
    linyun1  
       169 天前
    嘴里上都说现在的社会是细分的是靠分工合作的, 现实就是巴不得一个人全包。一个人精力有限的,而且很多东西不是说你学一次就永远不会变的,又要全又要精,还要跟上最新的成果脚步是吧。
    zzzlight
        19
    zzzlight  
       169 天前
    分工化太严重,你想的这种很难,还有就是确实很多搞算法的工程能力堪忧的居多,你让他们写点 py 之外的就开始很困难了或者没有接触过。算法+工程两样都强的,我个人觉得大小公司这种人都很少也非常非常贵。殊不知一堆博士老哥对基本开发语言都不知道内容的或者力扣都写的够呛都看到不少了。
    nnqijiu
        20
    nnqijiu  
       169 天前
    你招的不是算法工工程师,是全干工程师
    dododada
        21
    dododada  
    OP
       169 天前
    @UIXX 大哥所言极是,我们主要在招推理方向的,但是涉及到很多的工业领域的小目标检测,需要一个能够指导算法团队工作的,但是就结果看,薪资要的高的显然还达不到指导算法团队工作的水平
    dododada
        22
    dododada  
    OP
       169 天前
    @linyun1 全且精显然不可能,我想专精的同时,稍微广一点是不是更好一些。
    adoal
        23
    adoal  
       169 天前
    地位高的强势工种,可以不理会任何道理。这是时代带来的工种红利。
    duluosheng
        24
    duluosheng  
       169 天前
    搞算法的工程能力偏弱,一般也没啥产品思维。我最近就碰到了,公司算法和 AI 的同事,各种无法沟通
    duluosheng
        25
    duluosheng  
       169 天前
    @dododada 我司算法和 AI 的产品各种私有化部署,来个用户就单独部署一套。然后接口和产品设计不规范,造成成本居高不下。
    imes
        26
    imes  
       169 天前
    能问一下工资范围是多少吗?
    nulIptr
        27
    nulIptr  
       169 天前
    公司采购一车沙子让人从 0 搞出个线上服务?
    LXchienne
        28
    LXchienne  
       169 天前
    只能说你不太了解算法的工作在大公司的分工和工资,说实话,达到你这个要求的人,37k 可能是他刚毕业的薪资
    tap91624
        29
    tap91624  
       169 天前
    什么钱招到什么样人呗
    duluosheng
        30
    duluosheng  
       169 天前
    @imes 正常同级别的 1.5 倍
    dododada
        31
    dododada  
    OP
       169 天前
    @nulIptr 哥,你这纯臆测啊,我直接贩砂石就好了
    duluosheng
        32
    duluosheng  
       169 天前
    @eastjoehan 不需要全干,需要懂一点软件工程的东西
    dododada
        33
    dododada  
    OP
       169 天前
    @LXchienne 😱 这么狠的么?
    xz410236056
        34
    xz410236056  
       169 天前
    您先说一下预算,我好决定喷不喷
    wa007
        35
    wa007  
       169 天前
    大厂计算机其他岗位不知道,但算法确实是拆分的极细。

    而且大厂的算法工程师,水平差异可能极大,千万比因为面了几个人就对该岗位有偏见。
    dododada
        36
    dododada  
    OP
       169 天前
    @xz410236056

    南京,传统工业领域,CV + 机器视觉,小目标检测居多,能够指导目前算法团队的工作,年薪 40

    来吧,让我看看兄弟们会从哪些角度开喷
    LXchienne
        37
    LXchienne  
       169 天前
    @dododada #33 可以看看市场哈,40w 要是能招到你想要的人,那失业率应该涨了不少
    dododada
        38
    dododada  
    OP
       169 天前
    @LXchienne 唔,那就是价格低了
    fregie
        39
    fregie  
       169 天前
    薪资翻倍再招招试试?
    dododada
        40
    dododada  
    OP
       169 天前
    @fregie 这个不可能的,大哥你怕是不了解工业领域
    Ricardoo
        41
    Ricardoo  
       169 天前   ❤️ 6
    结合我自身工作经历给你说说吧。
    1. 首先,现在定义的算法工程师=机器学习算法工程师=深度学习算法工程师,不是指工程能力很强的那种算法工程师
    2. 在算法工程师行业,我们又会细分为应用算法工程师和更偏理论偏基座的理论算法工程师。无论哪个方向,数据预处理、训练、优化、部署。都是基本功,但是这种基本功都指的是调包。前面每一个环节深入进去,都是另一个工种,比如,部署推理加速,要会 cuda ,会写算子,这个工种了解不了解算法理论就没那么重要了。
    3. 其中应用算法会更侧重业务拆解,将问题转为算法问题,所以在实际工作中会要求写一点业务代码。一般由工程团队包好框架,我们实现关键的业务逻辑,不需要太牛逼的模式设计,你做的再好能有在工程领域浸淫好几年的工程团队打的框架好吗。理论算法工程师就更务虚一些,干好自己的一亩三分地,发发 paper ,打打榜,给前者提供下 base model ,所以前者在大厂里占了绝大部分。
    4. 对于你说的其他部分比如网络,服务器之类的。全看算法工程师个人爱好了。精力有限又确实用不上。
    PaoPao2020
        42
    PaoPao2020  
       169 天前
    @dododada #36 这价格确实低了,能回答你上面的问题的人,起码 60 70 以上了,现在失业率不至于吧
    smdbh
        43
    smdbh  
       169 天前
    我理解算法工程师能 pc 上调通就可以了,主要是算对,代码能力忽略不计,工程化的东西都软件做。
    SenseHu
        44
    SenseHu  
       169 天前
    年 40 能指导团队 还要能干活。。。
    你找几个猎头问问行情呗, 先做下市场调研
    jimrok
        45
    jimrok  
       169 天前
    工程确实有自己的一套理论,否则为什么台积电能做出 3 纳米,而 intel 做不成。理论大家都知道,但工程上的问题就多了去了。算法能给你把模型跑出来,但要变成应用,还得保证性能,就完全依赖工程部分的能力。
    dododada
        46
    dododada  
    OP
       169 天前
    看来还是价格的问题啊
    wxiao333
        47
    wxiao333  
       169 天前
    优秀的算法工程师 就没有低端的,算法门槛高,而且主要需求在大厂,你知道 在大厂很多人就负责一小块东西,生产环境都摸不到,更别说工程化了。
    yunpiao111
        48
    yunpiao111  
       169 天前
    算法工程师, 又不是算法研究, 这种计算机常识都不会的, 是不应该称为工程师的
    DeWjjj
        49
    DeWjjj  
       169 天前
    肯定是价格问题,想要一个研产一体的工程师,凭什么别人来呢?
    这种高端货色,基本上在就业市场上出了就秒无,还想简简单单通过招聘来招到。
    luny
        50
    luny  
       169 天前
    公司有研究院,有做基础研究的,也有偏工程的,分的还是比较细,我们都叫 R ( researcher ),具体业务 BG 的,研发都叫 Dev ( developer ),负责具体工程落地。
    dayeye2006199
        51
    dayeye2006199  
       169 天前   ❤️ 1
    你说的几样东西都不难,调调包就行了。

    难的是掉包有问题的时候,怎么解决。推理 QPS 上不去怎么办?训练 GPU 利用率为什么这么低?为什么 onnx 不支持我的模型?
    能回答这些问题的人,都非常不便宜,而且基本只有大厂里面有。

    原因就是培养这样的一个人出来,需要很长的时间(领域深,东西难学),很贵的资源(大量算力)。这部分沉没成本会加到招人的成本里面去。
    vicalloy
        52
    vicalloy  
       169 天前
    0 到 1 研究过模型网络。这个得要算力,没有算力根本没有做验证。
    在我看来对于一般的小公司,训练+调参已经是极限了。
    在没有足够算力的支持下自己设计的模型要比开源模型优秀的概率几乎为 0 。
    另外就 GitHub 上深度学习的项目看,大多算法工程师的工程能力确实比较弱,毕竟方向不一样。
    vicalloy
        53
    vicalloy  
       169 天前
    AI 公司还有一个工作,模型的适配。
    比如找了个开源模型,无法按常规方式转换成目标推理框架,这时候要对模型做一些适配工作。
    不过这些都是很工程化的工作。
    简单来说:在我看来在缺乏算力支持的小公司,涉及的训练、调参、模型适配等一系列工作都和算法没多少关系,都是很工程化的东西。换句话说,下公司用不上真正的算法工程师(特指深度学习的算法工程师)。
    tfdetang
        54
    tfdetang  
       169 天前
    LZ 得这些需求可能大厂出来得反而不可能做到。 像我们小厂出来得,其它研发都是 Java 得,基本所有东西都自己来。 产品+算法研发+MLops+办公室撕逼;
    整套流程和 java 的都不通用,刚开始的时候运维经常把机器丢给我们自己去搞
    EdmondGUO
        55
    EdmondGUO  
       169 天前   ❤️ 1
    @dododada #33 现身说法,因为算法在小公司几乎没有太好的落地场景,所以基本上算法岗都集中在大公司,推荐、广告、NLP 、CV 这几个方向。37k 的话,20 年我毕业的时候算是 ssp 一档的,现在可能不需要 ssp 了,可以去 offer show 上看一看。
    另外根据我这几年的经验,大厂的算法工程师可能满足不了你的需求,一来薪资太低,我校招时候的总包就不止你开的那个数了;二来大厂算法工程师领域太细分了,你说的很多工作都是给工程架构的同学做的,算法同学特别是业务的同学是要为线上指标负责的,没人闲的蛋疼还去学工程的活儿,通常需要的技能是在现有的架构下训练部署模型+开发一些线上的业务代码+有 sql 分析数据的能力。比如我现在还不怎么会 java 的 springboot 这种跟部署服务相关的东西。
    dododada
        56
    dododada  
    OP
       169 天前
    @EdmondGUO 听君一席话,如听一席话,总归一句话,薪水不到家啊!我去和 hr 讲一下这个事

    有没有工业领域的兄弟,讲讲你们的算法啊,海康、比亚迪、奇瑞、宝钢、上汽、华虹的兄弟们
    zzzlight
        57
    zzzlight  
       169 天前
    据我所知 海康 40 个的包也就招招开发,我们这去海康开发 30 上下了也 海康研究院那些你得×1.5 ,小点规模厂你的价格或者 title 更要给足,不然别人真不愿意来。
    zzzlight
        58
    zzzlight  
       169 天前
    海康给刚进的算法应届生都 28*15 而且基本上能进的又嫌低不愿意去。
    wupher
        59
    wupher  
       169 天前
    钱少了

    想要指导工作又能上精下博,至少得百万包了。
    dododada
        60
    dododada  
    OP
       169 天前
    十分感谢兄弟们的教诲,看来还是我对这个岗位的认知太浅薄了
    user919lx
        61
    user919lx  
       169 天前
    我有同学在深圳,也是做工业 CV 的,工资确实明显不如互联网,连中层公司都不如,更不用说头部大厂了,而且技术栈差别很大,从业人员很少,大家都相互认识,你投个简历去别家,领导第二天就知道了。

    以 OP 开出的薪资和要求来说的话,尽量在这个行业圈子里找吧,不行的话就内部培养,我同学就是从 0 基础一步步培养出来的,也因为跳槽不容易,就一直干到现在七八年了
    Kontinue
        62
    Kontinue  
       169 天前
    @dododada 我觉得我可以讲讲,我司也是车载软件的供应商。

    我司的算法就是只做算法的工作,其他啥都不会。几乎没啥工程能力,训练环境也是不会搭建。纯粹就是你给环境,他们来训练+推理。

    算法出的库,会进过一层算法封装(数据的预处理,结果封装),封装成产品工程团队可用的库,然后可选算法优化层,比如针对 TI 、高通等硬件会有优化,然后再是产品开发接入,开发实际产品
    736531683
        63
    736531683  
       169 天前
    40 连应届都嫌,你还想找全栈算法,而且很多算法都不是计算机科班出身,你让他搞什么 onnx 部署啊。
    Kontinue
        64
    Kontinue  
       169 天前   ❤️ 1
    @736531683 真相了,很多都是硕士转的
    woscaizi
        65
    woscaizi  
       169 天前
    感觉不是钱的事,是细分的问题;
    你说的全流程都了解的,应该是那种有多年工作经验,都涉猎过的
    可能不需要精通,但是知道大概是什么样,这种人应该很少
    dododada
        66
    dododada  
    OP
       169 天前
    @woscaizi 很少,接触了不少,了解的不多。问你做部署么,答做,再问部署的流程,答生成模型文件给第三方调用
    kalluwa
        67
    kalluwa  
       169 天前
    你的期望和要求没问题,唯一的问题就是老板给的招人预算太少了
    ErikaGao
        68
    ErikaGao  
       169 天前
    看到大家说得差不多,我也来说两句。算法工程师是大数据人工智能时代出现的细分岗位,但其定义比较模糊,各公司差异较大。

    如果是大公司的细分业务团队,做算法的同事主要负责算法原型的设计、调参和验证,效果,类似算法研究的工作;算法原型的工程化落地,由懂算法但工程能力强的同事负责。

    如果是中小公司,没有专职的工程化同事,那么算法同事也做简单的 docker 部署,提供接口调用。但主职仍然是模型设计调参验证。

    你说算法的工程能力重不重要?我觉得重要。但整个研发过程上,视算法和业务系统的紧密程度,或许只是提供一个图片识别的接口,这个时候项目组对算法的工程化要求就抽象为:你提供一个服务接口,我们 Java 开发同事来调用。工程还是比较简单的,不需要分很多层。

    想招合适的人,可以分析下你们的业务需求,如果模型挑战不大,业务目标清晰可落地,那就招工程能力强,算法有部分相关经验即可。如果模型挑战大,那就得多加钱找算法强的,再让工程团队配合。
    shm7
        69
    shm7  
       169 天前
    模型部署优化是有专门职位的。
    tangtang369
        70
    tangtang369  
       169 天前   ❤️ 1
    啥公司需要招人吗?你说的这个应该是我这个岗位(AI 应用工程师),会训练模型但是实际对算法的细节不是很了解,只会调参数,然后再把模型迁移到 rk 、算能、寒武纪之类的平台,做模型的推理开发,包含图像的前处理,以及推理后的后处理,需要同时会 python 和 c++,将 python 前处理和后处理逻辑迁移到 c++上,再调通视频硬解码,前处理通过特定硬件实现。再添加业务应用逻辑。我平时工作就是这些,所有感觉你招聘的岗位不对,这个不叫算法工程师,如果现在会训练个 yolo 就叫算法工程师的话,那应该满大街都是了。
    YsHaNg
        71
    YsHaNg  
       169 天前
    你们现在一说算法就全 ML 了 搞得我也不知道该怎么说好 做量子逻辑门优化 toffoli 的算不算做算法的? 我们还有搞 PQC 加密协议只在纸上白板上工作的算不算?
    yangyaofei
        72
    yangyaofei  
       169 天前
    以我不多的经验来说, 985 学校的实验室, 一个十几人到几十人的团队, 每届毕业的硕士能有 5 个能达到这个的基本要求的就算那年人才济济了...

    每天我们喷的都是那群学生写的代码简直一坨屎, 没几个靠谱能交差的.

    有时候确实想自己全弄了, 奈何时间精力有限, 所以, 想全搞又能全搞的, 真的不是一般人.
    yangyaofei
        73
    yangyaofei  
       169 天前
    想起在某社交平台上关注的一大哥, 左手在 arxiv 复现论文, 右手给 elasticsearch 提 bug, 回家撸琴又撸猫, 今年股市又挣了一年工资....这样的人, 在微软养老...

    所以, 真大哥是有的, 但是也确实贵
    wabway
        74
    wabway  
       169 天前
    内部培养吧,行业太细分了
    kneo
        75
    kneo  
       169 天前
    与其让算法/AI 工程师搞全栈,不如让全栈工程师搞算法/AI 来的实在。
    thorneLiu
        76
    thorneLiu  
       168 天前 via Android
    我们组是专门做部署优化的
    主要以 cpp cuda 为主,和算法同事做的事情确实非常不一祥
    milesbai6022
        77
    milesbai6022  
       168 天前
    ML, MLOPS 是不同的工种,越正规的公司,分工和定义越清晰(不代表水平)。
    Sawyerhou
        78
    Sawyerhou  
       168 天前
    一个是分析型批处理,一个是事务型实时处理,区别比较大,除非真技术大佬,同时会的人应该不太多
    pf94
        79
    pf94  
       168 天前 via iPhone
    我在我们公司做的范围比这个还广,有 20%股份。
    在生产层面有这个技术广度的不可能甘心当“算法工程师”的,也不希望去大厂,因为会局限到某几项技能。我想做的是创造自己的产品。
    pdxjun
        80
    pdxjun  
       168 天前
    @duluosheng #32 我懂一点模型训练,其他的会,招我吧
    tianhualefei
        81
    tianhualefei  
       168 天前 via Android
    现在深度学习的部署环境五花八门,那有精力玩的转啊。就芯片端侧就五花八门, tensorflowllite ,tensorrt ncnn ,onnx 之类的,还有芯片还自研魔改,真的就是精力有限。
    tianzi123
        82
    tianzi123  
       167 天前
    @dododada #56 37k 翻个倍估计也不够吧
    tianzi123
        83
    tianzi123  
       167 天前
    @dododada #40 不可能就放弃吧,跟领域无关,有这个能力哪里都能去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2374 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:02 · PVG 00:02 · LAX 08:02 · JFK 11:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.