艾巴生活网

您现在的位置是:主页>科技 >内容

科技

机器编程:自动编程还能自主检测Bug有望成为一种强大的生产力工具

2024-03-26 10:47:02科技帅气的蚂蚁
机器编程和机器学习非常不同。机器编程就是教系统自己编程。虽然还处于早期阶段,但这种新颖的自我监控系统有望成为一种强大的生产力工具,

机器编程:自动编程还能自主检测Bug有望成为一种强大的生产力工具

机器编程和机器学习非常不同。机器编程就是教系统自己编程。虽然还处于早期阶段,但这种新颖的自我监控系统有望成为一种强大的生产力工具,帮助软件开发人员完成耗时费力的调试工作。

软件进步依赖于研发;发展、研究和开发。d进步靠程序员,程序员写代码靠996。

软件是核心竞争力。如果可以不要领导你的同行,你会被时代的潮流杀死在沙滩上。每年,总公司都要花很多钱在研发上。对于大公司来说,它需要依靠研发;保持竞争力的投资;对小公司来说,软件产品是最后一根稻草为了生存。随着异构时代的到来,海量数据由多样化的专用处理器管理,系统功能越来越复杂。管理这些系统所需的软件越来越复杂,出现bug的可能性也越来越大。开发人员花越来越多的时间修复bug,而不是写代码。

写代码,修正bug,成了程序员996的核心;而且软件开发周期未知且漫长,就算是996也可以解决不了。我一睡觉,原来的1%代码自动写到99%,bug自动修复。你敢想吗?——嗨,这不再是梦。

系统,然后系统构建自己的软件系统。这个字段叫做机器编程应运而生。英特尔首席科学家、英特尔研究院研究总监兼机器编程创始人贾斯汀戈特里希(Justin Gottschlich)表示,机器编程与机器学习有很大不同。机器编程就是教系统自己编程。虽然还处于早期阶段,但这种新颖的自我监控系统有望成为一种强大的生产力工具,帮助软件开发人员完成耗时费力的调试工作。

Bug检测,软件自我修复。

术语机器编程是在英特尔研究院和麻省理工学院联合发表的《机器编程的三大支柱》论文中首次提出的。通过机器学习等方法,机器编程可以设计出可以自动编写软件的软件。这将给程序员更多的自由和更多的精力去创造新的软件。对于英特尔研究院的机器编程研究来说,软件自动生成领域是机器编程的核心重点。这个研究领域叫做机器编程英特尔研究院的机器编程研究。

它的核心原理是,人类向机器表达他/她的意图,机器会自动创建完成意图所需的所有软件。英特尔研究院机器编程研究专业处理一些工作负载,计算资源变得越来越异构,所以需要对硬件了如指掌的专家型程序员,以及如何物尽其用。但与此同时,软件开发人员越来越有兴趣使用更抽象的语言来提高工作效率。这反过来又会让硬件很难发挥出自己的性能。

不久前,来自麻省理工学院(MIT)和佐治亚理工学院的英特尔科学家和研究人员联合推出了一个新的机器编程(MP)系统3354机器推理代码相似度(MISIM),这是一个新的机器编程系统。它是一个检测软件意图的自动引擎,通过识别代码结构,分析功能相似的代码与其他代码的句法差异来实现。正如贾斯汀解释的那样。这是实现机器编程伟大愿景的重要一步。"与此同时,贾斯汀说:如果机器能自动检查并修复bug,我想大多数开发者一定非常愿意让它承担这项工作,至少我会。"

抱着机器编程的美好愿景,英特尔研究院的机器编程研究在12月进一步推出了机器编程研究系统ControlFlag。除了自动编程,它还可以自动检测代码中的错误。在初步测试中,ControlFlag使用了超过10亿个未标记的产品级代码来训练和学习新的缺陷。英特尔研究院的机器编程研究认为ControlFlag是一个强大的新工具,可以大大减少评估和调试代码的时间和成本。

首先,ControlFlag是一个完全自我监控的机器编程系统,不需要人类的训练和指导。控制标志的无监督模式识别方法使它能够学会适应开发者本质上是s风格。在要评估的控制工具的有限输入信息中,ControlFlag可以识别编程语言中的各种样式,而与代码使用的编程语言无关。

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

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

机器编程更随机。

英特尔机器编程研究系统ControlFlag从超过10亿行代码中学习。根据英特尔研究院的机器编程研究,这是第一次在机器编程系统中。此外,对于跨架构的硬件,能够正确、高效、安全地编写代码的程序员很少,导致代码中出现难以发现的新错误。而ControlFlag检测现有软件中的违规或异常情况,可以发现生产质量体系中可能存在了20多年的隐患。在过去,数百名开发人员可能已经看过这些代码,但他们没有我意识不到任何问题。现在ControlFlag可以达到人类可以达到的效果.

英特尔研究院美国的机器程序设计研究结合了两种方法来推动大量的机器程序设计研究,一种是形式化方法,另一种是随机方法。英特尔研究院对机器编程的研究和分析发现,机器编程更倾向于随机方法,受到了极大的关注,如深度神经网络、贝叶斯网络等。事实上,英特尔研究院的机器编程研究表明,他们的一些合作伙伴或竞争对手正在做神经网络编程,用神经网络代替大量代码。这是有益的,但是当遇到诸如可解释性或调试等问题时,这也是有风险的。

在正确的应用场景中,机器编程可以极大地提高开发效率。贾斯汀说,在某种情况下,用传统的软件技术,大约需要三年时间才能完成开发。有了先进的机器编程技术,只需要一天就可以完成同样质量的软件。"许多例子表明,不管是无论是我们的合作项目还是我们自己的内部开发项目,机器编程已经将生产率提高了一千多倍。"

降低行业准入门槛,从业者会更有创造力。

机器编程的发展会让英特尔程序员失业吗?贾斯汀说:不会,恰恰相反,机器编程实际上会创造几千万到几亿个工作岗位。他进一步解释道:首先,现在存在的大多数机器编程系统都需要大量的数据,这些数据通常以代码的形式存在,而代码是由专业程序员编写的。

因此,随着自动化的发展,英特尔研究院的机器编程研究对高技能程序员的需求越来越大,从而推动系统的进步和升级。最重要的是,如果英特尔研究院的机器编程研究的意图系统成功,即允许用户向机器表达意图的系统,将降低行业准入门槛。

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

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

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

做理性自由的破题者

算法和计算能力的进步,以及丰富的可用代码库,使得机器编程有了合适的滋生环境;随着近年来计算技术的飞速发展,机器编程已经到了一个重要的转折点。英特尔的风格一直是积极打破传统,开辟新的研究或工程领域,这是英特尔研究院的机器编程研究突破界限之前没有涉及的。这一次,异构系统领域也是一片处女地,英特尔的创新来自于对这种未来技术趋势的预测。

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

为了促进机器编程的开源合作,英特尔发布了开源技术和出版物,以促进机器编程的进一步发展以及与合作伙伴的合作。英特尔还成立了机器编程工作室,也称为MAPS。参与人数从4年前的20人增加到2019年底的近400人。贾斯汀透露,2021年将建立一个新的机器编程中心,英特尔将与业界建立更广泛的合作。

最后,引用贾斯汀的一句话:对于颠覆性技术来说理性自由是需要的。所有的想法都需要花时间去深挖,把事情做好。否则,如果你不耐烦,你可能会在设计和方法上妥协。虽然可能获得短期利益,但系统的长期生命力可能会下降。