微軟在Ignite大會上發表最新的Visual Studio程式碼AI輔助機制IntelliCode,現在IntelliCode進一步獲得人工智慧加持,新增兩個新功能,從根本提高開發敏捷性和程式碼品質,兩個新功能分別為全行程式碼完成建議(Whole Line Completions),以及之前釋出預覽版的重構(Refactoring)功能,現在正式對外釋出。

IntelliCode是2018年微軟在Build上發表的擴充套件,可以在IntelliSense的自動完成下拉選單,對開發者提供最佳的完成選項,而非僅列出以字首排序的結果。這些最佳化建議全來自GitHub社群,微軟將超過2,000個評價百顆星的開源專案,拿來作為最佳開發實作的機器學習訓練樣本。

IntelliCode的上下文程式碼完成強化功能,可以做到像是自動預測最有可能的類別成員,開發者不需要在IntelliSense下拉列表逐一尋找。IntelliCode還會掃描開發者的程式碼風格,自動維持程式碼開發的一致性。

而這次微軟在IntelliCode使用了OpenAI超強GPT-2文字產生模型,來學習程式語言和程式碼模式,可以在開發者撰寫程式碼的時候,自動產生精確的程式碼建議。GPT模型架構最初是開發用來解決自然語言理解的問題,而微軟現在精選3,000個GitHub儲存庫的程式碼訓練GPT-2模型,該模型會擷取儲存庫程式碼的開發模式,並學習程式語言的複雜性,在開發者撰寫程式碼時,基於上下文使用語義資訊和模式,來預測程式碼接下來最有可能的完成選項。

IntelliCode也允許開發團隊可以訓練自己的程式碼完成功能,以符合特殊需求,IntelliCode從程式碼中學習模式,可以更精確的提供建議,透過善加利用團隊和社群的知識,可加快開發團隊成員的程式學習速度。

另外,現在IntelliCode還會監控IDE中的程式碼更改,並根據需求合成重複模式的編輯腳本,IntelliCode會利用這些編輯腳本,讓開發者可以快速地應用重複性更改,或是在團隊審核(Team Review)創建拉取請求來應用這些建議。

IntelliCode的重構功能可減少例行性工作的時間成本以及錯誤發生,微軟在IntelliCode中,使用了一種稱為PBE(Programming-by-examples)的人工智慧合成技術,PBE技術已經被大量用於微軟的各種產品,包括Excel的Flash Fill功能和PowerBI的網頁表格擷取,都有使用PBE技術,讓用戶只要提供一些明確示範之後,程式便能提供簡化重複任務的輔助,但是IntelliCode所使用的PBE技術更加先進,因為開發者不需要提供明確的示範,IntelliCode會自動從開發者雜亂的行為中自動學習,開發者不需要在重構之前進行額外的任何動作。

微軟強調,使用者可以完全控制人工智慧輔助功能,以及存取資料的角色,除非開發者與其他人共享模型,否則微軟也不會跟其他人共享這些模型,系統也會預設啟用相對安全的資料存取規則,保護使用者的隱私安全,而重構功能的模型,只會在本地端運作,程式碼不會離開使用者的電腦。


Advertisement

更多 iThome相關內容