0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MIT等推新型机器编程系统:机器推断代码相似性(MISIM)

如意 来源:新智元 作者:佚名 2020-09-04 14:01 次阅读

计算机编程从未如此简单。

最初,程序员用手编写程序,将符号写到方格纸上,然后将它们穿孔打卡,计算机才可以对其进行处理。如果有一个标记不准确,整个过程可能需要重做。

如今,程序员使用了一系列功能强大的工具,可自动完成大部分工作。但是如果出现一个愚蠢的 bug 仍然可能使整个软件崩溃,随着系统变得越来越复杂,跟踪这些 bug 变得越来越困难。

最近,英特尔科学家与麻省理工学院(MIT),以及佐治亚理工学院(Georgia Tech)的研究人员共同推出了一种新的机器编程(MP)系统——机器推断代码相似性(MISIM)。该系统是一种自动引擎,旨在通过研究代码的结构,并分析具有类似行为的其他代码的句法差异来学习某个软件计划执行的操作。

MISIM系统的性能要比当前最先进的系统高出40倍,可以看出从代码推荐到自动错误修复的应用前景。

MISIM:提高开发效率,性能是最先进相似性系统的40倍

随着异构计算的兴起,硬件和软件系统变得越来越复杂。这种复杂性,再加上缺乏能够在多种体系结构中以专家水平进行编程的程序员,使得人们对新开发方法的需求日益凸显。

多年来,自动代码生成一直是研究的热点。微软正在将基本的代码生成构建到其广泛使用的软件开发工具中。

Facebook 开发了一个名为 Aroma 的系统,该系统可以自动完成小程序,而 DeepMind 开发的神经网络可以提供比人类设计的更有效的简单算法版本。甚至 OpenAI 的 GPT-3 语言模型也可以从自然语言提示中生成简单的代码段。

机器编程是英特尔实验室和麻省理工学院在「The Three Pillars of Machine Programming」论文中提出的一个术语 ,旨在通过使用自动化工具来提高开发效率。

这些新兴机器编程工具中的一项关键技术是代码相似性,它能准确有效地自动化某些软件开发过程来满足这一需求。

然而,建立精确的代码相似性系统是一个尚未解决的问题。这些系统试图确定两个代码片段是否显示出相似的特征或旨在达到相似的目标。当仅学习源代码时,这是一项艰巨的任务。

因此, 研究人员提出了机器推断代码相似性(MISIM),这是一种全新的端到端代码相似性系统。MISIM 可以准确推断两段代码何时执行相似的计算,即使这两段代码使用不同的数据结构和算法

英特尔实验室首席科学家兼机器编程研究总监 Justin Gottschlich 表示,「这是迈向更宏伟的机器编程愿景的重要一步。」

MISIM 与现有代码相似性系统之间的核心区别在于其新颖的上下文感知语义结构(CASS),其目的是了解代码的实际作用,可以帮助从代码语法中提升语义含义。

与其他现有方法不同,它可以将 CASS 配置为特定的上下文,从而使其可以捕获更高级别描述代码的信息。CASS 可以提供有关代码功能而非方法的更具体的见解。

此外,MISIM 无需使用编译器即可对代码进行评级,编译器将人类可读的源代码转换为计算机可执行的机器代码。

与现有系统相比,MISIM 还具有许多优势,包括能够在开发人员当前正在编写的不完整代码段上执行的能力,这是推荐系统或自动错误修复的重要实用特征。

MIT等推新型机器编程系统:机器推断代码相似性(MISIM)

MISIM系统总揽

MISIM 提供了基于神经的代码相似性评分算法,该算法可通过具有学习参数的各种神经网络体系结构来实现。

一旦将代码的结构集成到 CASS 中,神经网络系统就会根据其设计要执行的工作,为代码片段提供相似性评分。

换句话说,如果两段代码在结构上看起来有很大不同,但执行相同的功能,则神经网络会将它们评为大致相似。

研究人员最后将 MISIM 与三个最新检测代码相似性系统进行了比较:

(i)code2vec

(ii)Neural Code Comprehension

(iii) Aroma

MIT等推新型机器编程系统:机器推断代码相似性(MISIM)

通过将这些原理整合到一个统一的系统中,研究人员发现MISIM能够比当前的最新系统更准确地识别相似的代码,最多可识别40倍。

从研究到演示:代码推荐,大幅削减开发成本

尽管英特尔仍在扩展 MISIM 的功能集,但公司已将其从研究工作转移到了演示工作,目的是创建一个代码推荐引擎,以协助所有软件开发人员能够跨英特尔各种异构体系结构进行编程。

这种类型的系统将能够识别开发人员输入的简单算法背后的意图,并提供语义上相似但性能有所提高的候选代码。

Gottschlich 表示,「我想,如果有可能,大多数开发人员会很乐意让机器为他们查找并修复错误」。

这可以为雇主省去一些麻烦,更不用说帮助开发人员自己了。

根据剑桥大学 Judge 商学院发表的一项研究,程序员将50.1%的工作时间用于编程,而将一半的时间用于调试。估计每年的调试总费用为3120亿美元。可以看出,这需要消耗大量精力和财力。

英特尔机器编程实验室还与英特尔的软件部门合作,以了解如何将 MISIM 集成到他们的日常开发中。像 MISIM 这样的以AI为动力的代码推荐和审查工具有望大幅削减开发成本,同时使编码人员能够专注于更具创造性、更少重复性的任务。

Gottschlich 在一次采访时表示,「如果我们在机器编程方面取得成功,最终目标之一就是使所有人能够创建软件。」
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3592

    浏览量

    93596
  • MIT
    MIT
    +关注

    关注

    3

    文章

    253

    浏览量

    23363
  • 机器学习
    +关注

    关注

    66

    文章

    8377

    浏览量

    132410
收藏 人收藏

    评论

    相关推荐

    工业机器人常用的编程方式

    机器人完成特定的任务。编程可以手动完成,也可以通过计算机辅助设计(CAD)软件自动生成。编程方式的选择取决于任务的复杂机器人的类型、以及
    的头像 发表于 09-04 09:26 598次阅读

    工业机器人的四种编程(示教编程、离线编程、自增强现实编程编程)剖析!

    当前机器人广泛应用于焊接、装配、搬运、喷漆及打磨领域,任务的复杂程度不断增加,而用户对产品的质量、效率的追求越来越高。在这种形式下,机器人的编程方式、
    的头像 发表于 08-30 12:14 1822次阅读
    工业<b class='flag-5'>机器</b>人的四种<b class='flag-5'>编程</b>(示教<b class='flag-5'>编程</b>、离线<b class='flag-5'>编程</b>、自增强现实<b class='flag-5'>编程</b>主<b class='flag-5'>编程</b>)剖析!

    【「时间序列与机器学习」阅读体验】+ 简单建议

    这本书以其系统性的框架和深入浅出的讲解,为读者绘制了一幅时间序列分析与机器学习融合应用的宏伟蓝图。作者不仅扎实地构建了时间序列分析的基础知识,更巧妙地展示了机器学习如何在这一领域发挥巨大潜力,使得
    发表于 08-12 11:21

    【「时间序列与机器学习」阅读体验】全书概览与时间序列概述

    。 ●第5章“时间序列的相似度与聚类”:介绍时间序列的相似性度量方法,如欧氏距离、动态时间规整算法,用于衡量两个或多个时间序列在形状和模式上的相似程度;聚类算法,如K-Means、D
    发表于 08-07 23:03

    机器人主控器的主控芯片在功能上与什么相似

    本文将深入探讨机器人主控器的主控芯片,分析其在功能上与其他技术产品的相似之处。 一、引言 随着科技的不断进步,机器人技术在各个领域得到了广泛应用。机器人主控器作为
    的头像 发表于 07-15 11:22 491次阅读

    ROS让机器人开发更便捷,基于RK3568J+Debian系统发布!

    的快速发展,智能机器人设备已成为工业自动化体系的佼佼者,而智能机器人设备核心—ROS系统,是机器人领域的集大成者,主要应用于机器人控制领域,
    发表于 07-09 11:38

    Al大模型机器

    丰富的知识储备。它们可以涵盖各种领域的知识,并能够回答相关问题。灵活性与通用: AI大模型机器人具有很强的灵活性和通用,能够处理各种类型的任务和问题。持续学习和改进: 这些模型可以通过持续的训练
    发表于 07-05 08:52

    名单公布!【书籍评测活动NO.35】如何用「时间序列与机器学习」解锁未来?

    算法,以及时间序列数据的相似性度量和聚类算法。 书中不仅讨论了单维和多维时间序列的处理技术,还特别强调了时间序列在智能运维(AIOps)和金融领域的实际应用。 第1章“时间序列概述”: 介绍时间序列分析
    发表于 06-25 15:00

    如何使用PLC控制机器

    高可靠、强适应和易编程特点,成为机器人控制领域的重要工具。本文将详细介绍如何使用PLC控
    的头像 发表于 06-17 10:50 1473次阅读

    abb工业机器人的编程语言是什么

    ABB工业机器人的编程语言主要是RAPID(Robot Application Programming Interface for Development),它是一种高级编程语言,专门为工业
    的头像 发表于 06-16 16:49 2378次阅读

    基于结构相似性可靠监测结果

    电子发烧友网站提供《基于结构相似性可靠监测结果.pdf》资料免费下载
    发表于 02-05 09:10 0次下载
    基于结构<b class='flag-5'>相似性</b>可靠<b class='flag-5'>性</b>监测结果

    编程IC的类型、主要功能、相似性和差异性

    电子发烧友网站提供《可编程IC的类型、主要功能、相似性和差异性.pdf》资料免费下载
    发表于 01-03 14:08 0次下载
    可<b class='flag-5'>编程</b>IC的类型、主要功能、<b class='flag-5'>相似性</b>和差异性

    LabVIEW的六轴工业机器人运动控制系统

    系统研究与算法开发:首先,项目围绕机器人的数学模型,特别是空间位姿描述和D-H模型展开研究。在此基础上,开发了机器人的运动学正反解算法,使用了雅克比-迭代法先进技术。此外,还涉及
    发表于 12-21 20:03

    高动态人形机器人“夸父”通过OpenHarmony 3.2 Release版本兼容测评

    近日, 搭载KaihongOS的“夸父”人形机器人通过OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Release版本兼容测评并获颁兼容证书 。这体现了
    发表于 12-20 09:31

    ROS让机器人开发更便捷,基于RK3568J+Debian系统发布!

    、摄像头、GPS部件的控制、通信的实时与安全得不到保障,导致的后果将是核心数据泄露、路线控制偏离、系统通信异常严重后果。而ROS
    发表于 11-30 16:01