您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    不再重复造轮子,AI 给你引荐更好的代码,还没bug
    时间:2020-09-19 12:01 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    不再重复造轮子,AI 给你引荐更好的代码,还没bug

    顺序员的的代码大部分都不是似乎写书法那般一挥而就,而需求重复地抠bug,抠到疑心人生。

    剑桥大学法官商学院宣布的一项研讨显示,顺序员将50.1%的任务时间用于编程,而将一半的时间用于debug。估量每年的debug总费用为3120亿美元。

    现代软件系统越来越复杂,很多时分一个小小的错误就能够让细叱崩溃,带来庞大损失。所以不只是顺序员,企业也在为debug付出庞大代价。但如今,AI带来了福音。

    英特尔、麻省理工学院、佐治亚理工学院的研讨人员协作开发了自动化代码相似性检测系统MISIM,该系统可以判别两段代码的相似性,即使这两段代码运用的是不同的结构和算法,也可以依据它们能否执行相似的义务、能否有相似的代码特征加以判别。

    代码相似性检测可以运用在代码引荐、自动修复bug中。在代码引荐的运用进程有点像输入法的词引荐,由于MISIM可以对不残缺的代码片段停止评价,当它检测到不残缺的、有bug的代码时,就会从其它中央选出功用一样的、没有bug的代码,来交流原来的代码。

    并且,MISIM 还会将代码转换为一致的方式,确定代码功用,从而在不受编写方式的影响下停止代码片段的比照。由于MISIM不受编程言语限制,它还可以用于代码言语转换。

    在45,780个顺序的实验评价中,MISIM辨认C和C ++顺序中的代码,这些顺序是由先生编写的,旨在处置104个编码成绩。假设一对顺序都处置了相反的成绩,则它们在数据集中被标记为相似。MISIM的表现一直好于三个以后最先进系统,最高到达40.6倍。

    自动代码生成不断是一个研讨热点,产业界和学术界都在此方向上努力着。OpenAI的GPT-3言语模型甚至可以依据自然言语描画生成网页规划的代码。而代码相似性检测则可以复用已有代码,使质量高的代码失掉更有效的应用。

    不再重复造轮子,AI 给你引荐更好的代码,还没bug

    输入“创立一个长得像西瓜的按钮”,GPT-3就生成了上图中绿皮红瓢的原型按钮。或许输入“welcome to my newsletter的大号字体”,GPT-3就生成了上图中的白色大号字体。

    当然,代码相似性检测也可以用于代码查重。所以,计算机系的同窗们,留意本人写作业!虽然如今已有非AI的代码查重系统,但谁知道AI什么时分会青出于蓝呢?

    1. MISIM架构

    不再重复造轮子,AI 给你引荐更好的代码,还没bug

    MISIM架构概览

    MISIM由两个中心组件组成。首先,MISIM具有新型的上下文感知语义结构(CASS),该结构经过捕获描画代码上下文的信息,运用机器学习算法来确定给定源代码的目的(例如,代码是一个函数调用、一个操作等)。其次,MISIM还具有基于神经网络的代码相似性评价算法,该算法可经过各种神经网络架构来完成。

    一旦构建了CASS,就将其向量化并用作神经网络的输入,神经网络会生成特征向量。生成特征向量后,就可以停止代码相似度评价(例如,向量点积、余弦相似度等)。

    关于MISIM的相似性评价算法,研讨人员研讨了三种神经网络办法:GNN、RNN和BoF神经网络。其中,运用GNN的 MISM 总体表现最好,可以以超过75%的准确率辨认出两个顺序的相似水平。

    将代码的结构与CASS集成在一同后,算法就会依据代码要执行的任务计算相似性分数。即使两段代码表面上不同,假设执行相反的功用,模型就会将它们评价为相似。

    CASS可以配置特定的上下文,从而可以捕获描画代码的更初级别信息。而且CASS可以在不运用编译器的状况下对代码停止评级(编译器将人类可读的源代码转换为计算机可执行的机器代码),甚至可以对不残缺的代码片段停止评价。

    MISIM-GNN的架构如下图所示。关于这种办法,输入代码的CASS表征被转换为图。然后,将图中的每个节点嵌入一个可训练的向量,作为该节点的初始形状。接上去,运用GNN迭代更新每个节点的形状。最后,运用全局读取函数从节点的最终形状提取整个图的向量表征。

    不再重复造轮子,AI 给你引荐更好的代码,还没bug

    MISIM-GNN 架构

     2 . 不再重复造轮子

    研讨人员依然在扩展MISIM的特征集,目的是创立一个代码引荐引擎,它可以辨认算法背后的意图,并提供语义上相似但功用有所提高的候选代码。系统可以指示顺序员运用库函数,而不用再重复造轮子。

    像MISIM这样的以AI为动力的代码建议和审查工具有望大幅增添开发成本,同时使编码人员可以专注于更具发明性、增加重复性的义务。

    英特尔实验室首席迷信家兼机器编程研讨总监Justin Gottschlich表示:“假设该系统能取得成功,我们的最终目的之一就是完成全民编程。”

    或许有一天,代码相似性检测可以扩展到自然言语中,到时分要完成全民编程,就不再是难事。

    3. 相关论文

    不再重复造轮子,AI 给你引荐更好的代码,还没bug

    论文地址:https://arxiv.org/pdf/2006.05265.pdf

    不再重复造轮子,AI 给你引荐更好的代码,还没bug

    代码相似检测系统的准确率比较,结果是运转3次的平均值和相关于平均值的最小/最大值。

    不再重复造轮子,AI 给你引荐更好的代码,还没bug

    code2vec、NCC、Aroma、MISIM在POJ-104测试集上的准确率结果。条形高度表示运转3次测量值的平均值,误差条由测量值的最小值和最大值确定。

    【编辑引荐】

    Sigfox和Cube宣布在物联网基础设备范围深度协作

    GitHub命令行工具1.0版正式上线,从此告别网页管理

    担忧AI统治人类?如何克制人工智能的“瘆人要素”?

    超级计算机+数字原生操作系统,读懂阿里云的2.0

    突发!美国商务部下令 20 日起制止下载 TikTok 和微信,TikTok 支持:将推进诉讼

    (责任编辑:admin)