ChatGPT 到底有多會修 bug?
這事終于有人正兒八經(jīng)地搞研究了 ——
來自德國、英國的研究人員,專門搭了個“擂臺”來檢驗 ChatGPT 的這項本領(lǐng)。
除了 ChatGPT 之外,研究人員還找來了其它三位修 bug 的“AI 猛將”,分別讓它們修復(fù) 40 個錯誤代碼。
結(jié)果真是不比不知道,一比嚇一跳。
ChatGPT 準(zhǔn)確修復(fù)了其中 31 個 bug,遙遙領(lǐng)先第二名(21 個),直接拿下“AI 修 bug 界”的 SOTA 成績!
于是乎,這項研究引來了眾多網(wǎng)友的圍觀和討論,Reddit 上發(fā)布此帖的標(biāo)題更是用上了“小心”、“注意”這樣的字眼:
但事實上,這真的會讓程序員“?!眴幔?/p>
我們不妨先來看下這項研究。
很會修 bug 的 ChatGPT
雖然 ChatGPT 并非是為了專門修改 bug 而生,但自打它問世以來,不少網(wǎng)友們都發(fā)現(xiàn)它是具備這項能力的。
因此研究人員為了摸清 ChatGPT 到底能修改 bug 到什么程度,便引入了標(biāo)準(zhǔn)的錯誤修復(fù)基準(zhǔn)集 QuixBugs 來進(jìn)行評估。
以及與它同臺競技的 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 的一個特點就是越問越“上道”。
例如在這個基準(zhǔn)集中,有一個叫 bitcount 的問題,ChatGPT 在剛才第一輪修復(fù)過程中是給了錯誤的答案:
原本 ChatGPT 應(yīng)該將第 7 行的 n ^ = n - 1 改為 n & = n - 1。
但在第一輪中它的回答是:
如果沒有更多關(guān)于預(yù)期行為和導(dǎo)致問題的輸入信息,我無法判斷程序是否存在錯誤。
于是在給予它更多信息之后,ChatGPT 便答對了這個問題。
以此類推,在對第一輪沒答對的問題進(jìn)行更多信息提示之后,ChatGPT 的修 bug 能力有了大幅提高:
最終,ChatGPT 在 QuixBugs 的 40 個問題里答對了 31 個。
網(wǎng)友憂喜參半
對于這樣的實驗結(jié)果,網(wǎng)友們對 ChatGPT 修 bug 拿下 SOTA 這事產(chǎn)生的態(tài)度卻不太一樣。
有網(wǎng)友認(rèn)為這事不應(yīng)該讓程序員感到危機(jī),而是會讓他們覺得開心才對。
言外之意,便是程序員們有了這么好用的工具,干活兒就會變得事半功倍。
不過也有人對此給出了不一樣的看法:
工作變得簡單,不也就意味著需要的人力更少了嗎?
但還網(wǎng)友覺得,活兒是干不完的:
即使 AI 能把開發(fā)時間縮短一個數(shù)量級,也只是意味著程序員將更快處理下一個工作。
整體來看,ChatGPT 很會修 bug,并不會給程序員帶來什么致命傷害。
但若是把目光放到 OpenAI 其他的行動中呢?
全球招外包訓(xùn)練 ChatGPT 寫代碼
在此之前,OpenAI 就表示過 ChatGPT 的重要用途之一是幫助程序員檢查代碼。
換言之,它被定位可用的輔助工具。
相比“ChatGPT 帶來威脅”的看法,等 ChatGPT 能力徹底進(jìn)化,程序員都不用再怕寫 bug 了。
OpenAI 布局的棋盤上,可不只有改 bug 偷塔程序員崗位這一件事。
為了讓它更大更強(qiáng),OpenAI 被曝在拉美和東歐等地區(qū),提供了 1000 個外包崗位。
外包員工的主要工作是標(biāo)注數(shù)據(jù),以及訓(xùn)練 ChatGPT 寫代碼
這 1000 人中,40% 是程序員,他們?yōu)?OpenAI 的模型創(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 會向他詳細(xì)詢問 bug 的具體情況,并請教如何修正。
程序員需要展示思考問題的每個步驟,他據(jù)此猜測 OpenAI 很可能想為 ChatGPT 提供非常具體的訓(xùn)練數(shù)據(jù)。
特斯拉前 AI 主管 Andrej Karpathy 在推特上調(diào)侃:
最新的熱門編程語言是英語。
不過話說回來,ChatGPT 修 bug 能力強(qiáng)是好事,要真能夠進(jìn)化到可以完成代碼里死記硬背的部分,也是好事。
畢竟 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 元人民幣)。
雖然機(jī)器人對話初創(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ìn)行談判。
據(jù)悉,融資金額將至少達(dá) 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/
本文來自微信公眾號:量子位 (ID:QbitAI),作者:金磊 衡宇
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。