搭建基于 Katago 的围棋游戏 链接到标题

回顾 链接到标题

李世石 vs AlphaGo 链接到标题

2016 年 3 月,韩国首尔,全世界都在关注一场特殊的围棋比赛。

李世石九段对战 DeepMind 的 AlphaGo。五番棋,1:4。李世石赢下了第四局——那一步"挖"成了围棋史上的经典。那时候,人们还在讨论:AI 到底能不能真正理解围棋?

答案是:能,而且远超人类。

开源的 KataGo 链接到标题

仅仅几年后,开源的 KataGo 横空出世。它基于 AlphaGo Zero 的论文思路,但做了大量优化——更快的训练速度、更强的网络结构、支持多规则多路盘、还开源。

到今天,KataGo 的官方评级系统中,主力模型 ELO 已经达到 14095。作为参考:职业顶尖棋手在这个标度上大约是 3000-3500 ELO。

差距已经不是"能不能赢"的问题,而是"赢多少"的问题。

平民化部署 链接到标题

最让人感慨的是——这样的 AI 不需要 Google 的超级计算机。

一台普通单机服务器 + 一块 NVIDIA RTX 4060 Ti(~3000元级别显卡),配合 TensorRT 加速,就能跑起 KataGo,棋力依然碾压一切人类选手。

这正是本文想要分享的部署方案:用最普通的硬件,搭建一套基于 KataGo 的围棋对弈环境。

搭建环境概述 链接到标题

整体架构 链接到标题

flowchart LR subgraph "macOS 客户端" A["Sabaki
对弈前端"] B["KaTrain
分析前端"] end subgraph "服务器" C["Docker 容器
Katago TensorRT"] D["NVIDIA GPU
RTX 4060 Ti"] end A <-->|"SSH / GTP"| C B <-->|"SSH / Analysis"| C C -.->|GPU 推理| D style A fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px style B fill:#e3f2fd,stroke:#1565c0,stroke-width:2px style C fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px style D fill:#fff3e0,stroke:#e65100,stroke-width:2px

工作流程 链接到标题

macOS 前端 (KaTrain/Sabaki)
    └─ SSH Bridge 脚本
        └─ 服务器 Docker 容器
            └─ KataGo + TensorRT + GPU

前端工具通过 SSH 连接到服务器,服务器上 Docker 容器动态拉起 KataGo,用完即销毁(--rm)。每一局都是一个干净进程,没有 GPU 竞争问题。

组件清单 链接到标题

组件 说明
服务器 Ubuntu Server, Docker + KataGo TensorRT
GPU NVIDIA RTX 4060 Ti (16GB 显存)
客户端 macOS
前端 1 Sabaki(对弈用)
前端 2 KaTrain(分析训练用)
协议 GTP + SSH 管道

服务器端搭建 链接到标题

Docker 镜像构建 链接到标题

KataGo 的官方发布版主要支持 OpenCL 和 Eigen 后端。要使用 TensorRT(NVIDIA GPU 的最佳后端),需要自行编译。

采用多阶段 Docker 构建:

  • builder 阶段:基于 cuda:12.4.1-cudnn-devel-ubuntu22.04,从源码编译 KataGo v1.16.2,编译参数 -DUSE_BACKEND=TENSORRT
  • runtime 阶段:基于 cuda:12.4.1-cudnn-runtime-ubuntu22.04,仅保留运行所需文件
# 构建命令
docker build -t katago:tensorrt .

关于 HTTP 代理 链接到标题

服务器无法直连 GitHub,Docker daemon 需配置 HTTP 代理:

# Docker daemon 代理配置
# /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy-address:port"
Environment="HTTPS_PROXY=http://proxy-address:port"

模型和配置文件 链接到标题

  • 模型下载:KataGo Networks
  • 当前使用:kata1-b28c512nbt-s12763923712-d5805955894.bin.gz(259MB)
  • 备用模型:kata1-b20c256x2-s5303129600-d1228401921.bin.gz(84MB,较老)

配置文件位于 /opt/katago/configs/simple_gtp.cfg,核心参数:

参数 说明
maxVisits 5000 每步搜索次数
numSearchThreads 32 并行搜索线程数
ponderingEnabled false 是否预计算

前端工具 链接到标题

Sabaki 链接到标题

Sabaki 是一款基于 Electron 的围棋前端,界面简洁美观,操作直观。适合快速对弈、打谱。

现状

  • 已多年未更新(最新版 v0.52.2 发布于 2022 年)
  • Homebrew 因未通过 Apple Gatekeeper 公证,将其标记为 Deprecated
  • 禁用日期:2026-09-01(届时无法通过 brew install 安装)
  • 替代方案:可直接从 GitHub 下载 .dmg 手动安装

KaTrain 链接到标题

KaTrain 是另一款 KataGo 前端,功能比 Sabaki 强大得多:

  • 分析模式(ownership、policy 可视化)
  • AI 训练功能(对局复盘、错误标记)
  • 仍在积极更新(几个月前有新版发布)
  • 适合学习和提高棋力

现状

  • Homebrew 同样因未通过 Gatekeeper 公证,将其标记为 Deprecated
  • 禁用日期:2026-09-01(与 Sabaki 相同)
  • 建议直接从 GitHub Releases 下载最新版手动安装

安装方式

# 通过 Homebrew(2026-09-01 后禁用)
brew install --cask katrain

# 推荐:从 GitHub Releases 下载

前端工具对比 链接到标题

对比项 Sabaki KaTrain
更新状态 2022 年停更 仍在更新
安装方式 brew 安装(2026-09-01 后禁用) brew 安装(2026-09-01 后禁用)
功能侧重 对弈、打谱 分析、训练
界面 简洁美观 功能丰富但略粗糙
分析功能 基础 强大(ownership/policy)

Brew 权限说明 链接到标题

Homebrew 从 2025 年开始配合 Apple 的安全策略,大规模清理未签名/未公证的 Cask 应用。Sabaki 和 KaTrain 都是 Electron 应用,开发者未加入 Apple Developer Program(每年 $99),应用没有代码签名,因此被标记为 Deprecated,统一设定了 2026-09-01 的禁用日期。

这并非某个应用的问题,而是整个开源 Electron 生态共同面临的困境。如果届时仍需使用,可以从 GitHub Releases 手动下载安装(可能会遇到 Gatekeeper 警告,右键 → 打开即可)。

Bridge 脚本 链接到标题

前端通过 SSH 连接服务器上的 KataGo,需要一个"桥梁"脚本。一共两个版本:

GTP 模式(对弈用) 链接到标题

文件:~/bin/katago-bridge

#!/bin/bash
exec ssh -T ubuntu@服务器 \
  "docker run --rm -i --device nvidia.com/gpu=all \
    -v /opt/katago/configs:/configs:ro \
    -v /opt/katago/models:/models:ro \
    katago:tensorrt \
    gtp -model /models/kata1-b28c512nbt-s12763923712-d5805955894.bin.gz \
    -config /configs/simple_gtp.cfg"

Analysis 模式(分析用) 链接到标题

文件:~/bin/katago-bridge-analysis

#!/bin/bash
exec ssh -T ubuntu@服务器 \
  "docker run --rm -i --device nvidia.com/gpu=all \
    -v /opt/katago/configs:/configs:ro \
    -v /opt/katago/models:/models:ro \
    katago:tensorrt \
    analysis -model /models/kata1-b28c512nbt-s12763923712-d5805955894.bin.gz \
    -config /configs/simple_gtp.cfg"

创建后赋予执行权限:

chmod +x ~/bin/katago-bridge ~/bin/katago-bridge-analysis

Sabaki 配置 链接到标题

  1. 打开 Sabaki → File → Preferences → Engines
  2. 点击 Add
  3. Name: KataGo
  4. Path: /Users/xxx/bin/katago-bridge
  5. Arguments: 留空
  6. 点击 OK

KaTrain 配置 链接到标题

KaTrain 通过 altcommand 机制使用远端 KataGo:

  1. 打开 KaTrain → Settings → Engine
  2. 勾选 Alternative KataGo Command (engine/altcommand)
  3. 填入:/Users/xxx/bin/katago-bridge-analysis

用户配置文件 ~/.katrain/config.json 中关键字段:

{
  "engine": {
    "altcommand": "/Users/xxx/bin/katago-bridge-analysis",
    "threads": 12,
    "max_visits": 500,
    "max_time": 8.0
  }
}

RTX 4060 Ti 运行效果 链接到标题

模型棋力 链接到标题

使用模型 kata1-b28c512nbt-s12763923712-d5805955894(259MB):

指标
网络结构 b28c512nbt(28 层 / 512 通道 / NBT瓶颈层)
训练步数 127 亿步
自对弈局数 58 亿局
ELO 评级 14095.5 ± 12.5
对比职业棋手 超人类级别

显存消耗 链接到标题

以 RTX 4060 Ti(16GB 显存)运行,KataGo 显存消耗仅约 358 MB,几乎不影响其他服务。可以和其他 AI 任务同时运行。

场景 显存占用
推理分析 ~358 MB
可用余量 ~15.6 GB

核心参数 链接到标题

maxVisits(最大搜索次数) 链接到标题

这是 KataGo 最核心的棋力参数。每次落子前,KataGo 在脑海中模拟尽可能多的棋局变化,搜索次数越多,决策越精准。

RTX 4060 Ti 上不同 visits 的耗时和等效水平:

maxVisits 每步耗时 等效水平
200 ~1s 入门
1000 ~2-3s 业余 1 段
5000 ~8-12s 业余 4-5 段
10000 ~15-25s 强业余~弱职业
20000 ~30-50s 职业棋手

numSearchThreads(搜索线程数) 链接到标题

这个参数常被误解。它不是 GPU 核心数,也不是 CPU 物理核心数。而是负责生成搜索树、攒 batch 喂给 GPU 的 CPU 线程数

线程太少 (8)   → GPU 等 CPU → batch 小,利用率低
线程太多 (64)  → CPU 调度竞争 → 缓存抖动,反而掉速
线程适中 (32)  → GPU 吃到饱 → 吞吐最高

Benchmark 测试 链接到标题

KataGo 自带 benchmark 命令,自动测试不同线程数并给出评分。在你自己的设备上运行以下命令,找到最优值:

docker run --rm -i --device nvidia.com/gpu=all \
  -v /opt/katago/configs:/configs:ro \
  -v /opt/katago/models:/models:ro \
  katago:tensorrt \
  benchmark -model /models/kata1-b28c512nbt-s12763923712-d5805955894.bin.gz \
  -config /configs/simple_gtp.cfg

RTX 4060 Ti 实测结果:

线程数 visits/s avgBatchSize 瓶颈
5 2203 2.49 GPU 等 CPU
10 3068 4.95
16 3577 7.87
20 3612 9.80
32 3762 15.39 最优
40 3340 19.09 CPU 调度瓶颈
64 3602 30.59 batch 大但吞吐下降

结论:RTX 4060 Ti 的最佳搜索线程数为 32,相比 5 线程基线提升约 +173 ELO。

结语 链接到标题

从 2016 年 AlphaGo 战胜李世石时的举世震惊,到今天可以在自己家里用几千元的显卡运行开源 KataGo——围棋 AI 已经彻底改变了这项古老游戏的生态。

现在的 KataGo 不再是"能不能赢"的问题,而是人类如何借助 AI 来学习和探索围棋的无限可能。

无论是用 Sabaki 快速对弈一局,还是用 KaTrain 深入分析棋局,这套方案都能让你在家享受顶级的围棋 AI 体验。