搭建基于 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 的围棋对弈环境。
搭建环境概述 链接到标题
整体架构 链接到标题
对弈前端"] 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 配置 链接到标题
- 打开 Sabaki → File → Preferences → Engines
- 点击 Add
- Name:
KataGo - Path:
/Users/xxx/bin/katago-bridge - Arguments: 留空
- 点击 OK
KaTrain 配置 链接到标题
KaTrain 通过 altcommand 机制使用远端 KataGo:
- 打开 KaTrain → Settings → Engine
- 勾选 Alternative KataGo Command (
engine/altcommand) - 填入:
/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 体验。