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