“AI程序員”上崗,軟件開發(fā)的“第三次工業(yè)革命”來臨?

“AI程序員”上崗,軟件開發(fā)的“第三次工業(yè)革命”來臨?
2021年07月01日 20:16 澎湃新聞

  澎湃新聞見習(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首席執(zhí)行官Chris Wanstrath、微軟首席執(zhí)行官Satya Nadella和GitHub首席執(zhí)行官Nat Friedman在舊金山GitHub總部。(來源:微軟)

  GitHub Copilot建立在OpenAI Codex的新算法之上,OpenAI首席技術(shù)官Greg Brockman將其描述為GPT-3的后代。GPT-3是OpenAI的旗艦語言生成算法,可以生成無法區(qū)分是否為人類書寫的文本。他進(jìn)一步解釋道,編程涉及提出關(guān)于如何做某事的想法,然后實(shí)施它,Copilot擅長實(shí)施。

  OpenAI是一家人工智能初創(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)心。”

  本質(zhì)上來說,Copilot是一款A(yù)I結(jié)對編程工具。程序員可以在機(jī)器輔助下進(jìn)行編程,并且在與AI共同完成程序編寫的過程中,程序員會及時糾正機(jī)器人的錯誤,進(jìn)一步改進(jìn)機(jī)器人學(xué)習(xí)的模型。

  GitHub認(rèn)為該工具是結(jié)對編程的重大進(jìn)展,程序員在編寫代碼時有了一個“虛擬的幫手”,它可以捕捉到程序員的錯誤,加速開發(fā)過程。

  這里說的結(jié)對編程(Pair programming)是計算機(jī)編程領(lǐng)域的術(shù)語,用來代指兩個程序員在一臺計算機(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)局做出的承諾。”

  GitHub也表示,并不是所有使用的代碼都經(jīng)過了漏洞、不安全實(shí)踐或個人數(shù)據(jù)的審查。因此,他們也設(shè)置了一些過濾器來防止Copilot生成攻擊性的語言,但效果可能并不完美,需要后續(xù)完善。

  GitHub Copilot首先會出現(xiàn)在微軟的免費(fèi)開源產(chǎn)品Visual Studio Code中,未來,微軟計劃將其整合到商業(yè)產(chǎn)品Visual Studio中。

AIgithub微軟程序員
新浪科技公眾號
新浪科技公眾號

“掌”握科技鮮聞 (微信搜索techsina或掃描左側(cè)二維碼關(guān)注)

創(chuàng)事記

科學(xué)探索

科學(xué)大家

蘋果匯

眾測

專題

官方微博

新浪科技 新浪數(shù)碼 新浪手機(jī) 科學(xué)探索 蘋果匯 新浪眾測

公眾號

新浪科技

新浪科技為你帶來最新鮮的科技資訊

蘋果匯

蘋果匯為你帶來最新鮮的蘋果產(chǎn)品新聞

新浪眾測

新酷產(chǎn)品第一時間免費(fèi)試玩

新浪探索

提供最新的科學(xué)家新聞,精彩的震撼圖片