澎湃新聞見習(xí)記者 邵文
近日,GitHub、GitHub的母公司微軟和OpenAI聯(lián)合推出了“AI配對程序員”GitHub Copilot的技術(shù)預(yù)覽版,這也是微軟向OpenAI投資10億美元后的首個主要成果。
GitHub Copilot官網(wǎng)中將其描述為:“你的AI配對程序員”,可直接在編輯器中獲取有關(guān)整行或整個函數(shù)的建議,幫助你更快完成編程工作。
GitHub Copilot不是搜索引擎,它提出的絕大多數(shù)代碼建議都是新生成的,此前從未出現(xiàn)過。它會分析用戶已編寫的代碼,并生成新的匹配代碼,包括之前調(diào)用過的特定函數(shù)。可實(shí)現(xiàn)的主要功能有:根據(jù)注釋寫出代碼、快速評估不同方法、編寫測試、自動填充重復(fù)代碼、給出整行代碼或整個函數(shù)的補(bǔ)全建議以及適應(yīng)用戶編寫代碼的方式。
AI開始搶奪程序員的工作了?
從左起,GitHub首席執(zhí)行官Chris Wanstrath、微軟首席執(zhí)行官Satya Nadella和GitHub首席執(zhí)行官Nat Friedman在舊金山GitHub總部。(來源:微軟)
GitHub Copilot建立在Open AI Codex的新算法之上,Open AI首席技術(shù)官Greg Brockman將其描述為GPT-3的后代。GPT-3是Open AI的旗艦語言生成算法,可以生成無法區(qū)分是否為人類書寫的文本。他進(jìn)一步解釋道,編程涉及提出關(guān)于如何做某事的想法,然后實(shí)施它,Copilot擅長實(shí)施。
Open AI是一家人工智能初創(chuàng)公司,現(xiàn)由Y Combinator前總裁Sam Altman領(lǐng)導(dǎo)。自Altman領(lǐng)導(dǎo)以來,OpenAI已經(jīng)從非營利轉(zhuǎn)向“有限盈利”(capped-profi)模式,2019年接受了微軟的投資。2020年9月,微軟獲得OpenAIGPT-3語言模型的獨(dú)家許可。
GitHub首席執(zhí)行官Nat Friedman在博客中表示,Copilot適用于廣泛的框架和語言,但目前發(fā)布的技術(shù)預(yù)覽版對Python、JavaScript、TypeScript、Ruby和Go尤其適用。
對于AI替代程序員的熱議,Nat Friedman表示,“軟件開發(fā)正迎來自己的‘第三次工業(yè)革命’。第一次革命是編譯器、調(diào)試器、垃圾收集器以及語言等工具的出現(xiàn),極大提升了開發(fā)者的工作效率;第二次則以開源為龍頭,幫助全球開發(fā)者社區(qū)匯聚起來并在彼此的開發(fā)成果基礎(chǔ)之上不斷推進(jìn);第三次革命就在當(dāng)下,嘗試在編碼當(dāng)中使用AI技術(shù)。在發(fā)展成熟之后,開發(fā)人員的日常工作內(nèi)容將有巨大改變——但仍然有很多工作可做、也只能由人類開發(fā)者完成,因此不用太擔(dān)心?!?/p>
本質(zhì)上來說,Copilot是一款A(yù)I結(jié)對編程工具。程序員可以在機(jī)器輔助下進(jìn)行編程,并且在與AI共同完成程序編寫的過程中,程序員會及時(shí)糾正機(jī)器人的錯誤,進(jìn)一步改進(jìn)機(jī)器人學(xué)習(xí)的模型。
GitHub認(rèn)為該工具是結(jié)對編程的重大進(jìn)展,程序員在編寫代碼時(shí)有了一個“虛擬的幫手”,它可以捕捉到程序員的錯誤,加速開發(fā)過程。
這里說的結(jié)對編程(Pair programming)是計(jì)算機(jī)編程領(lǐng)域的術(shù)語,用來代指兩個程序員在一臺計(jì)算機(jī)上共同工作,一個人輸入代碼,而另一個人審查輸入的每一行代碼,輸入代碼的人稱作駕駛員,而審查代碼的人稱作觀察員。為了保證結(jié)對編程的糾偏能力,兩個程序員經(jīng)常互換角色。
近年來人機(jī)結(jié)對編程(MMPP)不斷成熟,AI結(jié)對編程(AIPP,可以簡單理解為人機(jī)結(jié)對編程的升級版)產(chǎn)品也逐步成熟落地,目前典型的落地產(chǎn)品有aiXcoder智能編程機(jī)器人和最新亮相的Copilot。
對于Copilot能實(shí)現(xiàn)怎樣的效果,官網(wǎng)做了如下演示。
根據(jù)注釋寫出代碼:編程者給出一條描述代碼邏輯的注釋,Copilot就能自動生成代碼。
代碼補(bǔ)全:提取代碼上下文,即可給出整行代碼或整個函數(shù)的補(bǔ)全建議。
自動填充重復(fù)代碼:
編寫測試:導(dǎo)入單元測試包,即可幫開發(fā)者實(shí)現(xiàn)與代碼匹配的軟件測試。
快速評估不同方法:
在編程中,同一個函數(shù)常有多種實(shí)現(xiàn)方法,編程者通常會根據(jù)代碼的實(shí)現(xiàn)效果和運(yùn)行性能選擇最合適的方法,Copilot可一鍵查看多種實(shí)現(xiàn)方法。
“這很可能是讓編程本身更平易近人的事情之一,”微軟CTO凱文·斯科特表示。
Copilot的核心Codex模型使用GitHub的數(shù)十億行公開可用代碼以及英語示例進(jìn)行訓(xùn)練。對于由此引發(fā)的爭議,F(xiàn)riedman回應(yīng)稱,“總體來說:(1)在公共數(shù)據(jù)上訓(xùn)練機(jī)器學(xué)習(xí)系統(tǒng)屬于合理的使用方式;(2)輸出結(jié)果的所有權(quán)歸于操作者,跟傳統(tǒng)的編譯器沒什么區(qū)別。具體到訓(xùn)練問題上,大家也可以看到OpenAI向美國專利商標(biāo)局做出的承諾?!?/p>
GitHub也表示,并不是所有使用的代碼都經(jīng)過了漏洞、不安全實(shí)踐或個人數(shù)據(jù)的審查。因此,他們也設(shè)置了一些過濾器來防止Copilot生成攻擊性的語言,但效果可能并不完美,需要后續(xù)完善。
GitHub Copilot首先會出現(xiàn)在微軟的免費(fèi)開源產(chǎn)品Visual Studio Code中,未來,微軟計(jì)劃將其整合到商業(yè)產(chǎn)品Visual Studio中。
責(zé)任編輯:李躍群
校對:張艷
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。