近日,英特尔发布与麻省理工学院、佐治亚理工学院共同研发的全新机器编程系统。该系统称为机器推理代码相似度系统(MISIM),是一款检测软件意图的自动化引擎,通过识别代码结构、分析与其它功能相似代码的句法差异实现。
英特尔机器编程研究院创始人、首席科学家及总监Justin Gottschlich 表示:“英特尔机器编程的最终目标是让每个人都能创建软件。当这一目标完全实现时,每个人都可以通过自己最擅长的方式,如代码、自然语言或其他方式向机器表达自己的设计意图,从而创建软件。这是一个大胆的目标,需要付出许多努力,MISIM是我们迈出的坚实一步。”
随着异构计算崛起,硬件、软件系统变得越来越复杂,以及跨架构专业编程人员的稀缺,导致业界对新开发方法的需求愈加凸显。“机器编程”一词在英特尔研究院和麻省理工学院联合发布的《机器编程的三大支柱》论文中首次提出,旨在通过自动化工具提升开发效率。在多种新兴机器编程工具中,代码相似度是一项关键技术,它具备精准、高效实现软件开发流程自动化的潜力,从而满足跨架构编程需求。
然而,建立精准的代码相似度系统本身是一个较为棘手的问题。这些系统需要识别两个代码段是否具有相似特征、是否需要实现相似目标。在只提供源代码的情况下,这是非常难以实现的。但英特尔与麻省理工学院及佐治亚理工学院联合开发的MISIM可以精准识别两段代码是否运行相似的计算过程,即使这两段代码使用不同的数据结构和算法。正如Gottschlich所阐述的,“这是实现机器编程伟大愿景的重要一步。”
MISIM与现有代码相似度系统最关键的不同点在于,它拥有创新的上下文感知语义结构(CASS),可以提取出代码真正的用途。与其它现有方法不同的是,CASS可以配置到特定上下文环境,在更高层次抓取描述代码的信息。因此,CASS可以提供更精准的洞察如“代码能实现什么”,而不是“如何实现”的问题。此外,MISIM无需使用编译器(将人类可读源代码转换为计算机可执行机器代码的程序)即可完成所有这些工作。所以与现有系统相比,MISIM就有了更多优势,包括能够在开发人员尚在编写的不完整代码段上执行,对于推荐系统和自动bug修复等应用情景来说,具有重要实际意义。
一旦代码结构整合到CASS以后,根据设计目标,多个神经网络系统会对代码段给出相似度评分。换言之,如果两段代码结构看起来很不一样,但执行的都是同一个功能,这些神经网络系统将给出“高度相似”的评分。
通过将这些原则整合到统一系统中,英特尔、麻省理工学院和佐治亚理工学院的研究员发现,MISIM识别相似代码段的精确度是此前最先进系统的40倍。
英特尔将继续拓展MISIM的功能,目前已经从研究阶段进入演示阶段,目标是打造一款代码推荐引擎,协助软件开发人员在英特尔多种异构架构上进行编程开发。此类系统可以识别开发人员简单算法输入背后的意图,并推荐语义相近但性能更好的候选代码。
英特尔机器编程研究院同时也与英特尔软件部门进行合作,研究如何将MISIM整合到日常开发工作当中。Gottschlich同时也兼任宾夕法尼亚大学兼职助理教授,他希望帮助软件部门以及整个英特尔公司提升生产效率,并消除编程中修复bug等单调的工作。Gottschlich表示:“如果机器能做到自动检查和修复bug,我想大多数开发人员一定非常愿意让它来承担这项工作,至少我会。”