人工智能的下一前沿陣地:AlphaCode可以與普通程序員的技能相媲美
人工智能軟件程序在進行對話、贏得棋盤遊戲和生成藝術品方面的能力正在變得令人震驚–但在創造軟件程序方面呢?在最新發表的一篇論文中,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的開放性人工智能程序在科技界引發了一股熱潮,因為它能夠以詳細的答案和文件來回應信息請求,而這些答案和文件可以幫助我們更好地理解人工智能。