机械编程还能自己检测出BUG,机械编程带来了哪些好处?

如题所述

首先,ControlFlag是完全自我监督的机器编程系统,不需要人类对其进行训练及指导。ControlFlag的无监督模式识别方法使它可以在本质上学习适应开发者的风格。在要评估的控制工具的有限输入信息中,ControlFlag可以识别编程语言中的各种样式,不受代码使用的编程语言限制。

第二,ControlFlag检测bug的功能集成了机器学习、形式化方法、编程语言、编译器和计算机系统。据悉,ControlFlag通过一个称为异常检测的功能来进行bug检测,通过学习经验证的例子来检测正常的编程模式,并找出代码中可能导致bug的异常。该工具将学会识别和标记这些风格选择,并根据其见解进行自动的错误识别和建议解决方案,以便ControlFlag能够尽可能地避免将两个开发团队之间的风格差异视为代码错误。

自动检测bug的系统好不好用?英特尔已经开始评估内部使用ControlFlag来发现自己的软件和固件产品化中的错误。这是英特尔开发人员快速分析项目的一个关键组成部分,该项目旨在通过提供专家支持来帮助程序员加快速度。

机器编程更偏向随机

英特尔机器编程研究系统ControlFlag从超过十亿行的代码中学习,英特尔研究院机器编程研究表示,这在机器编程系统中尚属首次。另外,对于跨架构硬件来说,能够正确、高效、安全地编写代码的程序员稀少,从而导致代码中存在难以发现的新错误。而ControlFlag检测现有软件中的违规或异常情况,使可能已经在生产质量系统中存在了20多年的隐疾得以发现。过去可能有数百名开发人员查看过这些代码,但都没有意识到任何问题,现在ControlFlag可以实现人力不能达到的效果。

英特尔研究院机器编程研究融合了两种方法,来推动大量的机器编程研究,一种是形式化方法,一种是随机方法(stochastic approaches)。英特尔研究院机器编程研究分析目前业界在机器编程领域方面的工作发现,机器编程更偏向随机方法,并得到了很大的重视,例如深度神经网络和贝叶斯网络(Bayesian networks)等等。事实上,英特尔研究院机器编程研究表示,他们的某些合作伙伴或竞争对手正在做神经网络编程,使用神经网络来替换大量代码。这样做有好处,但是当遇到诸如可解释性或debug问题时,这样做也有风险。

在正确的应用场景,机器编程对开发效率的提升惊人。Justin表示,在某个案例中,用传统的软件技术,开发完成大约需要三年时间,有了先进的机器编程技术,只需要花一天的时间,就能开发完成同样质量的软件。“很多例子表明,不管是与我们的合作伙伴项目,还是我们自己内部的开发项目,机器编程都将生产率提高了一千倍以上。”

降低行业准入门槛,从业者创造性会更强

机器编程发展是否会让英特尔的程序员失业呢?Justin表示:不会。相反,机器编程实际上会创造数千万到数亿个就业机会。他进一步解释到:首先,当今存在的大多数机器编程系统都需要大量的数据,这些数据通常是以代码的形式存在,而代码是由专业程序员编写。因此,随着自动化的发展,英特尔研究院机器编程研究对高技能程序员的需求增加,以推进系统的进步升级。最重要的是,如果英特尔研究院机器编程研究的意图系统成功,即允许用户向机器表达他或她的意图的系统,这将降低行业准入门槛。

机器编程会为全新类型的程序员创造大平台,从业者创造性会更强,而机器和系统会把这些想法综合起来做出软件。如今,通过ControlFlag和类似的系统,程序员可以显著减少调试时间,并将更多的时间花在人类程序员最擅长的工作——向机器呈现创造性的新思想。完全实现的ControlFlag可以通过自动化繁琐的软件开发工作(如测试、监控和调试)来帮助缓解上述挑战,同时可以解决当前软件开发中耗时费力代价昂贵的bug修复问题。

图:在全球78亿人中,只有2700万人会编写代码,占比不到 1%。英特尔希望借助机器编程技术,使所有人获得编程能力。

英特尔推进机器编程的最终目标是让每个人都能创建软件。当这一目标完全实现时,每个人都可以通过自己最擅长的方式,如代码、自然语言或其他方式向机器表达自己的设计意图,从而创建软件。这是一个大胆的目标,需要英特尔及合作伙伴付出许多努力。

做理性自由的破题者

算法与算力的进步,以及可用代码库的极大丰富,让机器编程拥有适宜的孕育环境;随着近年计算技术的迅猛发展,机器编程迎来重要拐点。英特尔一直以来的作风便是积极打破传统,开拓新的研究或工程领域,这些领域在英特尔研究院机器编程研究突破界限之前还无人涉及。此次异构系统领域亦是一片“处女地”,英特尔的创新驱动力来自于对这一未来技术趋势的预测。

图:英特尔与麻省理工学院研究人员联合发表的愿景论文提出机器编程有三大支柱,分别是意图(intention)、创造(invention)、适应(adaptation)

如前所述,异构系统非常复杂,能够切实掌握异构系统编程技术的工程师少之又少,英特尔研究院机器编程研究正在开发某种机制,让程序员或非程序员不仅能够轻松访问异构硬件,还能充分使用其他系统可用资源,以大幅降低异构编程难度。这也是英特尔机器编程的基本驱动力之一。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-15
首先,机械编程极大的提高了人工效率,有机器替代人工进行操作,省去了不必要的时间,其次,机械编程提高了产品的进度和质量,最后,机械编程能自己检测出bug了,说明可以减少错误的发生,节约成本。