OpenAI與微軟GitHub聯(lián)手 共同推出AI編程工具GitHubCopilot

發(fā)布時間:2021-08-11 11:47:53  |  來源:雷鋒網(wǎng)  

微軟與 OpenAI 共同推出了一款 AI 編程工具GitHub Copilot,這款工具基于 GitHub 及其他網(wǎng)站的源代碼,可根據(jù)上文提示為程序員自動編寫下文代碼。

GitHub 的首席執(zhí)行官 Nat Friedman 介紹說,GitHub Copilot 是結(jié)對編程的虛擬版本。結(jié)對編程是一種常見的敏捷軟件開發(fā)技術 —— 即兩個開發(fā)人員在同一個項目上并肩協(xié)作,輪流編寫代碼并檢查合作伙伴的輸出。

“它可以在編輯器中直接獲提供多行或整個函數(shù)的代碼建議。另外,隨著時間的推移和使用量的增加,模型會變得越來越復雜,代碼質(zhì)量也會越來高。”

對于程序員來講,一款編程工具最重要的當然是支持哪些類型語言。GitHub 在預告中說,Copilot 可以支持十幾種語言,與 Python、JavaScript、TypeScript、Ruby 和 Go 等主流語言配合效果更佳。

目前 GitHub 官網(wǎng)已經(jīng)曬出了 Copilot 的功能介紹,我們來了解一下。

一、給力的結(jié)對編程伙伴

GitHub 表示,相比大多數(shù)代碼助手,GitHub Copilot 可以理解更大范圍的上下文。因此,無論是文檔字符串、注釋、函數(shù)名稱還是代碼本身,GitHub Copilot 都可以基于提供的上下文(已輸入的代碼)合成新代碼以進行匹配。

如果真有如此可靠,那么正如 GitHub 所說,這項功能可以讓程序員丟掉很多的文檔閱讀工作,從而專注于編輯器。

GitHub Copilot 還可以將注釋轉(zhuǎn)換為代碼。只需要寫一條評論,描述想要的邏輯,GitHub Copilot 就能自動“理解”并寫出相應功能的代碼。

GitHub Copilot 也能自動填充重復代碼。GitHub 表示,GitHub Copilot 非常適合快速生成樣板和重復代碼模式。對于需要編寫大量相似但難以轉(zhuǎn)換為循環(huán)語句代碼的程序員而言,這項功能非常“香”。

包辦測試也是 GitHub Copilot 值得注意的亮點,GitHub 表示,測試是任何強大的軟件工程項目的支柱,“導入單元測試包,就可以讓 GitHub Copilot 自動編寫與你的實現(xiàn)代碼匹配的測試。”

對于相同的上下文,GitHub Copilot 可以給出多種解決方案,供程序員自主選擇。

看到這里,小伙伴們是不是躍躍欲試了呢?可惜,GitHub Copilot 不是完全開放的,和 GPT-3 一樣,只提供有限用戶的試用體驗??傊?,先排隊吧。

二、Copilot,專為編程而生

Brockman 介紹說,GitHub Copilot 的核心模型 Codex 借助了 GPT-3 強大的生成能力。

我們知道,GPT-3 是 OpenAI 推出的超大規(guī)模自然語言生成模型,早期訓練 GPT-3 時,OpenAI 無意教它如何幫助編寫代碼,它更像是一種通用語言模型,主要用于文本生成、語法修改等任務。

后來 OpenAI 向公眾開放 API,這個基于文本訓練的模型,被網(wǎng)友們玩出了 50 多種花樣,其中包括自動生成代碼。OpenAI 意識到了 GPT-3 在編寫代碼方面的潛力,并在其網(wǎng)站上提供了在線“代碼生成”服務。

幾十年來,微軟的研究人員一直在嘗試如何教計算機編寫代碼,但未取得顯著成果。此次與 OpenAI 合作,微軟將提供了強大 Azure 云計算能力和 GitHub 平臺(2018 年被微軟收購)的大量語言編程代碼。

關于這款產(chǎn)品的代碼生成質(zhì)量,F(xiàn)riedman 說,GitHub 員工已經(jīng)做了大量嘗試,能夠確保 GitHub Copilot 生成安全、高質(zhì)量的代碼。他說:“我們已經(jīng)在系統(tǒng)中建立了一些安全機制,這些機制在減少各個領域能夠顯著減少出錯幾率。”也就是說,GitHub Copilot 并不能保證完全不出錯,它仍然只是一個輔助生成代碼工具。

官網(wǎng)報道說,Copilot 的底層技術屬于微軟和 OpenAI 共有,今年夏天 OpenAI 將發(fā)布 Codex 模型,供第三方開發(fā)者使用。微軟也表示會發(fā)布該產(chǎn)品的一個版本,讓企業(yè)通過培訓了解自己的編程風格。但目前,微軟只提供公共存儲庫中存儲的代碼的服務。

這不是微軟第一次依靠 OpenAI 來提供智能軟件。上個月,微軟展示了 powerapps Studio 應用程序的更新服務,非技術人員可以使用它來編寫應用程序 —— 用戶輸入他們想要添加的元素單詞,GPT-3 可提供一些必要代碼的選項。

三、網(wǎng)友討論

GitHub Copilot 的發(fā)布在 Reddit 上引發(fā)了熱烈的討論,不少網(wǎng)友看好編碼自動化的產(chǎn)業(yè)趨勢,網(wǎng)友 @markbowick 說道:

毫無疑問,這將極大地提高大多數(shù)程序員的日常編程生產(chǎn)力,并且(我認為)這將是推動全球軟件影響呈指數(shù)增長的最重要步驟之一。

值得注意的是,GPT-J(GPT-3 較小模型之一的開源實現(xiàn))在大量 GitHub 和 StackExchange 查詢存儲庫上進行了訓練,并且在特定編程相關任務上的表現(xiàn)明顯優(yōu)于 OpenAI 的其它模型。在接下來的幾個月里,我預期會看到性能更好的類似的(更大)模型。

也有人提出了質(zhì)疑,網(wǎng)友 @laprika0 表示,GitHub Copilot 的測試方法令人擔憂,“讓 GitHub Copilot 建議與你的實現(xiàn)代碼匹配的測試,但人們并不應該以這種方式寫測試。”不少網(wǎng)友表示同意,并補充道,“如果實現(xiàn)代碼有錯誤,那么 GitHub Copilot 將把錯誤引入測試中,從而影響測試效果。”

還有人則注意到關于代碼所有權的問題,OpenAI 發(fā)表了一項聲明,表示用戶使用 GitHub Copilot 寫代碼時,代碼片段和建議結(jié)果將與 GitHub 和 OpenAI 共享,并用于診斷目的和改進建議。同時,為保護隱私,GitHub Copilot 不會使用用戶的私有代碼來為 GitHub Copilot 的其他用戶推薦代碼。

網(wǎng)友 @touristtam 對此聲明感到困惑,“他們是否擁有在用戶啟用 GitHub Copilot 時編寫的代碼?”

關鍵詞: OpenAI 微軟 GitHub AI編程工具

 

網(wǎng)站介紹  |  版權說明  |  聯(lián)系我們  |  網(wǎng)站地圖 

星際派備案號:京ICP備2022016840號-16 營業(yè)執(zhí)照公示信息版權所有 郵箱聯(lián)系:920 891 263@qq.com