除了其Gemini生成式人工智能模型之外,谷歌今天早上發布了AlphaCode 2,這是谷歌DeepMind實驗室大約一年前推出的代碼生成AlphaCode的改進版本。
事實上,AlphaCode 2實際上由Gemini提供支持,或者至少是由Gemini的某個變體(Gemini Pro)在編程競賽數據上進行了優化。谷歌表示,AlphaCode 2在至少一個基準測試上要比其前身更具能力。
根據谷歌的說法,在Codeforces平臺上舉辦的一些編程競賽的子集中,跨足Python、Java、C++和Go等多種語言的AlphaCode 2在平均水平上表現優于大約85%的競爭對手。這與其前身在相同子集上成功擊敗大約50%的競爭對手相比有了顯著提升。
“我們選擇了12場最近的比賽,共有超過8,000名參與者,來自第2組或更難的第1+2組。這總共涉及77個問題,” AlphaCode 2的技術白皮書中寫道。“AlphaCode 2在10次嘗試內解決了43%的問題,幾乎是原始AlphaCode(25%)的兩倍。”
AlphaCode 2能夠理解涉及“復雜”數學和理論計算機科學的編程挑戰。DeepMind研究科學家Rémi Leblond在一段預先錄制的視頻中解釋說,AlphaCode 2除了其他相當復雜的技術之外,還能進行動態規劃。
動態規劃是通過一次又一次地將復雜問題簡化為更容易解決的子問題來解決問題;Leblond表示,AlphaCode 2不僅知道何時正確地實施這種策略,還知道在何處使用它。這值得注意,因為需要動態規劃的編程問題曾是原始AlphaCode的一個主要障礙。
AlphaCode 2首先通過使用生成每個問題的多個代碼示例的“策略模型”來解決問題。不符合問題描述的代碼示例被過濾掉,聚類算法將“語義相似的代碼示例”分組,以避免冗余。最后,AlphaCode 2內的一個評分模型展現了“最佳候選”中的每個最大代碼示例“簇”——這構成了AlphaCode 2對問題的答案。
現在,所有的AI模型都有缺陷——AlphaCode 2也不例外。根據白皮書的說法,AlphaCode 2需要大量的試錯,以規模運行成本太高,并且嚴重依賴能夠過濾掉明顯不良代碼示例。白皮書推測,遷移到更強大的Gemini版本,如Gemini Ultra,可能會緩解其中的一些問題。
至于我們是否可以期望看到AlphaCode 2在某個時候成為一個產品——AlphaCode從未發布過——在一次簡報中,DeepMind的產品副總裁Eli Collins暗示了這種可能性。
“對我來說,最令人興奮的是關于最新結果的一件事,那就是當程序員與由Gemini提供支持的AlphaCode 2合作,通過定義代碼應遵循的某些屬性,模型的性能會更好,”Collins說。“在未來,我們看到程序員將高度 capable的AI模型作為協作工具,協助整個軟件開發過程,從思考問題到輔助實施。”