AI还可以给代码打分?阿里巴巴代码竞赛现全球首位AI评委

yuchencn 2019-04-18

AI评委的背后是阿里巴巴正致力推进的代码智能化:让AI帮助工程师完成更规范、更有美感的代码语言,提升开发者的产品交付质量。

天下网商记者 贡晓丽

AI有什么用?语音识别、视觉识别、神经网络、深度学习、自然人机交互等大大小的技术,可以应用在智能汽车、交通、工业制造、医疗、环保等不同领域。如今,工程师又赋予了AI一个新的功能,给代码大赛做评委——点评代码、修复Bug。

因代码而生,为代码纠错,AI与代码以及工程师间的关系,正在变得微妙。

4月18日,2019阿里巴巴研发效能峰会——“83行代码挑战赛”决赛现场就引入了一位“AI评委”,取名蓝雁侠,和专家评委、大众评委配合,对选手提交的的代码做综合评价,这也是全球代码比赛中出现的首位AI评委。

AI还可以给代码打分?阿里巴巴代码竞赛现全球首位AI评委

AI评委是谁?

20.00、19.65、19.55、18.95……83行代码总决赛得分榜上,AI评委根据8组参赛者的代码展示,给出了具有细微差别的分数。分数排行榜会根据AI评委、专家评委、大众评委的综合打分实时滚动,一个逻辑语言的处理甚至可能瞬间提高选手排名。

这位AI评委从哪儿来?与会专家告诉记者,它来自阿里巴巴代码平台研发的人工智能系统。这位AI评委运行在云端,当选手提交代码后,会从静态分析、运行时分析、群体共性等不同维度对代码快速打分。

据了解,AI评委集成了Precfix(Patch Recommendation by Empirically Clustering),不依赖测试用例、编译结果,通过非规则化的智能扫描,即可自动定位代码中的Bug,并提供修复建议,速度可达毫秒级,且误报率低。

在现场的直接反应就是打分最为迅速,几乎是在代码提交后立刻出现结果。在现场专家和大众评委看来,其评分相当准确。

Precfix能够发现一些规则检查和人工评审都无法发现的缺陷,根本性地提升代码质量,有效减少开发工程师的bug及代码评审时间。同时,Precfix提供的修复建议,能帮助工程师快速理解缺陷和解决问题。

AI还可以给代码打分?阿里巴巴代码竞赛现全球首位AI评委

目前,Precfix已被部署到阿里巴巴代码生产环境,用于缺陷检查。工程师写好代码,就提交到线上,Precfix会进行review,指出缺陷代码及相应的修复建议。

据一位工程师透露,过去人工review代码查找bug可能需要几小时甚至几天时间不等,而现在不用一杯咖啡的时间,Precfix就可以review完提交的全部代码,提高了至少20%效率。

“未来,Precfix还会随着阿里代码平台的上云,一起为全球开发者服务。”大赛主持人孤尽告诉记者。

AI会取代工程师?阿里巴巴表示:不会

83行代码挑战赛是面向阿里3万多名工程师的技术大会,旨在进一步提升内部的研发效率,这场大赛可以说是阿里巴巴最大规模的代码品鉴会。

AI还可以给代码打分?阿里巴巴代码竞赛现全球首位AI评委

比赛源自之前阿里内网一次集体晒83行代码的活动,阿里巴巴集团CTO张建锋、蚂蚁金服CTO程立,甚至马云、彭蕾都有参与。今年已是第三届,总分92.12分的梁希,也是继去年获奖后再次站上一等奖的领奖台,不同的是,今年给他打分的,多了AI评委。

事实上,AI评委的背后是阿里巴巴正致力推进的代码智能化:让AI帮助工程师完成更规范、更有美感的代码语言,提升开发者的产品交付质量。

对此,本次大赛出品人、阿里巴巴技术合伙人多隆表示:“希望AI能与代码开发产生更多化学反应,让AI结对开发工程师,帮助工程师减负。”

代码智能化进程中,全球领先的科技公司都在积极投入,包括谷歌、Facebook、微软等也曾推出相关的工具。不久前,谷歌大脑发表的论文还提出让神经网络来完成源代码编辑。

对此,也有人提出了“AI是否会取代工程师”的疑问。

事实上,代码是一种“动态”过程,需要很强的泛化能力才能完成。优秀的工程师往往会根据新需求、新的网络环境、bug的修复、公司战略意图等各种不断变化的因素来构建代码。AI能完成的是相对简单的任务,要让机器来动态判断和预测即将发生的编辑内容,甚至开发出比较复杂和创新性的产品,还有很长的路要走。

“AI评委可以判断代码的结构、逻辑、风格,但是代码还具有艺术性、优雅性、扩展性等特点,AI从精确性的角度可以判断是或否的概念,但是它的评判对象美不美,这就要交给人了。”孤尽告诉记者,目前的AI评委还不具有代码审美,所以这也是仅给它20%评分权限的原因,大众评委占20%,专家评委则有60%的权限。

神经元的模糊思考仍然是AI的弱点,但孤尽相信,AI的终极智慧我们现在可能还没有看到,“或许未来代码会被舍弃,我们可以和机器无障碍对话,那将是对社会非常剧烈的信息革命”。

相关推荐