谷歌代碼生成系統“卷”走半數程序員?人類已“輸”給AI很久了!
原創作者丨徐杰承
近日,曾推出過轟動一時的 AlphaGo 圍棋機器人的 DeepMind 再次放出大招,公開發布了一款名為 AlphaCode 的代碼生成系統。
據 DeepMind 介紹,AlphaCode 在正式亮相前,就已通過知名編程競賽網站 Codeforces 所舉辦的 10 場算法競賽檢測了自身實力。在這 10 場比賽中 AlphaCode 成功擊敗了幾乎一半的參賽選手,最終成績排名 54%。
論文鏈接:https://storage.googleapis.com/deepmind-media/AlphaCode/competition_level_code_generation_with_alphacode.pdf
有 AI 研究科學家在社交媒體上表示,AlphaCode 達到人類水平還需要幾年時間,它在 codeforce 上的排名是有限制的,如許多參與者是高中生或大學生;還有就是 AlphaCode 生成的絕大多數程序都是錯誤的,正是使用示例測試進行過濾才使得 AlphaCode 實際解決了某些問題。
也有研究人員表示,這像是 AlphaStar 大力出奇跡的結果。
當然,這已遠非人工智能與人類智能的第一次交手。截止目前,在人工智能技術的發展歷程中,已有眾多 AlphaCode 的“老前輩”在與不同領域人類頂級選手的對陣中取得了斐然成績,而它們的每次勝利,都對人工智能技術的發展產生了深遠影響。
Deep Blue?
在人機交鋒的歷史中,AI 的首勝發生在 1997 年。IBM 公司的 Deep Blue 超級計算機以 3.5:2.5 戰勝了當時世界排名第一的國際象棋大師卡斯帕羅夫。
技術方面,Deep Blue 采用混合決策,將通用超級計算機處理器與象棋加速器芯片相結合,利用 α-β 剪枝算法對棋局中的所有路數進行窮舉,通過對比每一步的得分選擇最佳執行策略。在算力與算法的支持下,Deep Blue 擁有每秒 2 億步的計算速度,這對于當時的技術而言已是天花板。賽后,Deep Blue 的設計者許峰雄表示,Deep Blue 依靠硬算可以預判棋局的 12 步,而卡斯帕羅夫可以預判 10 步。
雖然從如今的角度來看,Deep Blue 能夠戰勝棋王更多的是依靠算力而非智能,但作為 AI 戰勝人類的開端,Deep Blue 的成功為人工智能從業者帶來了極大的想象空間。
Watson?
2011 年 IBM 再度發力,Deep Blue 的同門師弟 Watson 在美國老牌智力問答節目《危險邊緣》中對兩位人類冠軍發起了挑戰并最終取勝。
與師兄 Deep Blue 相比,Watson 最大的亮點在于它的應用自然語言處理能力, IBM 稱之為 Deep QA,它代表著一整套問答系統。Watson 成功的關鍵,在于它能靠語境來搜索答案,而不僅僅是靠關鍵詞聯想。且 Watson 所用的軟件是分布式系統的整合,Hadoop 和 UIMA 通力合作,共同指引數據,使得 Watson 的各個節點協同運作。
如果說 Deep Blue 代表著人工智能在計算能力上對人類的超越,那么 Watson 則標志著人工智能在自然語言處理能力上的突破。時至今日,已有眾多基于自然語言處理技術所開發的 Watson 的“后輩”出現在了我們的生活中,這其中就包括近期大火的冬奧會 AI 手語翻譯官“聆語”。
AlphaGo?
2016 年,在深度學習發展的高峰時期,AI 迎來了迄今為止最具含金量的高光時刻。號稱世界圍棋歷史第二人的李世石與谷歌圍棋人工智能程序 AlphaGo 在全球媒體的關注下展開五番棋比賽,最終 AlphaGo 以 4:1 戰勝了李世石。
為解決更為復雜的圍棋問題,DeepMind 放棄了 Deep Blue 中曾使用的暴力窮舉法,并為 AlphaGo 設計了兩種神經網絡:決策網絡與價值網絡。其中有監督學習決策網絡是一個 13 層的卷積神經網絡,其主要功能是:輸入當前盤面特征參數,輸出下一步落子行動的概率分布,預測下一步落子位置。訓練樣本采用 3 千萬個人類棋手產生的盤面數據,使用隨機梯度下降算法進行調優,僅通過策略網絡,AlphaGo 能夠以 57% 的準確率預測對手的下一步落子位置。
價值網絡同樣是一個 13 層的卷積神經網絡,與決策網絡具有相同的結構,主要功能是:輸入當前的盤面參數,輸出下一步棋盤某處落子的估值,以此評判走子的優劣。在訓練過程中,為克服訓練數據相關性帶來的過擬合,價值網絡從決策網絡產生的 3 千萬局對弈中抽取樣本,并組成 3 千萬不相關的盤面作為訓練樣本,最終在測試集上獲得了 0.224 的均方誤差。
這兩種神經網絡的主要作用是降低博弈樹的搜索空間規模,而在搜索算法的選擇上 AlphaGo 采用了蒙特卡洛樹搜索算法:先隨機走子,隨后通過最終數據更新走子價值。如此進行大量隨機模擬,讓最優方案得以自動涌現。
相較于 Deep Blue 與 Watson,AlphaGo 在數據學習能力上的突破性探索在人工智能發展的歷程中具有里程碑的意義。值得一提的是,在本場比賽后,DeepMind 再次對 AlphaGo 進行了版本升級。全新的 AlphaGo Zero 摒棄了對人類比賽數據的學習,完全依靠強化學習進行自我博弈升級,僅通過 3 天訓練就以 100:0 的成績完爆了 AlphaGo。
AlphaStar?
在 AlphaGo 取得圍棋領域的制霸權后不久,AI 又再次攻克了更為復雜的 RTS 類游戲。2019 年,Google 新一代人工智能 AlphaStar 向被認為是對計算能力、反應能力和操作速度要求最高的電子游戲“星際爭霸”發起挑戰,分別與兩位職業選手進行了十場比賽,最終以 10 比 0 的比分獲得了全部比賽的勝利。
與棋類游戲不同的是,RTS 游戲存在著不完全信息博弈、長期戰略規劃與實時性操作等難點。正如強化學習之父 David Silver 所說:AI = DL + RL,面對這些問題 AlphaStar 選擇了深度監督學習 + 強化學習的基本框架。而其中最關鍵的技術在于群體訓練策略,AlphaStar 同時訓練了三個策略集合:主代理、主暴露者、聯盟暴露者。
由于游戲的復雜性過大,策略集合必須先通過深度監督學習利用人類數據完成初始化,隨后主代理會利用強化學習與其余集合進行對抗訓練。與 AlphaGo 不同的是,主代理被設定為使用有優先級的自學策略,尋找能夠對抗歷史上某個分布的策略,在兩個玩家的零和游戲中該策略會趨向納什均衡。而主暴露者的對手只是當前的主代理,主要目的是找到當前主代理的弱點。聯盟暴露者同樣使用深度學習方法,對手為主代理的歷史版本,目標是發現主代理的系統性弱點。并且主代理與聯盟暴露者都會每隔一段時間重置為深度監督學習的得到集合,以增加對抗人類策略的穩定性。
正如 AlphaStar 研發團隊賽后所表示的,群體訓練策略是一種更加可靠的訓練策略,是通往安全、魯邦的 AI 的一條路徑。如今,AlphaStar 中所使用的群體訓練策略已被廣泛運用到了天氣預測、氣候建模、語言理解等眾多領域的不完全信息的長序列建模任務之中。
AlphaCode?
雖然與眾多“前輩”相比,AlphaCode 目前的實力與戰績只能算是差強人意。但作為有望在未來以助手身份融入廣大開發人員工作中 AI 新星,AlphaCode 的工作原理還是很值得了解與梳理的。
從 DeepMind 所公布的博客介紹與論文中,我們可以發現 AlphaCode 的執行流程大致可以分為四個部分。
預訓練:利用標準語言建模目標在 Github 的數據集上預訓練 Transformer 語言模型。
微調:在競爭性編程數據集上進行模型微調,使用 GOLD 與 tempering 作為訓練目標,進一步減少搜索空間。
生成結果:利用訓練后的模型生成所有可能實現任務要求的樣本。
篩選提交:對樣本進行過濾,刪除無法通過樣例的代碼樣本,并通過測試數據模型對剩余樣本進行聚類,從聚類最大的樣本中按序選取 10 個進行提交。
總體來看,AlphaCode 將 Transformer 模型與采樣過濾結合,創造了更為新穎的解決方案。雖遠未贏得比賽,但 AlphaCode 所呈現的結果代表了人工智能在解決問題能力上重大的飛躍。DeepMind 表示,將繼續該領域的探索,并希望進一步研究生產更為強大的編程工具。
寫在最后?
在如今人工智能技術發展的盛況之下,我們可以大膽預測,未來人工智能還將繼續在更多不同的領域刷新人類極限,并為人類的進步提供更多幫助。那么在現階段,有哪些前沿技術有望推動人工智能的進一步突破,幫助人工智能實現更好的泛化與應用落地?人工智能從感知智能到認知智能的路途還有多長?未來人工智能技術的發展趨勢又將如何?
關于以上的一切問題,你都可以在 WOT 全球技術創新大會中得到解答。在即將于 4 月 9 日 -10 日舉辦的 WOT 全球技術創新大會中,多位來自產業界與學術界的人工智能領域技術專家,將于“認知智能發展新趨勢”專場中為廣大聽眾分享他們對人工智能技術發展的真知灼見。感興趣的同學可掃描下圖二維碼了解更多詳細信息。
目前大會 8 折購票中,現在購票立減 1160 元,團購還有更多優惠!有任何問題歡迎聯系票務小姐姐秋秋:15600226809(電話同微信)