乐于分享
好东西不私藏

人工智能研发工程师和软件工程师有什么区别?项目对象、问题判断、责任边界说清楚

人工智能研发工程师和软件工程师有什么区别?项目对象、问题判断、责任边界说清楚

如果同一个AI功能出问题了,  人工智能研发工程师和软件工程师都有可能去查看代码,不过他们最先去查的对象可大不相同,软件工程师更关注功能、接口还有系统流程是不是按照规则运行,人工智能研发工程师除了查看系统本身之外,还要接着去检查数据、模型能力以及输出效果是否符合预期,这两者在人工智能项目里一般是合作的关系。

先看看同一个功能是怎么进入两边判断范围的

当一个人工智能功能上线之后,  如果页面按钮可以点击、接口能够接通、系统能够返回结果,软件工程师就会最先去确认功能逻辑有没有问题、接口调用正不正常、系统流程有没有中断。

这类判断关注的是固定规则能不能稳定执行, 它的结果一般就是“能不能运行、流程通不通、接口接没接上,

人工智能研发工程师所看到的可远不止这些

就算功能能够运行, 如果模型回答离题、识别不精准、输出效果和预期差别比较大,那问题并不能单单按照软件功能异常来处理。

这个方向还要接着查看输入数据是否合适、模型能力是否匹配、效果指标是否达到标准、应用反馈中暴露的是数据问题还是模型问题。

换句话说,软件工程师更像是在确认系统是否正常运作, 而人工智能研发工程师还要确认系统里的那个人工智能部分是否真的完成了任务。

两类方向都有可能参与需求分析、代码实现以及系统接入,这也是容易混在一起的地方,差别不在于谁编写代码, 而在于代码背后所判定的对象不一样。

软件工程师更经常面对的是功能逻辑、接口调用以及系统运行情况人工智能研发工程师还会面对数据质量、模型输出偏差以及概率性结果。

前者所判定的是系统是否根据规则运行,后者还要判定结果是否靠近目标、能不能接着进行调整,

如果项目反馈出现页面报错接口超时流程卡住, 软件工程师一般会先顺着功能链路去进行修正,

如果反馈是回答不稳定识别不准同样输入结果差异大人工智能研发工程师并不能仅仅盯着界面,不要回头去检查数据、模型以及输出指标。

一个是对功能进行修正,一个是去查看效果,一个关注系统流程,一个查看模型表现,两类问题常常出现在同一个项目当中, 只是归因对象不一样。

也正因为这样,人工智能研发工程师和软件工程师不能随便相互代替,  软件工程师要解决的是功能能不能用、接口正不正常、流程闭不闭合;人工智能研发工程师还要去解决模型为什么这样输出、数据能不能撑得住、效果能不能一直优化。在人工智能项目里常见的不是一个人把所有事都做完,而是两类人在同一个功能上做分工,查看不一样层面的异常,然后分别去做修改。

如果再从证书层面来看,职业技术证书也就对应各自项目的学习和考核方向,不等于软件工程师职称、算法研究资历、岗位准入或者企业招聘条件。真正得区分开的地方不是哪个方向更像是会开发,而是当同一个人工智能功能出问题时,  谁先去查看功能和接口,谁还要接着去查看数据模型还有效果。