如果想進行人機對奕,可以透過 LizzieYzy / LizzieYzy Next 、 KaTrain 等免費對奕圍棋界面軟體,只要設置好 KataGo AI 引擎設定,即可實現對局者與 AI 引擎的對局。
但 KataGo 的棋力實在太強。我使用的是 28b 權重模型,即使將對局條件限制為每手 1 秒、800 visits,仍大致具備職業強初段以上的水準。更重要的是,它的著手往往不容易理解,少了人類下棋時的思考脈絡與「人味」,實際與之對局時,往往只會帶來強烈的挫敗感。
因此,我利用幾天的空餘時間,將多年前由日本開發的「天頂圍棋 Zen7」核心元件 Zen.dll,透過 C#/.NET 包裝成一個 GTP Wrapper,並將這個專案命名為 ZenGTPX。

先簡單介紹下 ,Zen7(天頂圍棋 7)是由日本開發的商用圍棋軟體,其最高棋力可設定為 9 段,整體實力仍接近職業初段水準。相較於現今棋力極強的 KataGo,Zen7 的整體實力雖已不及新一代圍棋 AI,但 Zen7 的棋風較為穩重厚實,著手也更接近人類棋手的思考方式,因此特別適合業餘棋友用來進行人機對弈,並從中學習布局方向、厚薄判斷與基本棋理。
我所開發的 ZenGTPX,主要就是可以讓 Zen7 能以 GTP(Go Text Protocol)引擎的形式,被現代圍棋 GUI 載入使用。除了可實現 Zen7 與 KataGo 的自動對弈,也能設定於 LizzieYzy 與 LizzieYzy Next 中,作為人機對局或引擎對局使用的 AI 引擎。
目前,ZenGTPX 已連同原始程式碼、可執行檔及相關組態設定檔,一併發布於 GitHub。具體如何安裝與設置,可以參考:README.md(我已盡量寫得相當詳細了)。
需要注意的是,ZenGTPX 不包含 Zen7,也不包含 Zen.dll。使用者需要自行準備合法取得的 Zen7 內附的 Zen.dll 檔案,並複製放在 ZenGTPX.exe 同一個資料夾。

目前 ZenGTPX 已實現的功能可以參考:FEATURES.md,以下列出主要的功能供參考:
- 以 Windows x86 self-contained executable 發行(不用再另行安裝 .NET SDK)。
- 支援在 LizzieYzy Next 中作為一般 GTP v2 Engine 使用。
- 透過 GTP analysis commands 顯示候選點與勝率。
- 支援人機對局(GenMove 與 Analysis 模式)。
- 支援 ZenGTPX 與其他 GTP Engine 自動對局。
- 支援透過 LizzieYzy Next 的 ReadBoard / Fox 同步機制進行網路(野狐圍棋)同步對局。
- 支援
rank、fixed-time與advanced棋力設定模式。 - 提供英文與繁體中文設定檔範本。
- 提供搜尋、policy、territory 與 final-score 檢查用的診斷 GTP commands。
- 提供 LizzieYzy Next 所需的相容命令,包含
kata-analyze、lz-analyze、kata-genmove_analyze、loadsgf,以及部分 KataGo-style parameter/rules commands。
ZenGTPX 人機對局設置

引擎對局設置(KataGo vs ZenGTPX)

網路棋盤同步


我另行寫了一個腳本在終端機模式下,讓 KataGo 與 Zen7 自動對局。我將 KataGo 固定設為每手 1 秒、800 visits,並只使用支援 CPU 的 OpenCL 引擎;Zen7 則設定為被讓 3 子,並分別使用固定時間模式(每手 30 秒)與固定棋力模式(9D)各下了幾局作為測試。
結果,KataGo 仍能相當輕鬆地取勝。不過在多數對局中,Zen7 其實一度維持領先,甚至取得壓倒性的勝率優勢,最後往往是因為局部細算與攻殺能力明顯不足,才遭到逆轉落敗。
這是否代表 Zen7 的棋力已顯得脆弱?倒也不能這麼說。它在 9D 設定下,仍具備業餘高段至接近職業初段的實力,一般業餘棋手想要擊敗它,依然相當困難;只是當它被拿來與現代 KataGo 比較時,兩者之間的差距便會被明顯放大。我也曾進行多盤網路同步對局測試,僅將 Zen7 設定為 6D、每手 12 秒,面對野狐 5D 的快棋對局時,仍能相當輕鬆地取勝。
我開發 ZenGTPX 的主要用意,並不是要讓 Zen7 重新挑戰現代最強圍棋 AI,而是希望提供一個更適合人機對局的選項。Zen7 的棋風比較符合傳統人類思維,棋型也相對端正;雖然細算力不足,但這主要是相對於 KataGo 而言。
對我來說,比較理想的使用方式是:先與 Zen7 對局,取得一盤比較接近人類實戰感的棋局;局後再用 KataGo 高權重分析引擎進行覆盤。這樣一來,雙方在關鍵處的勝率波動會更明顯,也更容易看出哪些著手真正造成局勢變化。對學習棋理、理解錯著,以及保留互有勝負的對局樂趣,應該會更有幫助。