「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

機器之心發表於2019-02-15

現在,一塊 GPU 的計算機就可以執行超越人類水平的圍棋程式了。剛剛,Facebook 人工智慧研究所(FAIR)的 ELF OpenGo 預訓練模型與程式碼已經開源。田淵棟等人重現了 DeepMind 圍棋程式 AlphaZero,這是超級圍棋 AI 的首次開源。與此同時,研究人員順便也發現了人工智慧圍棋的一個「bug」。

對於有計算機基礎的圍棋愛好者來說,你也可以下載 ELF OpenGo 最終版本模型進行編譯,體驗與超越人類頂尖水平的 AI 圍棋對戰了(這需要你的電腦裡有支援英偉達 CUDA 的 GPU)。

圍棋程式連結:dl.fbaipublicfiles.com/elfopengo/p…

田淵棟等人開源的 ELF OpenGo 基於 DeepMind 著名人工智慧圍棋 AlphaGoZero / AlphaZero,但無需使用谷歌 TPU 進行訓練。OpenGo 的最新版本使用 2000 塊 GPU 訓練了 15 天實現了超人類的效能。在只有一塊 GPU 的情況下,OpenGo 在與 4 個人類排名前 30 的的職業選手進行比賽時,在慢棋賽中取得了 20 比 0 全勝的戰績,人類棋手沒有時間限制。

「我可以肯定地說,ELF OpenGo 專案為韓國圍棋界帶來了巨大影響,」韓國圍棋協會公關助理負責人 Beomgeun Cho 表示,「自從它問世以來,幾乎所有韓國的職業比賽選手都在使用 ELF Go 分析自己和其他棋手的對局。這不僅使得韓國棋手的水平提升,也對整個世界的圍棋水平有很大幫助。」

ELF OpenGo 的最終模型是 2000 萬局自我對弈訓練的結果,其水平穩超人類。但正如 AlphaGo 曾經展示出自己在「打劫」問題上的 bug 一樣,研究人員也發現了 ELF OpenGo 在訓練過程中展示出了強化學習特有的限制:OpenGo 和 AlphaZero 一樣無法完全理解圍棋的「扭羊頭」(又稱徵吃)概念,而這是圍棋初學者就能理解的常見情況。與其他變化相比,徵吃更多依賴於稍遠期的預測。雖然對於人類棋手來說,預計未來 30 步或更多的徵吃局面是輕而易舉的,但 DeepMind 曾經指出這些預測是在計算機訓練後期才能完成的。

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

圍棋徵吃的示意圖。人類玩家很快就能學會預測這種局面的發展,但計算機學習的速度要慢得多,而且無法從個別例子中進行推廣。

有趣的是,研究人員發現 ELF OpenGo 以和人類玩家相反的方式學習圍棋。其基於強化學習的方法更多關注遊戲的後半段,而不是開局或中盤階段。通過設定激勵 AI 獲勝的機制,強化學習會推動 OpenGo 更多地瞭解棋局如何收官——而非如何佈局。與此同時,人類則傾向於評價當前棋盤上的局面,專注於近期變化和區域性形式,同時逐步推進。

儘管這一研究結論僅限於圍棋,但它也表明了強化學習具有某些侷限性,可能會導致整體表現令人印象深刻卻又遭遇失敗——或被利用,因為 AI 過於關注最終結果,忽視了近期變化。

以下摘取介紹了 ELF OpenGo 論文的部分內容。

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

FAIR 的 ELF OpenGo 分析了從 GoGod 資料集中抽取的 87,000 盤職業棋手對決與計算機落子的匹配程度,其時間跨度從 1700 年到 2018 年。

圍棋有超過 4000 年的傳奇歷史,並被視為一種最複雜的具有完整資訊的回合制棋盤遊戲。AlphaGo(Silver et al., 2016)及其後代 AlphaGo Zero(Silver et al., 2017)和 AlphaZero(Silver et al., 2018)的出現表明,即使沒有人類對弈資料集的監督,深度強化學習(deep RL)也能達到超越人類的表現。

在下棋能力方面的這些進展具有顯著的計算成本。單次訓練過程就需要數百萬局自我對弈,這需要在數千個 TPU 上訓練數天時間;但研究社群中絕大多數人都無法獲得這樣的計算能力。再加上無法獲得程式碼和模型,就導致這種方法非常難以甚至不可能得到重現、研究、改進和擴充套件。

我們在這篇論文中提出了 ELF OpenGo,這是針對圍棋的 AlphaZero(Silver et al., 2018)演算法的開源的再實現。我們還應用了 ELF OpenGo,實現了下列另外三個貢獻。

第一,我們為 ELF OpenGo 訓練了一個超人級模型。在 2000 個 GPU 上執行了我們的 AlphaZero 風格的訓練軟體 9 天時間後,我們的有 20 個模組的模型超越了人類水平,並且可以說達到了與 Silver et al. (2017) 和 Silver et al. (2018) 中描述的 20 模組模型相媲美的程度。為了助力這一領域的研究,我們將提供預訓練過的超人級模型、用於訓練該模型的程式碼、全面的訓練軌跡資料集(包含 2000 萬局自對弈,分為 150 多萬個訓練 minibatch)、以及輔助資料。我們將深入描述該系統和演算法的設計,而且我們會包含很多在開發和訓練我們的模型時得到的經驗教訓,我們希望這能幫助社群更好地理解大規模深度強化學習的很多考慮因素。

第二,我們會提供對模型在訓練過程中的行為的分析。(1)隨著訓練的推進,我們觀察到,與其它模型相比,該模型的棋力存在較大的變化。即使學習率下降了,這一性質依然會保持。(2)對於需要顯著的前瞻才能決定是否應該下的落子(比如「徵子」), 模型學習的速度較慢,也永遠不能完全掌握。(3)我們探索了模型學習一局對弈中不同階段的高質量下法的速度。相對於 tabular RL(表格式強化學習)的典型行為,該模型學習遊戲中期和遊戲末期走法的進展速度基本相同。

第三,我們執行了廣泛的 ablation 實驗,以研究 AlphaZero 風格演算法的性質。我們確定了幾個 Silver et al. (2018) 中沒有描述清楚的重要引數,並會給出它們對成功訓練的作用的見解。我們簡單比較了 AlphaGoZero 和 AlphaZero 的訓練過程。最後我們發現,即使對於最終模型而言,在對弈中將 rollout 加倍依然能將其棋力提升大約 200 ELO,這說明 AI 的棋力會受到模型體量的限制。

我們的最終目標是提供必要的資源和探索性見解,讓 AI 研究社群和圍棋界都能研究、改進和測試這些很有前景的先進方法。

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

OpenGo 分析了 19 世紀日本著名棋手本因坊秀策的名局「耳赤之局」,秀策執黑為世人稱道的第 127 手置於 a 位,但人工智慧認為黑棋應該下在 b 位。

ELF OpenGo

我們提出的 ELF OpenGo 的目標是忠實地重新實現 AlphaGoZero(AGZ)和 AlphaZero(AZ),消除原始論文中含混不清的地方,並提出多種創新讓我們的系統可以完全在商品級硬體上工作。為了行文簡潔,我們會在附錄 A 中詳細全面地討論 ELF OpenGo 的系統和軟體設計;亮點包括(1)在 GPU 上多個自對弈的工作器(worker)的共同安置(colocation),從而提升吞吐量,(2)一種非同步的自對弈工作流程,用以處理越來越高的每局遊戲延遲。

我們的訓練和推理都使用了英偉達 Tesla V100 GPU,帶有 16GB 記憶體;但是可以預期模型在大多數有 Tensor Core 的英偉達 GPU 上的表現都差不多(比如 RTX 2060 商品級 GPU)。

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

表 1:AGZ、AZ 和 ELF OpenGo 的超引數和訓練細節。「?」表示 Silver et al. (2017) 或 Silver et al. (2018) 中模糊不清或沒有明確指出的細節。

總體而言,我們很大程度上遵照了 AZ 的訓練細節。但我們沒有使用 5000 個自對弈 TPU 和 64 個訓練 TPU,而是使用了 2000 個自對弈 GPU 和 8 個訓練 GPU。因為 Silver et al. (2018) 中沒有明確說明 AZ 的 replay buffer(重放緩衝)大小,所以我們使用了 AGZ 的 50 萬局遊戲的設定。我們也使用了 AGZ 的每一步 1600 的自對弈 rollout 設定。

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

圖 2:訓練期間模型能力的發展。「Selfplay ELO 25,000」和「Selfplay ELO 50,000」分別指基於間隔為 25000 和 50000 的訓練 minibatch 的連續模型對而計算得到的未歸一化的自對弈 ELO 等級。「Nash Averaging 50,000」是指納什平均等級(Balduzzi et al., 2018),基於與「Selfplay ELO 50,000」中那樣的同樣模型之間進行輪詢排程(round-robin)(成對的)競標賽而計算得到。

與人類對弈的比較

因為我們的模型顯著強於表現出了超人級棋力的原型模型,所以我們假設我們的模型的棋力也超過人類。在圖 3(c) 中,我們表明該模型預測的下法與人類職業棋手給出的下法是一致的。這些下法是從 2011 年到 2015 年的 1000 場職業比賽中提取出來的。模型的人類下法匹配率很快在 minibatch 125000 左右收斂到了大約 46%。這表明超過這一點後該模型的棋力可能並不是由於更好的人類專業預測,而且正如 Silver et al. (2016) 表明的那樣,使用人類對弈來監督訓練可能存在侷限性。

MCTS rollout 數量

直觀而言,增大 MCTS 迭代次數(rollout 數量)能通過探索博弈樹中的更多部分來提升 AI 的棋力。為了更好地理解 rollout 數量對棋力的影響,我們使用最終模型進行了自對弈分析,其中一個棋手使用的 MCTS rollout 數是另一個的兩倍。我們在範圍廣泛的 rollout 數量上執行了這一分析(800-25600)。

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

圖 9:使用 2 倍 rollout 的模型相對於使用 1 倍 rollout 的同樣模型的勝率

結果如圖 9 所示,可以發現當將執白子者的 rollout 數量翻倍時,ELF OpenGo 能穩定地享有 80%-90% 的勝率(ELO 大約多 250-400)。另一方面,當將執黑子者的 rollout 數量翻倍時,ELF OpenGo 的勝率僅有 55%-75%(ELO 大約多 35-200)。此外,隨著 rollout 數量增大,執黑時 rollout 翻倍的增量收益縮減至近 50%,這說明我們的模型在執黑時在 rollout 數量方面存在一個能力的天花板。而在模型執白時這個天花板卻不存在,這說明 7.5 貼目(白棋分數獎勵)對黑棋有相當大的影響。

因為雙方都使用同樣的模型可能引入偏差(rollout 更多的一方能看到對方探索過的所有分支),所以我們還實驗了原型/最終模型,同樣也觀察了類似的趨勢——rollout 翻倍能為 ELO 帶來約 200 的提升。

論文:ELF OpenGo:對AlphaZero的分析和開放再實現

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

arxiv.org/abs/1902.04…

AlphaGo、AlphaGo Zero 和 AlphaZero 演算法系列出色地表明瞭深度強化學習的能力,在複雜的圍棋遊戲上達到了超人級水平,而且自主性也越來越高。但是,研究界在理解和使用這些很有前景的方法上仍存在很多障礙。為了闡明尚未解決的謎題和促進未來的研究,我們提出了 ELF OpenGo,這是 AlphaZero 演算法的一個開源的再實現。ELF OpenGo 是首個開源的超人級圍棋人工智慧,其在與全球頂級職業棋手的對弈中獲得了令人信服的完美戰績(20:0)。我們應用 ELF OpenGo 進行了廣泛的 ablation 研究,也識別和分析了模型訓練以及對弈推理過程中很多有趣的現象。我們的程式碼、模型、自對弈資料集和輔助資料都會公開。

「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI


相關文章