【為什麼我們要挑選這篇文章】寫程式,其實有很多機械性的工作。為了降低工程師負擔,不少人在開發自動寫程式的 AI。近日,OpenAI 發佈一種新機器學習工具 Codex,它能將英文直接翻譯成程式碼,消除繁瑣工作,給工程師更多時間深入思考問題。(責任編輯:郭家宏)
本文經 新智元(公眾號 ID:AI_era)授權轉載,轉載請連繫出處
作者:新智元
OpenAI 再次讓人驚艷!
只要你對這個 AI 發號施令,它就會將英語翻譯成程式碼。
比如:add this image of a rocketship
隨後,你的雙手離開鍵盤,AI 會自動寫程式,這張火箭照片就被添加進來了:
給它點難度:當火箭被點擊時,它的速度會 x4
這就是 OpenAI 發佈的一種新機器學習工具——Codex,可以將英語翻譯成程式碼。
哦對了,Codex 也正是為 GitHub Copilot 提供動力的模型。
近期,OpenAI 發佈了 Codex 的改進版本,API 以私有測試版的形式發佈出來,可以將自然語言轉換為程式碼的 AI 系統。
從 GPT-3 到 DALL·E,不久前大熱的 Copilot(背後也依賴 Open AI 的技術),OpenAI 這是要徹底「砸了」工程師的飯碗嗎?
然而,OpenAI 的 CTO 和聯合創辦人 Greg Brockman 則表示:「它消除了工程師繁瑣的工作。」
看看它還有哪些驚人功能?
Codex 能自動寫程式,給工程師更多時間思考問題
Codex 不僅能夠收到指令後自行寫程式,還能夠開發個小遊戲。
除了打字輸入指令,Codex 還能接受語音指令。
複製的文字有很多空格,手動刪除太費時間怎麼辦?
問題不大,Open AI 和微軟合作出了一個 Word 插件。
一聲令下,AI 就能完成任務。

執行力不錯,那準確率呢?
研究人員用 APPS 數據集來測量不同語言模型的編碼挑戰能力。
APPS 含有 5000 次訓練和 5000 次程式碼問題的測試。
測試結果顯示,120 億參數版的 Codex 能夠對 28.81% 的問題給出正確答案。
準確率遠遠超過「前浪」GPT-Neo 和 GPT-J。
經過不斷修正,最終 Codex-12B 的準確率提升到了 72.31%!
Greg Brockman 表示,編程有兩個部分:
一、認真思考一個問題並試圖理解它
二、將這些小片段映射到現有的程式碼中,不管它是一個庫、一個函數還是一個 API。
Codex 的目的,是讓工程師在第一部分上花費更多時間,而不是第二部分。
畢竟,大量的程式都是在重複或直接抄襲別人之前所做的事情。
當然,它可以是創造性的,但沒有人會在做基本的事情時發揮他們的想像力,比如部署一個網絡伺服器來測試一點程式碼。
比如部署 Web 伺服器來測試一些程式碼。布羅克曼用一條簡單的線做到了這一點:建立一個說明這一點的網頁。
利用 Codex,一秒鐘後,就有十幾行 JavaScript 以完全標準的方式做了這件事。
Codex 的侷限性:訓練效率不高
上面說了 Codex 不少優點,可以幫助用戶使用新的程式碼庫,減少上下文切換。
還可以讓非工程師編寫規範的程式碼。
但 Open AI 也承認,Codex 還有許多不足之處。
首先,Codex 的訓練樣本效率不高。
它的訓練集上有數十億行程式碼,包括來自 GitHub 的 Python 程式碼。
數十億行程式碼。
多有經驗的開發人員也不會遇到這麼多程式碼啊!
但就算有這麼多行程式碼的訓練,電腦科學的學生可能比 Codex-12B 更能解決問題。
比如 Codex 演示人員下了一個指令:Say Hello World with empathy

出來的結果把演示人員都給整笑了。
除此之外,Open AI 很實誠地在論文的預印本中指出 Codex 的其它缺點:
1. 過度依賴生成的輸出
2. 生成一些乍一看正確但其實是錯誤的代碼(因為互聯網上的訓練集或多或少帶有種族歧視,經過訓練後的 Codex 也會帶有偏見。)
3. Codex 的出現會對工程師的就業市場產生衝擊。
4. 大規模參數量還會產生大量碳足跡。
目前 Open AI Codex 還處於私測階段,後續會繼續擴大規模。
希望 Codex 的到來能夠讓寫程式變得更加高效。
延伸閱讀
• 10 年前讓 IBM 引以為傲的 AI 電腦系統「華生」現在去哪了?
• 用 AI 幫中小型企業打造公司險! 這家新創把投保提升到 Next Level
• 有科技助攻,舉重女神郭婞淳靠著 AI 教練創下奧運巔峰!
(本文經 新智元 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈数十亿行代码训练!OpenAI升级Codex,直接将书面语言转为计算机代码〉。首圖來源:Free-Photos/Pixabay)