KataGo (2025) 開源圍棋AI 安裝與設置

KataGo,目前世界最強開源圍棋AI,至少可以讓世界頂尖棋手 2~3 子,使用它可以進行人機對奕 (可以依據權重設置模仿的棋力等級),可以進行棋譜覆盤,甚至可以同步連線至網路圍棋對奕平台 (如野狐圍棋) 與其他棋手 (人類或另一個AI引擎) 對奕。詳細介紹說明,可以參考 KataGo Github 首頁

早前幾年我當然已有安裝 KataGo 來進行我的野狐圍棋局後覆盤,不過我對其參數設置不甚了解,也懶得爬文研究,所以只下載棋友已整理好的整合包,最多稍微調適一下符合個人硬體設備的參數。

不過現在因為可以透過 DeepSeekChatGPT (我經常是兩者交叉查詢),使得我對 Katago 的版本調用、參數調適、權重選擇,以及如何模擬「人類風格」模型並調整棋力等,有了一番了解,所以更可以優化我現在的 KataGo AI 模型,以及透過 KaTrain (KataGo 官方提供的 GUI 對奕與訓練界面) 實現與業餘高段/職業初段棋力的讓子棋對局 (個人為野狐圍棋6D) 並局後覆盤分析。

這次的安裝設置,我是整個移除後重新下載與安裝設置。這一篇文章就先摘要記錄下 KataGo 引擎與權重的基本設置以及主要參數的優化。

優化後的設置檔就可以透過 LizzieYzy 進行棋譜自動分析,而人機對奕我則打算使用 KaTrain 並設置 Human-Like 的權重,這些就另文再來分享心得。

下載與安裝

下載 KataGo 核心引擎

下載位置- KataGo Github Release

主要區分四個版本:

  • CPU - 基於 Eigen 框架無任何獨顯,性能最為薄弱。
  • OpenCL - 非 Nvidia GPU 用戶,如 AMD,需安裝對應的OpenCL驅動。
  • CUDA - 具有 NVidia 早期或低階的獨立顯卡。
  • TensorRT - NVidia 20/30 系列以上顯卡,推薦使用,性能比使用 CUDA 高上50%左右。

以我的配備:AMD 3700x CPU, 128Gb Ram, Nvidia 3080 12Gb 顯卡,安裝 TensorRT 版本可以發揮最佳性能。但以前不知道,想說 TensorRT 設置會很麻煩,所以都只安裝 CUDA 版本。這次問了 AI 後才知道可以安裝官方釋出的 "預編譯版本",然後再至 Nvidia 官網下載對應的 TensorRT 函式庫版本,解壓縮設置 PATH 路徑後 (參考官網文件說明) 就可以使用了。

但是必須要確實對應 Katago 釋出版本。例如,我安裝的是 katago-v1.16.0-trt10.9.0-cuda12.8-windows-x64.zip,該檔案已標示 TensorRT 版本需要 10.9.0,這個一定要完全對應。一開始我安裝了 TensorRT 11.10 最新版本,結果一執行 KataGo 的 Benchmark 調適,卻馬上跳出執行但沒顯示任何錯誤,問題找了好久。至於 cuda 12.8 版本,當安裝 Nvidia 驅動程式時只要更新到最新版本,就會連帶更新 CUDA 版本 (2025/05/24 為 12.9),它可以往下回溯相容。

至於 KataGo 引擎安裝方式其實就只是對應好以上說明的版本,然後下載解壓縮 (i.e. D:\Games\Go 資料夾內) 即可。比較麻煩的是後續的設置,這個必須一同配合所下載的權重版本,後續「設置」一節內文說明。

下載權重

下載位置 - Networks for kata1

簡單一點就是直接下載網站所建議最近發佈最強的版本即可。例如 2025/05/18 所釋出的這版 - kata1-b28c512nbt-s8925522176-d4787295149。不過如果要配合硬體設備,在執行效能與棋力達到最佳化,則需要考量所下載權重的類型。

官方權重的主要命名規則是 bYYcZZZ 檔名結構。其中 b 代表 blocks (神經網路層數)、c 代表 channels (通道)。例如 b28c512 就是表示使用 28層神經網絡、每層512個通道所訓練的模型,可以看成一個是深度、另一個是廣度,當然是深度越深、廣度越廣,反映在 ELO 分數的棋力也就越高,但是硬體要求設備,尤其是對顯卡的要求更是要高配。

一般安裝 CUDA/OpenCL 用戶可以選擇 20b~28b 權重,而 TensorRT 則可以使用 28b~40b 權重,甚至更頂尖的設備還可以使用到 60b 版本的權重 (至於純CPU用戶建議選擇18b以下)。不過這也不是絕對,還是要看調校後的表現,以及用戶自己的體驗。以我就打算安裝 28b512c 用來覆盤的權重,然後安裝 20b或18b較輕量的權重版本用來對奕訓練用 (模擬業餘高段至職業初段的水平)。

設置與優化

Katago 引擎主要分兩個設置程序,一為生成配置檔,另一就是透過該配置檔跑 Benchmark 調整最佳化參數值。

生成配置檔

下載解壓後目錄內已有一個預設的配置檔 (default_gtp.cfg),非常繁複,但註解很清楚。我已經透過 AI 將之轉譯為繁體中文註解說明,並分享於個人的 Gist - KataGo 配置檔範例

雖然可以透過 default 的配置檔來設置,但我還是傾向重新生成。這裡特別注意的是每個權重檔案需要各配置一個 config 檔,不要共用。

如何生成配置檔,可以參考以下生成的命令 (需要使用命令列模式),然後再輸入詢問的幾個問題,如使用規則、是否允許AI在對手思考時分析 ...。大都只需要採預設值即可,等生成設定檔以後再來調整即可。

>katago genconfig -model ../KaEngines/kata1-b28c512nbt.bin.gz -output gtp_custom.cfg

KataGo Benchmark

藉由生成的配置檔,就可以進一步跑基準測試藉以依據硬體配置生成建議的參數值,尤其是搜尋線程數值 (searchThread),這個參數會影響到並行處理的效能。

>katago benchmark -model ../KaEngines/kata1-b28c512nbt.bin.gz -config gtp-custom.cfg

除了搜尋線程數以外,其實最主要就是針對兩個參數的設置:maxVisits 與 MaxTime。

以我的配備,為了可以快速分析自己的棋譜,我限制每手只能思考1秒,或每次最大思考節點數為1000,這兩個參數以優先觸發為主。事實上,我設置為1秒思考時間,Visits 數目也能達到 500~1000,這已經是至少職業初段的水平,分析我的棋譜已是綽綽有餘。

numSearchThreads = 20   # 用於搜尋的線程數目
maxVisits = 800         # 每次搜尋的最大節點數
maxTime = 1             # 最大思考時間 (秒)

完成最佳化參數設定後,後續就可以透過 GUI 如 LizzieYzy 讀取該配置檔,也可以在該界面的參數設置覆蓋掉原來的配置檔。例如我想分析名家棋譜,我就可以把 Visits 與 Time 調得更高些,分析當然就更精準。

下圖就是執行 LizzieYzy 後調用 KataGo 的配置,然後載入 .sgf 棋譜檔案,執行自動分析,大約跑個 1~2 分鐘就可以完成整局棋譜的分析並自動儲存分析後的棋譜,這對棋力的提升,幫助實在太大太大了。

留下第一條留言