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