人工智能軟件程序在進行對話、贏得棋盤遊戲和生成藝術品方面的能力正在變得令人震驚--但在創造軟件程序方面呢?在最新發表的一篇論文中,GoogleDeepMind的研究人員表示,他們的AlphaCode程序可以在標準化的編程比賽中跟上普通人類程序員的步伐。
研究人員在本周的《科學》雜志上報告說:"這一結果標志著人工智能系統首次在編程比賽中取得競爭性的表現。"
雖然現在還沒有必要對天網敲響警鐘,但DeepMind的代碼生成系統在Codeforces平臺上最近的編程競賽的模擬評估中獲得54.3%的平均排名--這是一個非常"平均"的平均數。
"競爭性編程是一項極其困難的挑戰,我們現在的水平(在10次提交中解決約30%的問題)與頂級程序員(在一次提交中解決>90%的問題)之間存在巨大差距,"DeepMind研究科學傢李宇佳(科學論文的主要作者之一)稱,"剩下的問題也明顯比我們目前解決的問題更難。"
盡管如此,該實驗指出人工智能應用的一個新的前沿。微軟也在探索這一領域,它有一個名為Copilot的代碼建議程序,通過GitHub提供。亞馬遜也有一個類似的軟件工具,叫做CodeWhisperer。
西雅圖艾倫人工智能研究所的創始首席執行官兼AI2孵化器的技術總監奧倫-埃齊奧尼(Oren Etzioni)表示,新發表的研究強調DeepMind在應用被稱為大型語言模型或LLM的AI工具方面的主要地位。
"這是一個令人印象深刻的提醒,OpenAI和微軟並沒有壟斷LLMs的驚人功績,"Etzioni在一封電子郵件中說。 "遠非如此,AlphaCode比GPT-3和微軟的Github Copilot都要好。"
AlphaCode因其編程方式而引人註目,也因其編程質量而引人註目。"該系統最令人驚訝的地方也許是AlphaCode不做什麼。AlphaCode不包含關於計算機代碼結構的明確的內置知識。相反,AlphaCode依靠一種純粹的'數據驅動'方法來編寫代碼,通過簡單地觀察大量的現有代碼來學習計算機程序的結構,"卡內基梅隆大學的計算機科學傢J.Zico Kolter在一份關於該研究的科學評論中寫道。
AlphaCode使用一個大型的語言模型,根據對問題的自然語言描述來構建代碼。該軟件利用大量的編程問題和解決方案的數據集,加上GitHub上的一組非結構化代碼。AlphaCode為手頭的問題生成數以千計的擬議解決方案,對這些解決方案進行過濾,以拋出那些無效的解決方案,將幸存的解決方案歸為一組,然後從每組中選擇一個例子提交。
這種程序有可能"創造"出正確的代碼,這似乎令人驚訝。Kolter說,可以想象,AlphaCode的方法可以與更多的結構化機器語言方法相結合,以提高系統的性能。
他寫道:"如果將數據驅動的學習與工程知識相結合的'混合'ML方法可以在這個任務上表現得更好,就讓他們試試吧。AlphaCode鑄就這一點。DeepMind正在繼續完善AlphaCode。雖然AlphaCode是從~0%到30%的重要一步,但仍有很多工作要做,"
在尋求創建代碼生成軟件的過程中,人工智能有很大的空間,期望快速迭代和改進。Etzioni說:"我們離生成性人工智能的'大爆炸'隻有10秒鐘。許多在更廣泛的數據上的令人印象深刻的產品,包括文本和結構化的數據,很快就會到來,"Etzioni說。"我們正在狂熱地試圖弄清楚這項技術能走多遠。"
隨著工作的進行,AlphaCode可能會激起關於人工智能的承諾和潛在危險的長期辯論,就像DeepMind的AlphaGo程序在展示基於機器的對圍棋遊戲的掌握時那樣。而且,編程並不是人工智能的快速發展引起爭議的唯一領域。
一個名為ChatGPT的開放性人工智能程序在科技界引發一股熱潮,因為它能夠以詳細的答案和文件來回應信息請求,而這些答案和文件可以幫助我們更好地理解人工智能。