英特爾攜手麻省理工學(xué)院、佐治亞理工學(xué)院推出更先進的機器編程代碼相似度系統(tǒng)
近日,英特爾發(fā)布與麻省理工學(xué)院、佐治亞理工學(xué)院共同研發(fā)的全新機器編程系統(tǒng)。該系統(tǒng)稱為機器推理代碼相似度系統(tǒng)(MISIM),是一款檢測軟件意圖的自動化引擎,通過識別代碼結(jié)構(gòu)、分析與其它功能相似代碼的句法差異實現(xiàn)。
英特爾機器編程研究院創(chuàng)始人、首席科學(xué)家及總監(jiān)Justin Gottschlich 表示:“英特爾機器編程的最終目標是讓每個人都能創(chuàng)建軟件。當這一目標完全實現(xiàn)時,每個人都可以通過自己最擅長的方式,如代碼、自然語言或其他方式向機器表達自己的設(shè)計意圖,從而創(chuàng)建軟件。這是一個大膽的目標,需要付出許多努力,MISIM是我們邁出的堅實一步?!?
隨著異構(gòu)計算崛起,硬件、軟件系統(tǒng)變得越來越復(fù)雜,以及跨架構(gòu)專業(yè)編程人員的稀缺,導(dǎo)致業(yè)界對新開發(fā)方法的需求愈加凸顯。“機器編程”一詞在英特爾研究院和麻省理工學(xué)院聯(lián)合發(fā)布的《機器編程的三大支柱》論文中首次提出,旨在通過自動化工具提升開發(fā)效率。在多種新興機器編程工具中,代碼相似度是一項關(guān)鍵技術(shù),它具備精準、高效實現(xiàn)軟件開發(fā)流程自動化的潛力,從而滿足跨架構(gòu)編程需求。
然而,建立精準的代碼相似度系統(tǒng)本身是一個較為棘手的問題。這些系統(tǒng)需要識別兩個代碼段是否具有相似特征、是否需要實現(xiàn)相似目標。在只提供源代碼的情況下,這是非常難以實現(xiàn)的。但英特爾與麻省理工學(xué)院及佐治亞理工學(xué)院聯(lián)合開發(fā)的MISIM可以精準識別兩段代碼是否運行相似的計算過程,即使這兩段代碼使用不同的數(shù)據(jù)結(jié)構(gòu)和算法。正如Gottschlich所闡述的,“這是實現(xiàn)機器編程偉大愿景的重要一步。”
MISIM與現(xiàn)有代碼相似度系統(tǒng)最關(guān)鍵的不同點在于,它擁有創(chuàng)新的上下文感知語義結(jié)構(gòu)(CASS),可以提取出代碼真正的用途。與其它現(xiàn)有方法不同的是,CASS可以配置到特定上下文環(huán)境,在更高層次抓取描述代碼的信息。因此,CASS可以提供更精準的洞察如“代碼能實現(xiàn)什么”,而不是“如何實現(xiàn)”的問題。此外,MISIM無需使用編譯器(將人類可讀源代碼轉(zhuǎn)換為計算機可執(zhí)行機器代碼的程序)即可完成所有這些工作。所以與現(xiàn)有系統(tǒng)相比,MISIM就有了更多優(yōu)勢,包括能夠在開發(fā)人員尚在編寫的不完整代碼段上執(zhí)行,對于推薦系統(tǒng)和自動bug修復(fù)等應(yīng)用情景來說,具有重要實際意義。
一旦代碼結(jié)構(gòu)整合到CASS以后,根據(jù)設(shè)計目標,多個神經(jīng)網(wǎng)絡(luò)系統(tǒng)會對代碼段給出相似度評分。換言之,如果兩段代碼結(jié)構(gòu)看起來很不一樣,但執(zhí)行的都是同一個功能,這些神經(jīng)網(wǎng)絡(luò)系統(tǒng)將給出“高度相似”的評分。
通過將這些原則整合到統(tǒng)一系統(tǒng)中,英特爾、麻省理工學(xué)院和佐治亞理工學(xué)院的研究員發(fā)現(xiàn),MISIM識別相似代碼段的精確度是此前最先進系統(tǒng)的40倍。
英特爾將繼續(xù)拓展MISIM的功能,目前已經(jīng)從研究階段進入演示階段,目標是打造一款代碼推薦引擎,協(xié)助軟件開發(fā)人員在英特爾多種異構(gòu)架構(gòu)上進行編程開發(fā)。此類系統(tǒng)可以識別開發(fā)人員簡單算法輸入背后的意圖,并推薦語義相近但性能更好的候選代碼。
英特爾機器編程研究院同時也與英特爾軟件部門進行合作,研究如何將MISIM整合到日常開發(fā)工作當中。Gottschlich同時也兼任賓夕法尼亞大學(xué)兼職助理教授,他希望幫助軟件部門以及整個英特爾公司提升生產(chǎn)效率,并消除編程中修復(fù)bug等單調(diào)的工作。Gottschlich表示:“如果機器能做到自動檢查和修復(fù)bug,我想大多數(shù)開發(fā)人員一定非常愿意讓它來承擔(dān)這項工作,至少我會?!?