天天看點

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

OpenAI招了一千多名外包人員,訓練AI學會像人類一樣一步步思考。如果ChatGPT「學成歸來」,碼農恐怕真的危了?!

最近有消息稱,OpenAI已經在悄悄地訓練ChatGPT,讓它學習人類的思考過程,進而真正掌握軟體工程,徹底代替「初級碼農」。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

OpenAI招外包大軍,教AI學人類思考

會程式設計的AI,幾家矽谷大廠都在做。

DeepMind的AlphaCode,據說「吊打72%人類程式員」,但尚未開放;傳聞中谷歌的「神秘項目」Pitchfork,也還在醞釀中;而微軟的GitHub Copilot主要是一個代碼補全工具。

要說完全代替人類碼農,它們還不夠格。

但如果真的讓ChatGPT學會了用人類思維去程式設計,這些友商/自家的産品恐怕要被吊打。

而從種種迹象看來,OpenAI似乎正在下一盤大棋。

根據Semafor的報道,在過去的六個月裡,OpenAI已經從拉美和東歐等地區招募了大約1000名外包人員,來訓練他們的AI碼代碼。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

這個新聞中,有兩個「華點」。

首先,為什麼地點選在拉美和東歐?這個咱們都明白,現在矽谷的泡沫戳破了,各家網際網路大廠都在絞盡腦汁「降本增效」,有的靠裁員,有的就去其他國家找廉價勞動力。

第二個「華點」是,這些外包人員中,很多人并不是計算機專業的畢業生,也不具備進階的程式設計技能。他們的作用是,編寫OpenAI期待實作的「自動化」基本代碼。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

具體來說,其中的60%從事「資料标注」工作——建立大量的圖像、音頻片段等資訊,用來訓練人工智能工具或自動駕駛汽車。

另外的40%則是實打實的程式員,他們正在為OpenAI的模型「手搓」資料,進而讓AI學習軟體工程任務。

此前,OpenAI一直是用從GitHub上抓取的代碼訓練其模型。

而這次,OpenAI想建立的資料集中,不僅有代碼,還包括背後用自然語言編寫的人類解釋。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

論文位址:https://arxiv.org/abs/2107.03374

對此,Semafor特地采訪了一位南美的開發者,而他曾無償為OpenAI完成了5小時的編碼測試。

在這個測試中,他被要求處理兩個任務。

首先,他會得到一個程式設計問題,OpenAI要求他用書面的英語解釋自己将如何處理這個問題。

然後,他需要提供一個解決方案。

如果他發現了一個bug,OpenAI就會要求他詳細說明問題是什麼,應該如何糾正,而不是簡單地修複。

「他們很可能是想用一種非常特殊的訓練資料來投喂這個模型,在這種情況下,就需要展示人類是如何一步步思考的。」這位開發者說。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

此前的ChatGPT,寫的代碼就被揪出過不少問題。

原因在于,ChatGPT沒有任何标記了對錯的内部記錄,它其實是一個統計模型。ChatGPT的答案,本質上就是從構成GPT-3的網際網路資料語料庫中收集的機率結果。

當時OpenAI也說,ChatGPT最合适的定位,應該是編碼輔助工具。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

但想象一下,如果OpenAI真的教會了ChatGPT「像人類一樣一步一步思考」,那它完全可以代替一些需要死記硬背的寫代碼工作,後果就是,一些「初級」碼農被徹底淘汰。

現在,矽谷的高管們正在設想這樣的産品,讓幾乎沒有程式設計經驗的人士向AI描述自己的創意和願景,然後就能建構出任何自己想要的東西,無論是一個網站,還是一個遊戲。

幾天前,特斯拉的前人工智能主管Andrej Karpathy剛剛在推特上說:「最熱門的新程式設計語言是英語」。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

用ChatGPT來debug,效果拔群

這可能并不是一個玩笑,比如當紅炸子雞ChatGPT,就很有潛力。

最近,一項來自美因茨大學和倫敦大學學院的研究發現,ChatGPT不僅可以出色地修複bug,而且開發者還能通過對話來顯著提高成功率。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

研究人員表示,ChatGPT的debug性能與常見的深度學習方法CoCoNut和Codex相差無幾,并且明顯優于标準的自動程式修複方法(APR)。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

論文位址:https://arxiv.org/abs/2301.08653

用ChatGPT來解決代碼問題并不新鮮,但與人類對話的獨特能力,使它比其他方法和模型更具優勢。

為了評估ChatGPT的debug性能,研究人員使用QuixBugs基準的40個純Python問題對其進行了測試,然後手動檢查建議的解決方案是否正确。

由于ChatGPT給出的答案存在一定的随機性,是以研究人員針對每個問題都會單獨測試4次。

與其他自動程式修複的基準不同,QuixBugs包含了相對較小的問題(代碼行數少),而這非常适合在對話系統中使用。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

在測試過程中,研究人員删除了所有的注釋,并詢問ChatGPT這段代碼是否有bug以及如何修複它。

比如,圖1中就是一個關于BITCOUNT問題的例子。其中,第1-2行是向ChatGPT提出的需求;從第4行開始是錯誤的代碼片段。

對于這個例子,我們希望ChatGPT的回答能解決第7行的錯誤,即nˆ= n - 1應該被替換為n &= n - 1。做為回應,ChatGPT要麼給出一段修複完的代碼,要麼給出一個描述告訴我們應該如何修改。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

結果顯示,ChatGPT解決了40個bug中的19個,與CoCoNut(19)和Codex(21)相當,但标準的APR方法隻解決了其中的7個問題。

當然,因為ChatGPT和Codex都是來自于同一個語言模型系列,是以解決問題的數量差不多也就不足為奇了。

此外,如果我們仔細觀察結果還可以發現,ChatGPT并不是每次都能解決基準測試中的bug。僅在BUCKETSORT和FLATTEN這兩個問題上,四次都發現了bug,而其他的通常隻能成功1-2次。

也就是說,使用者在實際使用時,可能需要嘗試數次才能獲得正确的結果。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

不過,ChatGPT有一個強大的優勢:我們可以在對話中與系統互動,更詳細地對問題進行說明,進而獲得正确的答案。

實際測試結果,也确實如此。

經過與模型更進一步的對話,研究人員成功地将ChatGPT的正确率重新整理到了77.5%,也就是修複了40個錯誤中的31個,遠超SOTA。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

至少,目前看來,這件事是完全有可能的:開發人員将不再需要編寫樣闆代碼。

相反,他們可以專注于複雜的應用程式架構或網絡安全等領域。

也就是說,雖然ChatGPT可能會完成某些程式設計工作,例如編寫通用函數或樣闆代碼,但它不會完全取代程式員。因為程式員的工作需要的不僅僅是寫代碼。

成為一名程式員需要技巧——能夠建構程式、遵循邏輯并生成比各部分總和更宏大的東西。

碼農:我自己「殺」自己

顯然,ChatGPT不是碼農們做出的第一個「自我疊代」的産品。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

咱們來排一排,那些會寫代碼的AI。

谷歌的Pitchfork

去年11月,坊間傳聞,谷歌正在醞釀一個秘密項目,這個産品會通過機器學習訓練代碼,自己編自己,自己修複bug,還能自己更新。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

據知情人士透露,這個項目起初是由Alphabet的登月部門——X部門開發的,代号為Pitchfork,去年夏天被轉移到了谷歌實驗室。

根據内部資料,Pitchfork的作用是「教代碼自行編寫、自行重寫」。

它能夠學習不同的程式設計風格,并且根據這些風格寫出代碼。

一名谷歌員工表示,開發Pitchfork的初衷是希望建立一個工具,将谷歌的Python代碼庫更新到新版本。

AlphaCode:吊打72%程式員

2022年2月,DeepMind推出了「AlphaCode」系統,可以使用人工智能生成代碼。

根據DeepMind的說法,AlphaCode可以與人類匹敵。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

DeepMind使用程式設計競賽平台Codeforces上托管的10個現有競賽來測試AlphaCode,它的總體排名位于前 54.3%,也就是說,它擊敗了46%的參賽者 。

DeepMind聲稱,在使用程式設計競賽平台Codeforces進行檢測時,AlphaCode解決了100萬個樣本中34.2%的問題。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

另外在過去6個月參加過比賽的使用者中,AlphaCode的資料排到了前28%,可以說「吊打72%人類程式員」!

當時,DeepMind就指出,雖然AlphaCode目前隻适用于具有競争性程式設計領域,但顯然,它未來的能力絕不會止步于此。

它為創造某些工具打開了大門,而這些工具将使程式設計變得更容易被人們接受,并且有朝一日可以完全實作自動化。

Copilot:代碼補全神器

再往前,在2021年,GitHub與OpenAI共同推出了一款AI程式設計神器——GitHub Copilot。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

輸入代碼時,Copilot會自動提示程式中接下來可能出現的代碼片段,就像一個經過訓練用Python或JavaScript說話的自動補全機器人。

Copilot能夠填充必要的代碼塊,隻要它們不是特别複雜或者特别有創造性,這對于相當于手工勞動的程式設計,可太有用了。

2022年6月22日,Copilot正式面向C端上線,定價10美元/月或100美元/年,并向學生使用者和流行開源項目的維護者免費提供。

現在,成千上萬的開發者都在用Copilot。在十幾種最流行的語言編寫代碼中——有高達40%是依靠它來生成的。

程式員危!傳OpenAI全球招外包大軍,手把手訓練ChatGPT取代碼農

GitHub預測,開發人員将在五年内使用Copilot編寫多達80%的代碼。

微軟首席技術官Kevin Scott還表示:「我們确信:GitHub Copilot可以應用到數千種不同類型的工作中。」

不過,因為涉嫌侵權,在釋出不到5個月後,Copilot已經被憤怒的程式員一舉告上法庭,索賠90億美元。

而學會「軟體工程思維」的ChatGPT,能吊打它們嗎?按OpenAI的速度,恐怕我們不用等太久。

編輯:Aeneas 好困

參考資料:

https://www.semafor.com/article/01/27/2023/openai-has-hired-an-army-of-contractors-to-make-basic-coding-obsolete

https://www.zdnet.com/article/chatgpt-can-write-code-now-researchers-say-its-good-at-fixing-bugs-too/

繼續閱讀