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