和AI結(jié)對(duì)編程!OpenAI與GitHub聯(lián)手推出AI代碼生成工具,比GPT-3更強(qiáng)大

極市導(dǎo)讀
昨日,微軟與OpenAI共同推出了一款A(yù)I編程工具GitHub Copilot,這款工具基于GitHub及其他網(wǎng)站的源代碼,可根據(jù)上文提示為程序員自動(dòng)編寫下文代碼! >>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿

比GPT-3更強(qiáng)大!
昨日,微軟與OpenAI共同推出了一款A(yù)I編程工具GitHub Copilot,這款工具基于GitHub及其他網(wǎng)站的源代碼,可根據(jù)上文提示為程序員自動(dòng)編寫下文代碼!
GitHub 的首席執(zhí)行官 Nat Friedman 介紹說,GitHub Copilot是結(jié)對(duì)編程的虛擬版本。結(jié)對(duì)編程是一種常見的敏捷軟件開發(fā)技術(shù)——即兩個(gè)開發(fā)人員在同一個(gè)項(xiàng)目上并肩協(xié)作,輪流編寫代碼并檢查合作伙伴的輸出。

“它可以在編輯器中直接獲提供多行或整個(gè)函數(shù)的代碼建議。另外,隨著時(shí)間的推移和使用量的增加,模型會(huì)變得越來越復(fù)雜,代碼質(zhì)量也會(huì)越來高?!?/span>
對(duì)于程序員來講,一款編程工具最重要的當(dāng)然是支持哪些類型語言。GitHub在預(yù)告中說,Copilot 可以支持十幾種語言,與 Python、JavaScript、TypeScript、Ruby 和 Go 等主流語言配合效果更佳。

目前GitHub官網(wǎng)已經(jīng)曬出了 Copilot 的功能介紹,我們來了解一下。
給力的結(jié)對(duì)編程伙伴
GitHub表示,相比大多數(shù)代碼助手,GitHub Copilot可以理解更大范圍的上下文。因此,無論是文檔字符串、注釋、函數(shù)名稱還是代碼本身,GitHub Copilot 都可以基于提供的上下文(已輸入的代碼)合成新代碼以進(jìn)行匹配。
如果真有如此可靠,那么正如GitHub所說,這項(xiàng)功能可以讓程序員丟掉很多的文檔閱讀工作,從而專注于編輯器。

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

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

包辦測試也是GitHub Copilot值得注意的亮點(diǎn),GitHub表示,測試是任何強(qiáng)大的軟件工程項(xiàng)目的支柱,“導(dǎo)入單元測試包,就可以讓 GitHub Copilot 自動(dòng)編寫與你的實(shí)現(xiàn)代碼匹配的測試?!?/span>

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

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

項(xiàng)目地址:https://copilot.github.com/
Copilot,專為編程而生
Brockman介紹說,GitHub Copilot的核心模型Codex借助了GPT-3強(qiáng)大的生成能力。
我們知道,GPT-3是OpenAI推出的超大規(guī)模自然語言生成模型,早期訓(xùn)練GPT-3時(shí),OpenAI無意教它如何幫助編寫代碼,它更像是一種通用語言模型,主要用于文本生成、語法修改等任務(wù)。
后來OpenAI向公眾開放API,這個(gè)基于文本訓(xùn)練的模型,被網(wǎng)友們玩出了50多種花樣,其中包括自動(dòng)生成代碼。OpenAI意識(shí)到了GPT-3在編寫代碼方面的潛力,并在其網(wǎng)站上提供了在線“代碼生成”服務(wù)。

幾十年來,微軟的研究人員一直在嘗試如何教計(jì)算機(jī)編寫代碼,但未取得顯著成果。此次與OpenAI合作,微軟將提供了強(qiáng)大 Azure 云計(jì)算能力和GitHub平臺(tái)(2018年被微軟收購)的大量語言編程代碼。
關(guān)于這款產(chǎn)品的代碼生成質(zhì)量,F(xiàn)riedman說,GitHub員工已經(jīng)做了大量嘗試,能夠確保GitHub Copilot生成安全、高質(zhì)量的代碼。他說:“我們已經(jīng)在系統(tǒng)中建立了一些安全機(jī)制,這些機(jī)制在減少各個(gè)領(lǐng)域能夠顯著減少出錯(cuò)幾率。”也就是說,GitHub Copilot并不能保證完全不出錯(cuò),它仍然只是一個(gè)輔助生成代碼工具。

官網(wǎng)報(bào)道說,Copilot的底層技術(shù)屬于微軟和OpenAI共有,今年夏天OpenAI將發(fā)布Codex模型,供第三方開發(fā)者使用。微軟也表示會(huì)發(fā)布該產(chǎn)品的一個(gè)版本,讓企業(yè)通過培訓(xùn)了解自己的編程風(fēng)格。但目前,微軟只提供公共存儲(chǔ)庫中存儲(chǔ)的代碼的服務(wù)。
這不是微軟第一次依靠OpenAI來提供智能軟件。上個(gè)月,微軟展示了powerapps Studio應(yīng)用程序的更新服務(wù),非技術(shù)人員可以使用它來編寫應(yīng)用程序——用戶輸入他們想要添加的元素單詞,GPT-3可提供一些必要代碼的選項(xiàng)。
網(wǎng)友討論
GitHub Copilot的發(fā)布在Reddit上引發(fā)了熱烈的討論,不少網(wǎng)友看好編碼自動(dòng)化的產(chǎn)業(yè)趨勢,網(wǎng)友@markbowick說道:
毫無疑問,這將極大地提高大多數(shù)程序員的日常編程生產(chǎn)力,并且(我認(rèn)為)這將是推動(dòng)全球軟件影響呈指數(shù)增長的最重要步驟之一。
值得注意的是,GPT-J(GPT-3 較小模型之一的開源實(shí)現(xiàn))在大量 GitHub 和 StackExchange 查詢存儲(chǔ)庫上進(jìn)行了訓(xùn)練,并且在特定編程相關(guān)任務(wù)上的表現(xiàn)明顯優(yōu)于 OpenAI 的其它模型。在接下來的幾個(gè)月里,我預(yù)期會(huì)看到性能更好的類似的(更大)模型。

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

還有人則注意到關(guān)于代碼所有權(quán)的問題,OpenAI發(fā)表了一項(xiàng)聲明,表示用戶使用GitHub Copilot寫代碼時(shí),代碼片段和建議結(jié)果將與 GitHub 和 OpenAI 共享,并用于診斷目的和改進(jìn)建議。同時(shí),為保護(hù)隱私,GitHub Copilot 不會(huì)使用用戶的私有代碼來為 GitHub Copilot 的其他用戶推薦代碼。
網(wǎng)友@touristtam對(duì)此聲明感到困惑,“他們是否擁有在用戶啟用GitHub Copilot時(shí)編寫的代碼?”

參考鏈接:
如果覺得有用,就請(qǐng)分享到朋友圈吧!
公眾號(hào)后臺(tái)回復(fù)“84”獲取第84期直播PPT~

# CV技術(shù)社群邀請(qǐng)函 #
備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)
即可申請(qǐng)加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動(dòng)交流~

