英特爾開源ControlFlag:可自主檢測出代碼中的bug

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"近日,英特爾宣佈開源ControlFlag,這是其在去年12月"},{"type":"link","attrs":{"href":"https:\/\/www.intel.com\/content\/www\/us\/en\/newsroom\/news\/machine-programming-tool-detects-bugs-code.html#gs.bijsty","title":"","type":null},"content":[{"type":"text","text":"推出"}]},{"type":"text","text":"的機器編程研究系統,它可以自主檢測代碼中的錯誤,幫助開發者進行耗時費力的 Debug。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"GitHub地址:"},{"type":"link","attrs":{"href":"https:\/\/github.com\/IntelLabs\/control-flag","title":"","type":null},"content":[{"type":"text","text":"https:\/\/github.com\/IntelLabs\/control-flag"}]},{"type":"text","text":" (ControlFlag 目前適用於 Linux 和 Mac OS,對 Windows 的支持正在努力中。)"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"ControlFlag 檢測 Bug 的功能是通過機器編程實現的,其中融合了機器學習、形式化方法、編程語言、編譯器和計算機系統。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"具體來說,ControlFlag 通過被稱爲異常檢測(anomaly detection)的功能進行運轉。它通過學習經過驗證的例子來檢測正常的編程模式,發現代碼中可能造成Bug的異常。此外,官方稱不管代碼使用什麼編程語言,ControlFlag 都可以檢測這些異常。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"據瞭解,ControlFlag 的無監督模式識別方法的一個主要優勢是,它可以從本質上學會適應開發者的風格。在有限的需要評估的控制工具輸入信息中,ControlFlag 可以識別編程語言中的各種風格,類似於讀者識別英語中使用完整單詞和縮略語的差異。該工具會學會識別並標記這些風格選擇,並根據其洞察可以自制錯誤識別和建議解決方案,從而讓 ControlFlag 儘可能避免把兩個開發團隊之間的風格差異認爲是代碼錯誤。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英特爾實驗室首席人工智能科學家Justin Gottschlich負責帶領該工具的開發工作,他表示,自推出以來,ControlFlag 已在生產級軟件和廣泛使用的開源軟件系統上進行了測試。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"例如,2020年ControlFlag曾發現cURL中的代碼異常,cURL是一個知名的開源項目,在全世界有超過100億的安裝,每天處理各種網絡協議傳輸數據超過 10 億次。“在我們向 cURL 團隊報告異常後,他們認可 ControlFlag 的發現並隨後修復了代碼。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Justin Gottschlich還舉例道,最近ControlFlag通過在專有生產級軟件中識別數百個與內存和潛在系統崩潰錯誤相關的缺陷,取得了最先進的成果。此外,ControlFlag 在幾個高質量的開源軟件存儲庫中發現了數十個新的異常。到目前爲止,每個異常都被開源維護者確認爲是真的bug,並已得到糾正。“這些令人興奮的結果證明了 ControlFlag 能夠顯着提高成本和效率。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英特爾認爲 ControlFlag 可能會被嵌入到芯片中,作爲抵禦錯誤代碼的最後一道防線,以提高數據通信通道的效率。但爲此,人工智能系統需要成熟,並且必須可靠到調試過程可以自動化的程度。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但這還是一個比較長遠的目標。Justin Gottschlich在接受TheRegister"},{"type":"link","attrs":{"href":"https:\/\/www.theregister.com\/2021\/10\/25\/intel_controlflag\/","title":"","type":null},"content":[{"type":"text","text":"採訪"}]},{"type":"text","text":"時表示,現在ControlFlag主要是應用在軟件中。如果可以的話,團隊很願意構建更先進的系統或一些核心組件將它們“燒錄”到硬件中,這對於機器學習來說是至關重要的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Gottschlich 說,英特爾正在投入更多資源來長期開發ControlFlag,但另一個挑戰是弄清楚通信、機器學習和計算將如何發展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"延展閱讀:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.linkedin.com\/pulse\/newly-open-sourced-controlflag-identifies-hundreds-justin-gottschlich\/","title":"","type":null},"content":[{"type":"text","text":"https:\/\/www.linkedin.com\/pulse\/newly-open-sourced-controlflag-identifies-hundreds-justin-gottschlich\/"}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章