ChatGPT到底有多會修 bug?
這事終于有人正兒八經地搞研究了——
來自德國、英國的研究人員,專門搭了個 " 擂台 " 來檢驗 ChatGPT 的這項本領。
除了 ChatGPT 之外,研究人員還找來了其它三位修 bug 的 "AI 猛将 ",分别讓它們修複40 個錯誤代碼。
結果真是不比不知道,一比吓一跳。
ChatGPT 準确修複了其中31 個bug,遙遙領先第二名(21 個),直接拿下 "AI 修 bug 界 " 的SOTA成績!
于是乎,這項研究引來了衆多網友的圍觀和讨論,Reddit 上發布此帖的标題更是用上了" 小心 "、" 注意 "這樣的字眼:
但事實上,這真的會讓程序員 " 危 " 嗎?
我們不妨先來看下這項研究。
很會修 bug 的 ChatGPT
雖然 ChatGPT 并非是為了專門修改 bug 而生,但自打它問世以來,不少網友們都發現它是具備這項能力的。
因此研究人員為了摸清 ChatGPT 到底能修改 bug 到什麼程度,便引入了标準的錯誤修複基準集QuixBugs來進行評估。
以及與它同台競技的 AI 選手,分别是CodeX、CoCoNut和Standard APR。
研究人員從 QuixBugs 中挑了 40 個問題,分别讓它們來修複 bug。
讓 ChatGPT 來修 bug 的方法,就是在對話框裡向它提問:
這個代碼有什麼錯誤嗎?
在第一輪較量過後,結果如下:
從第一輪 battle 結果來看,ChatGPT 修複了 19 個,CodeX 修複了 21 個,CoCoNut 修複了 19 個,Standard APR 則是 7 個。
而且研究人員還發現,ChatGPT 的答案與 CodeX 最為相似;這是因為它倆是來自同一個語言模型家族。
這時候就會有小夥伴要問了,"ChatGPT 不是還沒有 CodeX 厲害嗎 "。
别急,不要忘了,ChatGPT 的一個特點就是越問越 " 上道 "。
例如在這個基準集中,有一個叫 bitcount 的問題,ChatGPT 在剛才第一輪修複過程中是給了錯誤的答案:
原本 ChatGPT 應該将第 7 行的 n ^ = n - 1 改為 n & = n - 1。
但在第一輪中它的回答是:
如果沒有更多關于預期行為和導緻問題的輸入信息,我無法判斷程序是否存在錯誤。
于是在給予它更多信息之後,ChatGPT 便答對了這個問題。
以此類推,在對第一輪沒答對的問題進行更多信息提示之後,ChatGPT 的修 bug 能力有了大幅提高:
最終,ChatGPT 在 QuixBugs 的 40 個問題裡答對了 31 個。
網友憂喜參半
對于這樣的實驗結果,網友們對 ChatGPT 修 bug 拿下 SOTA 這事産生的态度卻不太一樣。
有網友認為這事不應該讓程序員感到危機,而是會讓他們覺得開心才對。
言外之意,便是程序員們有了這麼好用的工具,幹活兒就會變得事半功倍。
不過也有人對此給出了不一樣的看法:
工作變得簡單,不也就意味着需要的人力更少了嗎?
但還網友覺得,活兒是幹不完的:
即使 AI 能把開發時間縮短一個數量級,也隻是意味着程序員将更快處理下一個工作。
整體來看,ChatGPT 很會修 bug,并不會給程序員帶來什麼緻命傷害。
但若是把目光放到 OpenAI 其他的行動中呢?
全球招外包訓練 ChatGPT 寫代碼
在此之前,OpenAI 就表示過 ChatGPT 的重要用途之一是幫助程序員檢查代碼。
換言之,它被定位可用的輔助工具。
相比 "ChatGPT 帶來威脅 " 的看法,等 ChatGPT 能力徹底進化,程序員都不用再怕寫 bug 了。
OpenAI 布局的棋盤上,可不隻有改 bug 偷塔程序員崗位這一件事。
為了讓它更大更強,OpenAI 被曝在拉美和東歐等地區,提供了1000 個外包崗位。
外包員工的主要工作是标注數據,以及訓練 ChatGPT寫代碼
這 1000 人中,40% 是程序員,他們為 OpenAI 的模型創建數據,用來學習軟件工程任務。
一直以來,OpenAI 的訓練數據是從 GitHub 上抓取的。
現在外包程序員們新手搓的數據集,不僅包括代碼行,還包括代碼行背後的人類思考邏輯步驟。
有位南美的軟件開發人員爆料,他為 OpenAI 完成了五小時的無償編碼測試。
整個過程中,他的任務分為兩部分。
用書面英語解釋如何處理一個編碼問題;
提供解決方案。
如果發現 bug,OpenAI 會向他詳細詢問 bug 的具體情況,并請教如何修正。
程序員需要展示思考問題的每個步驟,他據此猜測 OpenAI 很可能想為 ChatGPT 提供非常具體的訓練數據。
特斯拉前 AI 主管 Andrej Karpathy 在推特上調侃:
最新的熱門編程語言是英語。
不過話說回來,ChatGPT 修 bug 能力強是好事,要真能搞進化到可以完成代碼裡死記硬背的部分,也是好事。
畢竟 OpenAI 成立時對外宣稱的宗旨,就是希望 " 确保通用人工智能可以造福全人類 "。
雖然乍一看它這些年做的事,有點像在緻力于用一部分人的努力,讓更多人失業。
從 Dota2 賽場上碾壓人類,到 GPT-3、DALL-E2、ChatGPT 的閃耀表現,它帶來的新産品總是伴随着 " 快要讓 xxx 失業了 " 的議論聲。
但無論如何,商業卻一直對它青睐有加。
就目前而言,OpenAI 的主要商業模式是 API 費用、token 費用和軟件許可。
OpenAI 近期還發布了 ChatGPT 的付費版ChatGPT Pro,每月費用 42 美元(約合 285 元人民币)。
雖然機器人對話初創公司如雨後春筍般冒出,但諸多迹象表明市場對 OpenAI 的持續看好。
微軟剛剛宣布将向 OpenAI 加碼投資數十億美元,并将 OpenAI 的模型融入微軟必應等消費級和企業級産品中。
根據知情人士透露,此次追加投資數額約為 100 億美元。
與此同時,WSJ 披露的消息顯示,1 月初,億萬富翁 Peter Thiel 創立的風投基金 Founders Fund 正在就投資 OpenAI 進行談判。
據悉,融資金額将至少達 3 億美元。
One More Thing
在第一輪實驗中,ChatGPT 并沒有解決 QuixBugs 數據集的 bitcount 問題。
但若是你現在再重頭問一次這個問題,就會發現 ChatGPT 可以 " 一遍過 ":
那麼這是否意味着 ChatGPT 已經從這次研究過程中學會求解了呢?
參考鍊接:
[ 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/