DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師

機器之心發表於2022-12-09

今年年初,DeepMind 釋出了基於 Transformer 的新模型 AlphaCode,該模型實現了大規模程式碼生成。現在,AlphaCode 又在《Science》上發表了新論文,研究登上《Science》封面。

DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
論文地址:https://www.science.org/doi/10.1126/science.abq1158

程式碼生成一直被認為是一項重要挑戰。AlphaCode 論文通訊作者、DeepMind 首席科學家 Oriol Vinyals 用一張圖生動描述了智慧與程式設計之間的關係,說明 AI 模型完成程式設計競賽問題是非常困難的,而 AlphaCode 做到了。
DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
具體而言,研究者將 AlphaCode 放在 Codeforces 挑戰中進行了測試,Codeforces 是全球知名的程式設計競賽平臺,類似於國際象棋中使用的 Elo 評級系統,聚集全世界頂尖程式設計者。Codeforces 每週會分享程式設計挑戰和問題排名。不同於程式設計人員在打造商業應用程式時可能面臨的任務,Codeforces 的挑戰更加獨立,需要對電腦科學中的演算法和理論概念有更廣泛的瞭解,一般是結合邏輯、數學和編碼專業知識的非常專業的難題。

AlphaCode 針對 Codeforces 網站上 5000 名使用者解決的 10 項挑戰進行了測試,總體排名位於前 54.3%,也就是說它擊敗了 46% 的參賽者 。
DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
我們來看一個 AlphaCode 生成程式碼的具體例子:在測試 AlphaCode 的一項挑戰中,試題要求參賽者找到一種方法,使用一組有限的輸入將一個隨機、重複的 s 和 t 字母字串轉換為另一個相同字母的字串。例如,競爭對手不能只輸入新字母,而必須使用「backspace」命令刪除原始字串中的幾個字母。對於 AlphaCode 來說,這只是中等難度的挑戰:
DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
問題來自 Codeforces,解決方案是由 AlphaCode 生成的。

Codeforces 創始人 Mike Mirzayanov 表示:「我可以肯定地說 AlphaCode 的結果超出了我的預期。對此,有人懷疑我這麼樂觀,因為他們認為即使在簡單的競賽問題中,參賽選手不僅需要編寫常規演算法,還需要創新新演算法,而這一部分是最困難的。但目前看來,AlphaCode 的表現與一個前途無限的人類參賽者相當,我迫不及待地想看看未來會發生什麼!」

AlphaCode 為什麼這麼優秀?

想要 AI 在程式設計比賽中脫穎而出並不容易,DeepMind 透過將大規模 transformer 以及取樣、過濾相結合,AlphaCode 在解決問題數量上取得了重大進展。DeepMind 在選定的公共 GitHub 程式碼上預訓練模型,並在相對較小的程式設計資料集上對其進行微調。

在評估期間,研究者為每個問題建立了大量的 C++ 和 Python 程式,且數量級比以前的工作大幾個數量級。然後對這些解決方案進行篩選、聚類和重新排序,將這些解決方案分配到一個由 10 個候選程式組成的小集合中,並提交給外部評估。這個自動化系統取代了競爭對手的除錯、編譯、透過測試和最終提交的反覆試驗過程。
DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
在 Codeforces 的允許下,DeepMind 透過模擬參與 10 場比賽來評估 AlphaCode。參賽者僅憑複製以前的解決方案等捷徑來參加比賽是不可能取得好成績的,相反,模型必須創造出新穎有趣的解決方案。

此外,該研究還在 CodeContests 測試集上檢驗了問題解決率和樣本量的關係,結果如下圖所示:
DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
來自谷歌的世界級競賽程式設計師 Petr Mitrichev 表示:「解決競爭性程式設計問題是一件非常困難的事情,需要良好的編碼技能和人類解決問題的創造力。AlphaCode 在這一領域取得的進展給我留下了深刻的印象,很高興看到 AlphaCode 使用語言理解能力來生成程式碼並進行隨機探索以建立新的解決方案。」
DeepMind攜AlphaCode登Science封面,寫程式碼能力不輸程式設計師
DeepMind 表示將繼續這一探索,研發更智慧的 AI 模型,這僅僅是一個開始。

參考連結:
https://www.deepmind.com/blog/competitive-programming-with-alphacode

相關文章