
10 月 21 日消息,英特爾近日開源了機器編程工具 ControlFlag,這是一種使用機器學習來檢測計算機代碼問題的工具。理想情況下,ControlFlag 的應用可以減少調試應用程序和軟件所需的時間。
在測試中,英特爾的機器編程研究團隊表示,ControlFlag 在專有的“生産質量(production-quality)”軟件中發現了數百個缺陷,證明了它的實用性。
機器編程工具 ControlFlag 可通過 https://github.com/IntelLabs/control-flag 下載。
英特爾機器編程研究團隊(MPR)的曆史可以追溯到 2017 年。從那時起,英特爾就已經開始着手,構建新穎的機器編程(MP)系統,如 ControlFlag,這些系統有助于改進代碼調試或自動提取性能。
英特爾實驗室的首席人工智能科學家兼機器編程研究總監和創始人 Justin Gottschlich 表示,研究小組的第一個目标是将開發軟件所需的總時間減少 1,000 倍。例如,今天可能需要三年才能完成的事情,在未來内就可以用機器編程系統完成。除了提高軟件開發生産力之外,第二個目标是确保機器編程系統在合成新軟件時保持特定的質量特征,如準确率、性能、安全性和可維護性等特征。
目前,幾乎所有大型軟件在準确性、性能或安全方面都存在漏洞。一些留存時間久,無法被專家程序員檢測到的錯誤可以通過機器編程自動檢測,并實現零人工幹預。此外,随着軟件在不斷增加新功能,軟件更新會使得引入錯誤的可能性增加并出現問題。
值得注意的是,某些錯誤會存在潛在的安全漏洞,造成損失數百萬美元的災難性後果。
“機器編程的三大支柱”是英特爾機器編程研究的關鍵:
第一個支柱是意圖,旨在發現編程的意圖,從軟件中提升意義,确定人類向機器表達想法的新方式。
第二個支柱是發明,創建新的算法和數據結構來實現意圖,涉及創建或改進算法核心硬件和軟件構建塊,使用各種機器編程技術實現一些已知的意圖。
第三個支柱是适應,在不斷變化的硬件、軟件世界中發展軟件,自主地演變軟件特定生态系統,協助計算後端進展。自适應系統主要用于幫助識别和改進軟件質量特性,例如性能、安全性和可維護性。
從三大支柱的角度來看,ControlFlag 集中落在了适應支柱,它試圖找到軟件編碼異常。雖然 ControlFlag 還不能自動減輕它發現的缺陷,但它會為用戶提供潛在更正的建議。
正式開源前,ControlFlag 已在生産級軟件和廣泛使用的開源軟件系統上進行了測試。
例如去年,ControlFlag 發現了客戶端 URL(Client URL,cURL)中的代碼異常。客戶端 URL 是一個計算機軟件項目,每天使用各種網絡協議傳輸數據超過 10 億次。在向客戶端 URL 團隊報告異常後,他們認可了 ControlFlag 的發現并随後修補了代碼。
ControlFlag 于 2020 年 12 月推出,但在開源之前僅在英特爾内部使用。
Gottschlich 在 LinkedIn 上的一篇博文中提到:“最近,ControlFlag 通過在專有生産級軟件中識别數百個與内存和潛在系統崩潰錯誤相關的缺陷,取得了進的進展。此外,ControlFlag 在幾個高質量的開源軟件存儲庫中也發現了數十個新的異常。”
ControlFlag 可與任何包含控制結構的編程語言一起使用,并利用無監督學習來減少調試工作,從未标記的源代碼中學習。随着新數據的引入,它會不斷發展以使其實現自我發展。ControlFlag 将自學對數據進行分類,從其固有結構中學習處理未标記的數據。
ControlFlag 不斷從未标記的源代碼中學習,随着新數據的引入,不斷“進化”使自己變得更好。雖然 ControlFlag 還不能自動減輕它發現的編程缺陷,但該工具為開發人員提供了潛在的更正建議,Gottschlich 表示。
這些驚人的結果顯示了 ControlFlag 能夠顯著提高軟件開發的成本和效率。此外,對高質量代碼的需求增多,吸引了越來越多的有抱負的程序員加入這個行業。
最近的一項研究發現,2020 年 IT 行業在與調試代碼相關的軟件開發成本上花費了約 2 萬億美元,其中約 50% 的 IT 預算用于調試代碼。
“英特爾緻力于使軟件更加完善,維護起來更輕松,同時保持卓越的性能,而不會引入安全漏洞。我們希望像 ControlFlag 這樣的項目可以大大減少在全球範圍内開發軟件所需的時間。”Gottschlich 表示,“在調試上花費的大量時間被節省,從而使我們能夠加速技術進步。”
ControlFlag 等 AI 驅動的編碼工具以及代碼補全工具 Tabnine、代碼測試工具 Ponicode、代碼安全審核工具 Snyk 和代碼審查軟件 DeepCode 等平台會減少開發人員之間代價高昂的交互,例如問答環節和重複的代碼審查反饋。國際商業機器公司(IBM)和人工智能公司 OpenAI 緻力于研究機器學習在軟件開發領域的應用,是潛力十足的衆多公司之二。但研究顯示,實現零人工幹預有很長的路要走,才可以代替許多需要程序員定期執行的任務。
ControlFlag 測試過程中發現的錯誤被開發人員認可,展示了機器編程工具在軟件開發領域的廣闊前景。
英特爾機器編程研究團隊專注于提高軟件質量和開發人員生産力。開源 ControlFlag 後,将進一步緻力于實現零人工幹預。針對提高軟件開發領域的成本、效率問題,衆多代碼測試、補全、審核工具上線,多個頭部玩家在機器編程研究領域共同努力,将進一步提高軟件開發領域的準确率、安全性。
免責聲明:本文僅代表作者個人觀點,與每日科技網無關。其原創性以及文中陳述文字和内容未經本站證實,對本文以及其中全部或者部分内容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關内容。
本網站有部分内容均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責,若因作品内容、知識産權、版權和其他問題,請及時提供相關證明等材料并與我們聯系,本網站将在規定時間内給予删除等相關處理.



