ChatGPT修bug橫掃全場,準確率達78%!網(wǎng)友:程序員要開心了
ChatGPT到底有多會修bug?
這事終于有人正兒八經(jīng)地搞研究了——
來自德國、英國的研究人員,專門搭了個“擂臺”來檢驗ChatGPT的這項本領(lǐng)。

除了ChatGPT之外,研究人員還找來了其它三位修bug的“AI猛將”,分別讓它們修復(fù)40個錯誤代碼。
結(jié)果真是不比不知道,一比嚇一跳。
ChatGPT準確修復(fù)了其中31個bug,遙遙領(lǐng)先第二名(21個),直接拿下“AI修bug界”的SOTA成績!

于是乎,這項研究引來了眾多網(wǎng)友的圍觀和討論,Reddit上發(fā)布此帖的標題更是用上了“小心”、“注意”這樣的字眼:

但事實上,這真的會讓程序員“?!眴??
我們不妨先來看下這項研究。
很會修bug的ChatGPT
雖然ChatGPT并非是為了專門修改bug而生,但自打它問世以來,不少網(wǎng)友們都發(fā)現(xiàn)它是具備這項能力的。
因此研究人員為了摸清ChatGPT到底能修改bug到什么程度,便引入了標準的錯誤修復(fù)基準集QuixBugs來進行評估。
以及與它同臺競技的AI選手,分別是CodeX、CoCoNut和Standard APR。
研究人員從QuixBugs中挑了40個問題,分別讓它們來修復(fù)bug。
讓ChatGPT來修bug的方法,就是在對話框里向它提問:
這個代碼有什么錯誤嗎?
在第一輪較量過后,結(jié)果如下:

從第一輪battle結(jié)果來看,ChatGPT修復(fù)了19個,CodeX修復(fù)了21個,CoCoNut修復(fù)了19個,Standard APR則是7個。
而且研究人員還發(fā)現(xiàn),ChatGPT的答案與CodeX最為相似;這是因為它倆是來自同一個語言模型家族。
這時候就會有小伙伴要問了,“ChatGPT不是還沒有CodeX厲害嗎”。
別急,不要忘了,ChatGPT的一個特點就是越問越“上道”。
例如在這個基準集中,有一個叫bitcount的問題,ChatGPT在剛才第一輪修復(fù)過程中是給了錯誤的答案:

原本ChatGPT應(yīng)該將第7行的 n ^ = n - 1 改為 n & = n - 1。
但在第一輪中它的回答是:
如果沒有更多關(guān)于預(yù)期行為和導(dǎo)致問題的輸入信息,我無法判斷程序是否存在錯誤。
于是在給予它更多信息之后,ChatGPT便答對了這個問題。
以此類推,在對第一輪沒答對的問題進行更多信息提示之后,ChatGPT的修bug能力有了大幅提高:

最終,ChatGPT在QuixBugs的40個問題里答對了31個。
網(wǎng)友憂喜參半
對于這樣的實驗結(jié)果,網(wǎng)友們對ChatGPT修bug拿下SOTA這事產(chǎn)生的態(tài)度卻不太一樣。
有網(wǎng)友認為這事不應(yīng)該讓程序員感到危機,而是會讓他們覺得開心才對。
言外之意,便是程序員們有了這么好用的工具,干活兒就會變得事半功倍。

不過也有人對此給出了不一樣的看法:
工作變得簡單,不也就意味著需要的人力更少了嗎?

但還網(wǎng)友覺得,活兒是干不完的:
即使AI能把開發(fā)時間縮短一個數(shù)量級,也只是意味著程序員將更快處理下一個工作。

整體來看,ChatGPT很會修bug,并不會給程序員帶來什么致命傷害。
但若是把目光放到OpenAI其他的行動中呢?
全球招外包訓(xùn)練ChatGPT寫代碼
在此之前,OpenAI就表示過ChatGPT的重要用途之一是幫助程序員檢查代碼。
換言之,它被定位可用的輔助工具。
相比“ChatGPT帶來威脅”的看法,等ChatGPT能力徹底進化,程序員都不用再怕寫bug了。
OpenAI布局的棋盤上,可不只有改bug偷塔程序員崗位這一件事。
為了讓它更大更強,OpenAI被曝在拉美和東歐等地區(qū),提供了1000個外包崗位。
外包員工的主要工作是標注數(shù)據(jù),以及訓(xùn)練ChatGPT寫代碼
這1000人中,40%是程序員,他們?yōu)镺penAI的模型創(chuàng)建數(shù)據(jù),用來學(xué)習(xí)軟件工程任務(wù)。
一直以來,OpenAI的訓(xùn)練數(shù)據(jù)是從GitHub上抓取的。
現(xiàn)在外包程序員們新手搓的數(shù)據(jù)集,不僅包括代碼行,還包括代碼行背后的人類思考邏輯步驟。
有位南美的軟件開發(fā)人員爆料,他為OpenAI完成了五小時的無償編碼測試。
整個過程中,他的任務(wù)分為兩部分。
用書面英語解釋如何處理一個編碼問題;
提供解決方案。
如果發(fā)現(xiàn)bug,OpenAI會向他詳細詢問bug的具體情況,并請教如何修正。
程序員需要展示思考問題的每個步驟,他據(jù)此猜測OpenAI很可能想為ChatGPT提供非常具體的訓(xùn)練數(shù)據(jù)。
特斯拉前AI主管Andrej Karpathy在推特上調(diào)侃:
最新的熱門編程語言是英語。

不過話說回來,ChatGPT修bug能力強是好事,要真能搞進化到可以完成代碼里死記硬背的部分,也是好事。
畢竟OpenAI成立時對外宣稱的宗旨,就是希望“確保通用人工智能可以造福全人類”。
雖然乍一看它這些年做的事,有點像在致力于用一部分人的努力,讓更多人失業(yè)。
從Dota2賽場上碾壓人類,到GPT-3、DALL-E2、ChatGPT的閃耀表現(xiàn),它帶來的新產(chǎn)品總是伴隨著“快要讓xxx失業(yè)了”的議論聲。
但無論如何,商業(yè)卻一直對它青睞有加。
就目前而言,OpenAI的主要商業(yè)模式是API費用、token費用和軟件許可。
OpenAI近期還發(fā)布了ChatGPT的付費版ChatGPT Pro,每月費用42美元(約合285元人民幣)。

雖然機器人對話初創(chuàng)公司如雨后春筍般冒出,但諸多跡象表明市場對OpenAI的持續(xù)看好。
微軟剛剛宣布將向OpenAI加碼投資數(shù)十億美元,并將OpenAI的模型融入微軟必應(yīng)等消費級和企業(yè)級產(chǎn)品中。
根據(jù)知情人士透露,此次追加投資數(shù)額約為100億美元。
與此同時,WSJ披露的消息顯示,1月初,億萬富翁Peter Thiel創(chuàng)立的風(fēng)投基金Founders Fund正在就投資OpenAI進行談判。
據(jù)悉,融資金額將至少達3億美元。

One More Thing
在第一輪實驗中,ChatGPT并沒有解決QuixBugs數(shù)據(jù)集的bitcount問題。
但若是你現(xiàn)在再重頭問一次這個問題,就會發(fā)現(xiàn)ChatGPT可以“一遍過”:

那么這是否意味著ChatGPT已經(jīng)從這次研究過程中學(xué)會求解了呢?
參考鏈接:
[1] https://arxiv.org/abs/2301.08653
[2] https://www.pcmag.com/news/watch-out-software-engineers-chatgpt-is-now-finding-fixing-bugs-in-code
[3] https://www.reddit.com/r/technology/comments/10oaw6n/watch_out_software_engineers_chatgpt_is_now/
[4] https://en.wi.bwl.uni-mainz.de/dominik-sobania/
— 完 —