簡而言之

  • KataGo-AnimalChess 是 hzyhhzy 和 Kouza 發布的 AlphaZero 風格鬥獸棋類神經網路,在 200 局中以 82 勝 0 負 118 和擊敗 MistyJungle:得分 0.70,約 +150 Elo。
  • 同一台機器上每著用時相同:1,000 次訪問對 500 萬節點。它執紅執黑都贏過,一局未輸。
  • 在 Mistboard 的虎能像獅一樣橫向跳河之前,這場對抗賽不可能公平;中文規則本來就是這樣。這條規則先上線了。
  • 這贏下了挑戰頁面上的鬥獸棋一列:KataGo-AnimalChess 成為 Mistboard 上的鬥獸棋機器人,並署上他們的名字。

MistyJungle 是 Mistboard 上的鬥獸棋機器人:在三項手寫評估上做 alpha-beta 搜尋,每著 500 萬節點,沒有類神經網路。6 月它以約 16 Elo 擊敗了我能執行的最強開源引擎,此後挑戰頁面一直把它的席位開放給任何在同等預算下擊敗它的引擎。

上週為揭棋的工作掃描 GitHub 時,我發現了一個之前漏掉的更強對手:KataGo-AnimalChess,hzyhhzy 把 KataGo 的自我對弈訓練改造到鬥獸棋上,訓練好的網路隨 Kouza 的 Dandelion 介面一起發布。6 月的搜尋漏掉它,是因為這個引擎位於一個名為 KataGomo 的儲存庫的分支上;名字裡沒有任何字樣提到鬥獸棋。

有一條規則必須先改

他們的虎既能縱向也能橫向跳河,與獅的跳法相同。Mistboard 的虎不能:牠只能縱向跳,這個讀法來自英文維基百科的條目,據我所查,別處都沒有。騰訊 QQ遊戲的規則、萊頓大學的鬥獸棋頁面和 KataGo 的原始碼都讓虎擁有獅的跳法。一個按某條規則訓練的網路與一個按另一條規則下棋的引擎對弈,衡量的是規則,而不是引擎。

於是規則改了。自 9 月 21 日起,Mistboard 上的虎兩個方向都能跳,核心、機器人、分析引擎、規則頁面和殘局都隨之更新(有一道被新跳法破解的子力殘局已下架)。這次改動只增加著法,所以此前的每一局按當時的走法依然合法。維基百科的條目現在也註明了這個變體。

對抗賽

兩百局,交替執紅黑,由 Mistboard 核心擔任裁判:進入獸穴、吃光對方全部棋子和無子可動算勝,三次重複局面和 200 著無吃子算和。每個引擎只提出著法;提出不合法的著法就判負,而這一次也沒有發生。

預算按同一台機器上的實際用時匹配,每著約兩秒:MistyJungle 用它上線時的 500 萬節點單執行緒,KataGo 用 Dandelion 4 附帶的 b10c384 網路、四執行緒 1,000 次訪問。兩個引擎都按預算而不是按時鐘搜尋,所以在 Modal 上下出的對局就是它們在這裡會下出的對局。KataGo 的循環規則被關閉,讓裁判的重複規則對雙方同樣生效。

  得分
KataGo 執紅(100 局) 44 56 0 0.72
KataGo 執黑(100 局) 38 62 0 0.69
合計 82 118 0 0.705

每一局分出勝負的對局都以進入獸穴結束;每一局和棋都是重複局面。中位對局長度為 127 著。得分的 95% 區間是 0.67 到 0.74,大約相當於 +125 到 +180 Elo。挑戰要求的是 0.55。

全部 200 局都在 Mistboard 上的研究裡,八局有名字的排在最前。先看一局短的,第 67 局,KataGo 執黑:牠的虎在第 54 著橫向跨過西邊的湖,這是舊規則禁止的一步,36 著之後走進獸穴。

執紅最短的勝局,第 138 局,81 著:

它是什麼

KataGo-AnimalChess 就是原版 KataGo,那個圍棋程式,把棋盤和規則換成鬥獸棋,自我對弈的循環原樣執行:自我對弈中每著 400 次訪問,一個 10 個殘差區塊、384 通道的網路,用 SGD 在兩塊 GPU 上訓練,規則在介面支援的各種變體之間隨機切換,讓一個網路服務所有變體。訓練腳本和設定都在分支裡;儲存庫自己的估計是,在一個小型棋類上達到頂級強度需要不到五十美元的運算量。權重放在介面下載包裡,沒有單獨發布,也沒有註明授權條款。

相比之下,MistyJungle 的評估只有子力、到獸穴的距離和陷阱懲罰。牠對傳統對手守住了陣腳,在此之上加一個學習型殘差也沒有幫助。這是常見的結果:自我對弈訓練出的網路勝過手工調校的搜尋,而在一個和棋率很高的遊戲裡,牠贏下能贏的對局,一局不輸。

他們贏下了席位

挑戰頁面上的鬥獸棋一列現在寫著已被贏下,署著他們的名字,KataGo-AnimalChess 成為 Mistboard 上的鬥獸棋機器人。引擎是開源的,網路隨他們的介面發布,所以部署它是一項建置工作,而不是一個請求:伺服器裡的 GTP 橋接、AnimalChess 分支的 Linux 二進位檔,以及本站每著負擔得起的訪問預算。在此之前 MistyJungle 繼續佔據席位,分析棋盤暫時也留在牠上面。挑戰對持有者繼續開放:在同等預算下 200 局擊敗 KataGo-AnimalChess,席位就是你的。

對抗賽的驅動程式(連接 KataGo 的 GTP 與核心的橋接;KataGo 的棋盤是我們的左右鏡像)是 Mistboard 儲存庫裡的 jungle-katago-match.ts,200 局的記錄在這裡