英特爾開源基于機(jī)器學(xué)習(xí)的代碼檢測工具 ControlFlag
 去年,英特爾推出了一個(gè)基于機(jī)器學(xué)習(xí)的代碼檢測工具 ControlFlag ,可以幫助開發(fā)者發(fā)現(xiàn)代碼中的錯(cuò)誤,減少調(diào)試應(yīng)用程序和軟件所需的時(shí)間。英特爾在用超過 10 億行的代碼對 ControlFlag 進(jìn)行訓(xùn)練后取得令人印象深刻的結(jié)果,ControlFlag 在已達(dá)到 "生產(chǎn)質(zhì)量" 的軟件中發(fā)現(xiàn)了數(shù)百個(gè)錯(cuò)誤,證明了其在代碼檢測方面的實(shí)用性。而且在去年年底,英特爾就已將該工具部署至公司內(nèi)部,用于檢查從固件到軟件應(yīng)用的代碼庫。
如今時(shí)隔一年時(shí)間,英特爾又帶來了有關(guān) ControlFlag 的新消息,現(xiàn)在英特爾將 ControlFlag 正式開源 ,以幫助更多開發(fā)者自主檢測代碼錯(cuò)誤。
ControlFlag 適用于任何包含控制結(jié)構(gòu)的編程語言(如 C/C++),旨在通過利用無監(jiān)督的學(xué)習(xí)方式減少調(diào)試工作。通過無監(jiān)督學(xué)習(xí),一個(gè)算法被置于 "未知" 數(shù)據(jù)中,ControlFlag 能夠自己對數(shù)據(jù)進(jìn)行分類、處理未標(biāo)記的數(shù)據(jù),并從其固有的結(jié)構(gòu)中學(xué)習(xí)。
ControlFlag 能夠不斷地從未標(biāo)記的源代碼中學(xué)習(xí),隨著新數(shù)據(jù)的引入而 "進(jìn)化",使自己變得更好。雖然它還不能自動解決它所發(fā)現(xiàn)的代碼錯(cuò)誤,但該工具可以為開發(fā)人員提供了潛在的修改建議。
英特爾首席 AI 科學(xué)家 Justin Gottschlich表示:“英特爾致力于使軟件更加強(qiáng)大,維護(hù)起來不那么麻煩,同時(shí)在不引入安全漏洞的情況下保留出色的性能。我們希望像 ControlFlag 這樣的項(xiàng)目能夠在全球范圍內(nèi)大幅減少開發(fā)軟件的時(shí)間,由于開發(fā)者通常會在調(diào)試上耗費(fèi)過多的時(shí)間,因此在這個(gè)領(lǐng)域中哪怕是節(jié)省一點(diǎn)點(diǎn)時(shí)間,也能創(chuàng)造巨大的效益,從而加速技術(shù)的進(jìn)步。”
ControlFlag 的相關(guān)代碼已托管至 GitHub 平臺。感興趣的開發(fā)者可以嘗試用它來檢查一下自己開發(fā)的項(xiàng)目,看看是否能提升開發(fā)效率。
















 
 
 
 
 
 
 