AI时代,我们总说做科研的AI科学家、研究员、算法工程师离产业应用太远,这其中的一个含义是说,搞机器学习算法的人,有时候会因为缺乏架构(Infrastructure)方面的知识、能力而难以将一个好的算法落地。那么,AI工程师都要懂一点架构的具体原因是什么呢?

为什么AI工程师都要懂一点架构呢?

AI工程师都要懂一点架构的原因如下:
原因一:算法实现≠问题解决

学生、研究员、科学家关心的大多是学术和实验性问题,但进入产业界,工程师关心的就是具体的业务问题。简单来说,AI工程师扮演的角色是一个问题的解决者,你的最重要任务是在实际环境中、有资源限制的条件下,用最有效的方法解决问题。只给出结果特别好的算法,是远远不够的。

当然可以说,做算法的专注做算法,其他做架构、应用的帮算法工程师做封装、发布和维护工作。但这里的问题不仅仅是分工这么简单,如果算法工程师完全不懂架构,其实,他根本上就很难在一个团队里协同工作,很难理解架构、应用层面对自己的算法所提出的需求。

为什么AI工程师都要懂一点架构呢?

原因二:问题解决≠现场问题解决

有的算法工程师疏于考虑自己的算法在实际环境中的部署和维护问题,这个是很让人头疼的一件事。面向C端用户的解决方案,部署的时候要考虑serving系统的架构,考虑自己算法所占用的资源、运行的效率、如何升级等实际问题;面向B端用户的解决方案要考虑的因素就更多,因为客户的现场环境,哪怕是客户的私有云环境,都会对你的解决方案有具体的接口、格式、操作系统、依赖关系等需求。

部署和维护工程师会负责这些麻烦事,但算法工程师如果完全不懂得或不考虑这些逻辑,那只会让团队内部合作越来越累。

原因三:工程师需要最快、最好、最有可扩展性地解决问题

AI工程师的首要目的是解决问题,而不是显摆算法有多先进。很多情况下,AI工程师起码要了解一个算法跑在实际环境中的时候,有哪些可能影响算法效率、可用性、可扩展性的因素。

扩展性是另一个大问题,用AI算法解决一个具体问题是一回事,用AI算法实现一个可扩展的解决方案是另一回事。要解决未来可能出现的一大类相似问题,或者把问题的边界扩展到更大的数据量、更多的应用领域,这就要求AI工程师具备最基本的架构知识,在设计算法时,照顾到架构方面的需求了。

原因四:架构知识,是工程师进行高效团队协作的共同语言

AI工程师的确可以在工作时专注于算法,但不能不懂点儿架构,否则,你跟其他工程师该如何协同工作呢?