<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          AI編程工具來了!GitHub Copilot 可對整行或全部代碼給出AI分析建議

          共 4127字,需瀏覽 9分鐘

           ·

          2021-07-04 01:21


          作者 | David Ramel 策劃 | 施堯 譯者 | 核子可樂

          作為一款 AI 結對編程工具,Copilot 的主要定位是提供類似 IntelliSense/IntelliCode 的代碼補全與建議功能,但在實際表現(xiàn)上有望超越同樣由微軟合作伙伴 OpenAI 開發(fā)的 Codex AI 系統(tǒng)。

          軟件開發(fā)領域的“第三次工業(yè)革命”似乎正緩緩揭開序幕:隨著全新“AI 結對編程工具”的亮相,AI 技術正開始在編碼工作中發(fā)揮作用。

          以 OpenAI 推出的新型 AI 系統(tǒng)為基礎,這款 GitHub Copilot 有望在短期內登陸 Visual Studio Code,并進一步現(xiàn)身于更為成熟的 Visual Studio IDE。但就目前的技術預覽版本來看,GitHub Copilot 的表現(xiàn)還比較“粗糙”,但據(jù)說它的智能化程度一直在不斷提升。

          什么是 AI 結對編程

          在編程領域,結對編程(英語:Pair programming)是一種敏捷軟件開發(fā)的方法,用來代指兩個程序員在一個計算機上共同工作。通常來說,會有一個人輸入代碼,而另一個人審查他輸入的每一行代碼。輸入代碼的人稱作駕駛員,而審查代碼的人稱作觀察員(或導航員)。為了保證結對編程的糾偏能力,兩個程序員經(jīng)?;Q角色。

          由于人工智能和大數(shù)據(jù)技術的不斷發(fā)展,近年來人機結對編程(MMPP)不斷成熟, AI 結對編程(AIPP)產品也加快了落地步伐。人機結對編程已經(jīng)是一個較為成熟的概念,指的是人機協(xié)同的交互式智能編程,在這個過程中,程序員在機器的輔助下進行編程,并且在共同完成一個個程序編寫的過程中,程序員會及時糾正機器人的錯誤,從而改進機器人學習的模型。

          AI 結對編程,可以簡單理解為人機結對編程的升級版,典型的落地產品有 aiXcoder 智能編程機器人和最新亮相的 GitHub Copilot。翻看 GitHub Copilot 官網(wǎng),其對 GitHub Copilot 的定義揭示了 AI 結對編程的核心原理:GitHub Copilot 是一個 AI 配對程序員,可幫助您以更少的工作更快地編寫代碼。GitHub Copilot 由 OpenAI Codex 提供支持,可從評論和代碼中提取上下文,并立即對單行代碼甚至整個函數(shù)給出建議。而 OpenAI Codex 接受過公開源代碼和自然語言的培訓,能理解編程語言和人類語言。在工作時,GitHub Copilot 編輯器的擴展插件將程序員的注釋和代碼發(fā)送到 GitHub Copilot 服務,然后該服務使用 OpenAI Codex 來生成對代碼的建議。

          那么,Copilot 在實際工作中的表現(xiàn)如何呢?

          定位于提供代碼補全與建議功能
          Copilot 預覽版表現(xiàn)超預期

          Copilot 的首個實現(xiàn)為 VS Code 擴展,正在測試小組的驗證下不斷完善。一旦技術預覽版通過檢測,未來可能會以付費產品的形式在 VS Code 及 Visual Studio 上與大家見面。

          GitHub CEO Nat Friedman 在 6 月 29 日接受采訪時表示,“過去一年,我們與才華橫溢的 OpenAI 團隊攜手構建了 GitHub Copilot,很高興這次能向大家正式展示。每天都有數(shù)百名開發(fā)人員進行內部使用,它的表現(xiàn)也著實讓大家震驚,甚至有些超出預期。如果技術預覽版的進展一切順利,我們計劃在未來適當?shù)臅r候把它擴展為付費產品”。

          作為一款 AI 結對編程工具,Copilot 的主要定位是提供類似 IntelliSense/IntelliCode 的代碼補全與建議功能,但在實際表現(xiàn)上有望超越同樣由微軟合作伙伴 OpenAI 開發(fā)的 Codex AI 系統(tǒng)。順帶一提,這里提到的 IntelliCode 是專供編碼大規(guī)模 transformer 模型(GPT-C)的方案;而 OpenAI Codex 則屬于 GPT-3(生成式預訓練 Transformer),其能夠將自然語言翻譯為代碼形式。   


          (圖片來源:GitHub Copilot)

          與 IntelliCode 類似,Codex 也利用 GitHub 上的高質量代碼 repo 進行訓練,同時考慮到項目中的本地上下文及其他因素,以便為單一代碼行或整個函數(shù)提供代碼補全支持。

          Friedman 在 6 月 29 日的博文中還提到,“OpenAI Codex 對于人們的代碼使用習慣有著廣泛了解,而且在代碼生成能力上遠遠超過 GPT-3,這要歸功于它在訓練中接觸到的大量公共源代碼數(shù)據(jù)集。GitHub Copilot 則適用于多種框架和語言,但目前的技術預覽版主要面向 Python、JavaScript、TypeScript、Ruby 以及 Go”。

          微軟及 OpenAI 早在 2019 年就達成了合作協(xié)議,雙方最近的合作成果當數(shù)由 GPT-3 為微軟 Power Apps 提供支持的全新“無代碼”自然語言開發(fā)功能。如今,OpenAI Codex 也開始在已經(jīng)歸微軟所有的 GitHub 新產品中發(fā)揮重要作用。

          如前文所述,目前技術預覽版中還缺少某些重要功能(截至本文撰稿時,這款 VS Code 擴展共安裝了 325 次)。根據(jù)項目網(wǎng)站上的常見問題解答部分,“GitHub Copilot 并未對代碼建議進行實際測試,因此給出的代碼結果可能無法編譯或運行。

          此外,GitHub Copilot 所能容納的上下文也非常有限,因此即使面對超過數(shù)百行的大型單一源文件,它也只能參考其中的前一條上下文。另外,GitHub Copilot 可能會在建議中使用陳舊或者已被棄用的庫及語言。您可以隨意使用代碼建議,但須自行承擔相關風險”。

          此外,常見問題解答還指出,GitHub Copilot 在嘗試理解開發(fā)者意圖時給出的建議代碼可能無效或不具備實際意義,因此用戶應像對待其他代碼一樣認真測試、審查及檢測這些建議內容。

          智能化程度提升很快,代碼所有權
          許可證等問題引熱議

          盡管還有種種不足,但 GitHub 仍然希望能根據(jù)當前技術預覽版的初步發(fā)現(xiàn)不斷實現(xiàn)重大改進。常見問題解答中提到,“我們近期對一組 Python 函數(shù)進行了基準測試,并發(fā)現(xiàn)這些函數(shù)在開源 repo 中具有良好的測試覆蓋率。我們清除了函數(shù)本體,并要求 GitHub Copilot 進行填充。模型在第一次嘗試時只有 43% 的正確率,但在允許進行 10 次嘗試時則能把正確率提升至 57%。它的智能化程度一直在不斷提升?!碑斎?,大家也不可避免地對這款工具可能引發(fā)的代碼所有權、許可證、利益沖突以及其他現(xiàn)實問題展開了討論。

          Friedman 回應稱,“總體來說:(1)在公共數(shù)據(jù)上訓練機器學習系統(tǒng)屬于合理的使用方式;(2)輸出結果的所有權歸于操作者,跟傳統(tǒng)的編譯器沒什么區(qū)別。具體到訓練問題上,大家也可以看到 OpenAI 向美國專利商標局做出的承諾。我們預計 GitHub Copilot 項目的知識產權與 AI 成果將很快在世界范圍內掀起關于政策的討論熱潮,我們自己也希望能夠參與進來!”

          下面來看得到 Friedman 正式回應的其他幾個重要問題:

          • 問: 是否存在關于 AI 編寫代碼存在安全漏洞的報告?這些漏洞會不會遭到惡意分子的利用?

            Friedman: 我還沒聽說過類似的情況,但我們肯定會努力防范這類狀況的發(fā)生。


          • :這類方案的推出,會不會最終在項目與 GPL 代碼之間引發(fā)許可證沖突?

            Friednman: 應該不至于,我們正在采取措施避免在輸出中直接引用訓練數(shù)據(jù)。而單就使用公共代碼進行訓練的許可方面,從機器學習社區(qū)的通行慣例來看這屬于非常正常的合理使用方式。當然,預計這方面問題也會在美國乃至世界各地引發(fā)廣泛討論,我們也渴望能參與進來。


          • 問: 這應該是個爭議性問題,甚至有可能消滅掉相當一部分開發(fā)者崗位。您如何看待 Copilot 對開發(fā)者生態(tài)系統(tǒng)帶來的增強作用與破壞作用?另外,它跟之前大家所熟悉的 tabnine 等常規(guī)代碼補全工具到底有什么區(qū)別(Twitter 評論中也有不少朋友抱有類似的疑問)?

            Friedman: 我們認為,軟件開發(fā)正迎來自己的“第三次工業(yè)革命”。第一次革命是編譯器、調試器、垃圾收集器以及語言等工具的出現(xiàn),極大提升了開發(fā)者的工作效率;第二次則以開源為龍頭,幫助全球開發(fā)者社區(qū)匯聚起來并在彼此的開發(fā)成果基礎之上不斷推進;第三次革命就在當下,嘗試在編碼當中使用 AI 技術。在發(fā)展成熟之后,開發(fā)人員的日常工作內容將有巨大改變——但仍然有很多工作可做、也只能由人類開發(fā)者完成,因此不用太擔心。

          目前的技術預覽版還存在諸多限制,例如需要使用最先進的 AI 硬件。感興趣的朋友可以到官網(wǎng)申請試用(https://github.blog/2021-06-29-introducing-github-copilot-ai-pair-programmer/)。常見問題解答指出,“如果技術預覽版獲得成功,我們計劃后續(xù)推出 GitHub Copilot 的商業(yè)版本。我們希望通過此次預覽了解人們如何使用 GitHub Copilot、怎樣才能實現(xiàn) Copilot 的規(guī)?;\營等?!?/p>

          OpenAI 表示將在今年夏末通過 API 發(fā)布 Codex,引導開發(fā)人員探索這套全新 AI 系統(tǒng)中的更多功能,并幫助其將功能注入到自己的應用程序當中。

          原文鏈接:

          https://visualstudiomagazine.com/articles/2021/06/29/github-copilot.aspx


          —版權聲明—

          來源:AI前線

          僅用于學術分享,版權屬于原作者。

          若有侵權,請聯(lián)系微信號:yiyang-sy 刪除或修改!


          —THE END—



          瀏覽 110
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.俺去也 | 日韩Av无码一区二区三区不卡 | 大香蕉之大香蕉之国产沙发 | 无码15P| 12——13女人毛片毛片 |