澎湃新聞見習(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ù)。可實現(xiàn)的主要功能有:根據(jù)注釋寫出代碼、快速評估不同方法、編寫測試、自動填充重復(fù)代碼、給出整行代碼或整個函數(shù)的補全建議以及適應(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ū)分是否為人類書寫的文本。他進一步解釋道,編程涉及提出關(guān)于如何做某事的想法,然后實施它,Copilot擅長實施。
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語言模型的獨家許可。
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ǔ)之上不斷推進;第三次革命就在當(dāng)下,嘗試在編碼當(dāng)中使用AI技術(shù)。在發(fā)展成熟之后,開發(fā)人員的日常工作內(nèi)容將有巨大改變——但仍然有很多工作可做、也只能由人類開發(fā)者完成,因此不用太擔(dān)心?!?/p>
本質(zhì)上來說,Copilot是一款A(yù)I結(jié)對編程工具。程序員可以在機器輔助下進行編程,并且在與AI共同完成程序編寫的過程中,程序員會及時糾正機器人的錯誤,進一步改進機器人學(xué)習(xí)的模型。
GitHub認為該工具是結(jié)對編程的重大進展,程序員在編寫代碼時有了一個“虛擬的幫手”,它可以捕捉到程序員的錯誤,加速開發(fā)過程。
這里說的結(jié)對編程(Pair programming)是計算機編程領(lǐng)域的術(shù)語,用來代指兩個程序員在一臺計算機上共同工作,一個人輸入代碼,而另一個人審查輸入的每一行代碼,輸入代碼的人稱作駕駛員,而審查代碼的人稱作觀察員。為了保證結(jié)對編程的糾偏能力,兩個程序員經(jīng)?;Q角色。
近年來人機結(jié)對編程(MMPP)不斷成熟,AI結(jié)對編程(AIPP,可以簡單理解為人機結(jié)對編程的升級版)產(chǎn)品也逐步成熟落地,目前典型的落地產(chǎn)品有aiXcoder智能編程機器人和最新亮相的Copilot。
對于Copilot能實現(xiàn)怎樣的效果,官網(wǎng)做了如下演示。
根據(jù)注釋寫出代碼:編程者給出一條描述代碼邏輯的注釋,Copilot就能自動生成代碼。
代碼補全:提取代碼上下文,即可給出整行代碼或整個函數(shù)的補全建議。
自動填充重復(fù)代碼:
編寫測試:導(dǎo)入單元測試包,即可幫開發(fā)者實現(xiàn)與代碼匹配的軟件測試。
快速評估不同方法:
在編程中,同一個函數(shù)常有多種實現(xiàn)方法,編程者通常會根據(jù)代碼的實現(xiàn)效果和運行性能選擇最合適的方法,Copilot可一鍵查看多種實現(xiàn)方法。
“這很可能是讓編程本身更平易近人的事情之一,”微軟CTO凱文·斯科特表示。
Copilot的核心Codex模型使用GitHub的數(shù)十億行公開可用代碼以及英語示例進行訓(xùn)練。對于由此引發(fā)的爭議,F(xiàn)riedman回應(yīng)稱,“總體來說:(1)在公共數(shù)據(jù)上訓(xùn)練機器學(xué)習(xí)系統(tǒng)屬于合理的使用方式;(2)輸出結(jié)果的所有權(quán)歸于操作者,跟傳統(tǒng)的編譯器沒什么區(qū)別。具體到訓(xùn)練問題上,大家也可以看到OpenAI向美國專利商標局做出的承諾。”
GitHub也表示,并不是所有使用的代碼都經(jīng)過了漏洞、不安全實踐或個人數(shù)據(jù)的審查。因此,他們也設(shè)置了一些過濾器來防止Copilot生成攻擊性的語言,但效果可能并不完美,需要后續(xù)完善。
GitHub Copilot首先會出現(xiàn)在微軟的免費開源產(chǎn)品Visual Studio Code中,未來,微軟計劃將其整合到商業(yè)產(chǎn)品Visual Studio中。
責(zé)任編輯:李躍群
校對:張艷
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。