科研动态

Dynamics

首页 >  科研动态 > 新闻  >  详情

OpenDILab:优秀的AI算法研究员是如何炼成的?

算法岗可谓人工智能领域最受欢迎的岗位之一,然而不少人对于算法岗真正的工作内容和技能要求却不是很了解,对于算法岗面试技巧也只局限于在简历上“堆项目”“放顶会”。

春招已至,面对心仪的岗位,上海人工智能实验室OpenDILab团队倾囊而出,为大家详解AI算法研究员究竟在做什么,以及一名合格的AI算法研究员应有的素质。


【AI算法研究员与AI算法工程师的区别】

算法岗一般可以细分为研究和工程两类岗位。首先,必须要为大家解释一下这两种岗位的区别。

AI算法从研究到落地,需要多个岗位、不同职能的角色共同努力才能完成,单打独斗难以推动企业级别的AI产品化。而其中和技术息息相关的岗位就是AI算法研究员和AI算法工程师。

AI算法研究员

相比之下,AI算法研究员就更侧重于面对未知问题找到解决方案。同样的例子,算法研究员需要思考的是,这三种模型各自发挥作用的核心思路是什么,它们针对该问题的数据分布和hard case的综合表现如何,该如何取舍。更重要的是结合这些模型的设计思路,以及个人在该研究领域的经验,对现有模型和方法进行调整,甚至提出新的解决方案。

这就要求算法研究员有扎实的数学功底、机器学习的理论素养和对某个研究领域的深入了解,而且对问题的前沿拓展能作出快速而准确的把握。更高阶的要求,是研究员自己有实力作为这一研究领域的带头人,提出最新最有效的算法了。

AI算法工程师

AI算法工程师的工作内容更接近于一般的软件开发,其主要的技能都是围绕算法的落地部署而展开,但这并不意味着只要会做开发写代码就可以胜任算法的工程部署。要知道,真正行之有效的AI算法不是靠数据、算力堆砌而成,而是要实现在有限的资源和生产环境的限制下,可以最大化地发挥其优势。

因此AI算法工程师很重要的一个能力,就是将深度学习常用算法在各种环境中进行部署。例如,解决一个生产问题有三种方案,算法工程师需要依照经验,判断实际生产环境中运行效率更高的模型结构,或依照标准的测试流程,快速得出结论。

算法工程师除了部署能力外,也应该对各类主流深度学习算法的计算图和实现细节有充分的了解,同时充分掌握对应用平台的计算特点、擅长处理的计算流程和应尽量避免的计算模式。


【AI算法研究员的关键技能是什么】

优秀的AI研究员拥有两个最重要的“秘密武器”——Idea和Reality。既要有思路,又要能落地。

所谓Idea,即研究员从已有方法出发,结合实际问题的表现和特点,找到最合适的算法或修改思路。这就要求AI算法研究员要深入理解算法的内核,而不是成为“调包侠”,直接使用现成代码来“跑跑看”。

AI算法研究员需要特别关注解决问题思路的可解释性,以及逻辑的连贯性。

例如,对于方法A,研究员需要根据自己的理解,设计一些实验来评估不同的模块和流程究竟起到了什么作用,所呈现的过程和结果是否如算法的提出者所言而表现一致。针对一些学术方法,研究者是否讲清楚了每一部分的设计思路,是否提供了关键细节和核心参数,是否实验完善等。

通常来说,根据问题难易,实际数据分布与学术工作所用的数据集会有一定差距。那么,怎样将现有方法的优势应用到实际环境中来,这都是需要研究员解决的问题。

所谓Reality,指的是将Idea转换为现实可行的算法的能力。这包括了算法在工程上的复现和模型的训练调优。

前者需要AI算法研究员具备基本的工程能力,尤其是一些开源算法在不同平台、不同计算库下会有细微的差距,研究员需要有甄别这些差异的能力。

至于后者,很多人会把这一步理解为“炼丹”。但其实,所谓“炼丹”能力的好坏,直接决定了一个研究员的生产效率。

简单来讲,“炼丹”能力可以形容为在相同数据集、相同算、相同性能指标下(包括模型表现和运算速率),不同研究员能“炼”出怎样水平的“丹”。

虽说炼丹一般是拿来调侃深度学习模型的不确定性和不可解释性,但好的研究员总有一些积累下来的经验或独到的理解可以在这一环节脱颖而出。研究员训练模型的本领越强,就越能专注于算法流程和模型结构设计上,大大提升了研究任务的生产效率。


【优秀AI算法研究员的自我修养】

既然对算法研究员有多角度、高标准的要求,那一名优秀的AI算法研究员应当具备哪些素质呢?

首先是过往经验。

主要体现在过往研究经历中的贡献度、研究深度和实现能力。对自己在研究项目中完成的部分的重要性要有充分而准确的认识。研究深度体现在对算法有清晰的逻辑链条和思路,对每件设计和每次尝试都能知其所以然;实验设计合理,结论扎实;即使实验效果不好也能总结出原因和后续的改进方向。第三点就是对项目细节的掌握,不论是关键参数的调节,还是一些实现和训练技巧,都是应该掌握的细节。

其次是关键技能。

当下,AI技术正向着前所未有的深度与广度发展,所以通过简单看一些技术博客,跑跑开源代码显然不能满足要求。AI算法研究员要磨炼自己的算法基本功、多读论文、多思考,建立起一套利用算法解决问题的方法论,并多参与相关方向的工作。注重积累,并能将经验和技能同时迁移到相关问题上,要具备这样的能力,需要有扎实的算法功力,也需要多涉猎其他领域解决问题的思路,做到融会贯通。

最后是工程实现能力。

实际上,这里谈到的“工程”能力和平常刷题、写代码的能力是两个概念。工程能力是驾驭代码解决问题的能力,而非对代码多么熟悉。因此除了一定量的刷题,优秀的AI算法研究员应当对通用的编程思想,如数据结构的设计、面向对象编程、并行化的效率优化思路等有所认知。其实有时候算法题卡住是很正常的现象,只要能够按照正常的解决问题的思路去作出尝试即可。总的来说,工程实现能力考察的维度应该是“思路>方法>实现”,对API的使用和语法上的关注度反而相对更低。


OpenDILab(开源决策智能平台)于 2021 年 7 月 8 日世界人工智能大会的开幕式和科学前沿全体会议上正式发布。该平台作为上海人工智能实验室开源平台体系OpenXLab的重要组成部分,是国际上首个覆盖最全学术界算法和工业级规模的决策AI平台,具备一套完备的决策 AI 训练与部署框架,自顶而下涵盖了包括应用生态层,算法抽象层,异步分布式管理层和最底层的分布式执行层,适配从单机到万 CPU/GPU 联合训练的全尺度调度系统优化。

具体开源代码实现详见 GitHub:https://github.com/opendilab/