lightvector/KataGo
GitHub: lightvector/KataGo
KataGo是一个基于AlphaZero算法的开源围棋AI引擎,提供了顶尖的对弈能力、精准的局势分析功能以及高效的自我对弈训练框架。
Stars: 4611 | Forks: 698
# KataGo
* [概述](#overview)
* [训练历史与研究](#training-history-and-research)
* [下载内容](#where-to-download-stuff)
* [设置与运行 KataGo](#setting-up-and-running-katago)
* [GUI](#guis)
* [Windows 和 Linux](#windows-and-linux)
* [MacOS](#macos)
* [OpenCL vs CUDA vs TensorRT vs Eigen](#opencl-vs-cuda-vs-tensorrt-vs-eigen)
* [使用说明](#how-to-use)
* [性能调优](#tuning-for-performance)
* [常见问题与疑难解答](#common-questions-and-issues)
* [特定 GPU 或 GPU 驱动的问题](#issues-with-specific-gpus-or-gpu-drivers)
* [常见故障排除](#common-problems)
* [其他疑问](#other-questions)
* [面向开发者的功能](#features-for-developers)
* [GTP 扩展](#gtp-extensions)
* [分析引擎](#analysis-engine)
* [编译 KataGo](#compiling-katago)
* [源代码概览](#source-code-overview)
* [自我对弈训练](#selfplay-training)
* [贡献者](#contributors)
* [许可证](#license)
## 概述
KataGo 的公开分布式训练仍在进行中!请访问 https://katagotraining.org/ 了解更多详情,下载最新、最强的神经网络,或者如果您想帮助 KataGo 进一步提升,请了解如何贡献!也欢迎访问计算机围棋 [discord 频道](https://discord.gg/bqkZAz3)!
截至 2026 年,KataGo 仍然是网上可用的最强开源围棋 AI 之一。KataGo 使用类似 AlphaZero 的过程进行训练,并进行了多项增强和改进。它能够在完全没有外部数据的情况下,仅通过自我对弈,从零开始迅速达到顶尖水平。其中一些改进利用了游戏特有的特性和训练目标,但也有许多技术是通用的,可以应用于其他游戏。因此,早期的训练速度比其他通过自我对弈训练的 AI 要快得多——只需几块高性能 GPU 运行几天,任何研究人员或爱好者都应该能够从头开始训练出一个在完整 19x19 棋盘上达到高级业余段位水平的神经网络。如果调校得当,仅使用*单块*顶级消费级 GPU 的训练过程,可能会在几个月内从零开始训练出一个具有超人类水平的 AI。
在实验方面,KataGo 在其 2020 年 6 月的训练周期末尾确实尝试了一些有限的使用外部数据的方法,并在其最近的公开分布式训练 "kata1"(网址:https://katagotraining.org/)中继续采用这一做法。虽然外部数据并非达到顶尖对弈水平所必需的,但在对抗某些对手时似乎仍能提供一些微弱的优势;同时,对于那些在自我对弈中极少出现,但在人类对局及用户希望分析的对局中常见的各种局面,外部数据在将其作为有用的分析工具时展现出显著益处。
KataGo 引擎旨在成为对围棋选手和开发者有用的工具,并支持以下功能:
* 估算领地和目数,而不仅仅是“胜率”,有助于分析级位和业余段位的对局,而不仅仅是关注那些在职业/超人类水平上会真正改变胜负走向的着手。
* 注重最大化目数,在让子棋中大幅落后时也能表现出色,并在领先时减少终局阶段的松懈对弈。
* 支持不同的贴目值(包括整数值),并在高让子棋对局中表现出色。
* 支持从 7x7 到 19x19 的棋盘大小,截至 2020 年 5 月,它可能也是 9x9 和 13x13 棋盘上最强的开源 AI。
* 支持多种[规则](https://lightvector.github.io/KataGo/rules.html),包括在几乎所有常见情况下与日本规则相匹配的规则,以及古代数子类规则。
* 对于工具/后端开发者——支持基于 JSON 的分析引擎,能够高效地批量进行多局评估,并且比 GTP 更易于使用。
## 训练历史、研究与文档
以下是关于 KataGo 研究和训练的一些文档/论文/帖子链接!
* 关于 KataGo 所使用的主要新思想和技术的论文:[Accelerating Self-Play Learning in Go (arXiv)](https://arxiv.org/abs/1902.10565)。虽然许多具体参数已经过时,但通用方法仍在继续使用。
* 自那以后,KataGo 发现了许多进一步的重大改进,这些改进已整合到 KataGo 最近的训练运行中,并记录在此:[KataGoMethods.md](docs/KataGoMethods.md)。
* KataGo 拥有一个完全可用的 Monte-Carlo Graph Search(蒙特卡洛图搜索)实现,将 MCTS 扩展到在图而不仅仅是树上运行!相关解释可在此处找到 [Monte-Carlo Graph Search from First Principles](docs/GraphSearch.md)。该解释旨在保持通用性(不特定于 KataGo),以填补学术文献中解释性材料的巨大空白,希望能对他人有所帮助!
* 非常感谢 [Jane Street](https://www.janestreet.com/) 对 KataGo 早期主要公开训练运行以及众多较小规模测试运行和实验提供的支持。关于最初版本发布和一些有趣后续实验的博客文章:
* [Accelerating Self-Play Learning in Go](https://blog.janestreet.com/accelerating-self-play-learning-in-go/)
* [Deep-Learning the Hardest Go Problem in the World](https://blog.janestreet.com/deep-learning-the-hardest-go-problem-in-the-world/).
有关 KataGo 早期训练运行的更多详细信息,包括与其他 AI 的比较,请参阅[早期训练历史与研究](TrainingHistory.md)!
此外,如果您想询问有关 KataGo 的基本信息或其工作原理,或者关于除 KataGo 之外的其他过去的围棋 AI,请考虑访问计算机围棋 [discord 频道](https://discord.gg/bqkZAz3)。
## 下载内容
适用于 Windows 和 Linux 的 KataGo 预编译可执行文件可以在[发布页面](https://github.com/lightvector/KataGo/releases)找到。
最新的神经网络可在 [https://katagotraining.org/](https://katagotraining.org/) 获取。
## 设置与运行 KataGo
KataGo 仅实现了一个 GTP 引擎,这是一个围棋软件使用的简单文本协议。它本身并没有图形界面。因此,通常您会希望将 KataGo 与图形用户界面 (GUI) 或分析程序结合使用。其中一些程序在其下载包中捆绑了 KataGo,这样您就可以在一个地方获取所有内容,而无需单独下载并管理文件路径和命令。
### GUI
这绝非一份完整的清单——市面上还有很多选择。但是,截至 2026 年,一些更易用和/或更受欢迎的可能包括:
* [KaTrain](https://github.com/sanderland/katrain) - 对于非技术用户来说,KaTrain 可能是最容易设置的,它提供了一体化软件包(无需单独下载 KataGo!),为较弱棋力的玩家提供可调难度的 AI,并具备良好的分析功能。
* [LizzieYzy Next](https://github.com/wimi321/lizzieyzy-next) 或 [LizzieYzy](https://github.com/yzyray/lizzieyzy) - Lizzie 的各种较新分支,具有更多功能和重新设计的界面,但仍专注于实时交互复盘。
* [Lizzie](https://github.com/featurecat/lizzie) - 曾经非常流行,用于运行长时间交互分析并进行实时可视化。请注意,Lizzie 目前已经有些陈旧,例如,其打包的 KataGo 版本非常过时,并且 Lizzie 本身存在许多从未修复的长期界面错误。如今,Lizzie 的几个分支可能更受青睐。
* [Ogatak](https://github.com/rooklift/ogatak) 是一个专门针对 KataGo 的 GUI,侧重于以快速、响应及时的方式显示基本内容。它并未内置 KataGo。
* [q5Go](https://github.com/bernds/q5Go) 和 [Sabaki](https://sabaki.yichuanshen.de/) 是通用的 SGF 编辑器和 GUI,它们支持 KataGo,包括 KataGo 的形势判断功能,以及许多高质量的功能。
通常,对于不提供一体化软件包的 GUI,您需要下载 KataGo(或您选择的任何其他围棋引擎!),并告诉 GUI 运行您的引擎的正确命令行,包括正确的文件路径。有关 KataGo 命令行界面的详细信息,请参阅下文的[使用说明](#how-to-use)。
### Windows 和 Linux
KataGo 目前官方支持 Windows 和 Linux,并[在每次发布时提供预编译的可执行文件](https://github.com/lightvector/KataGo/releases)。在 Windows 上,可执行文件通常开箱即用;在 Linux 上,如果您遇到系统库版本问题,作为替代方案,[从源代码构建](Compiling.md)通常很简单。由于并未对所有不同的操作系统版本和编译器进行过测试,如果您遇到问题,请随时开启 issue。当然,KataGo 也可以在 Windows 或 Linux 上从源代码编译。在 Windows 上,它支持 MSVC 或 MinGW 编译器;在 Linux 上,它支持 g++ 等常用编译器,这在后文中有详细记录。
### MacOS
社区也为 MacOS 上的 [Homebrew](https://brew.sh) 提供了 KataGo 包——那里的发布可能会略微落后于官方发布。
使用 `brew install katago`。最新的配置文件和神经网络安装在 KataGo 的 `share` 目录中。通过 `brew list --verbose katago` 找到它们。运行 katago 的基本方法是 `katago gtp -config $(brew list --verbose katago | grep 'gtp.*\.cfg') -model $(brew list --verbose katago | grep .gz | head -1)`。您应该根据此处的发布说明选择网络,并像安装 KataGo 的其他所有方式一样,自定义提供的示例配置。
### OpenCL vs CUDA vs TensorRT vs Eigen
KataGo 有四个后端:OpenCL (GPU)、CUDA (GPU)、TensorRT (GPU) 和 Eigen (CPU)。
简短总结如下:
* **为了轻松让程序跑起来,如果您有任何好或还不错的 GPU,请尝试 OpenCL。**
* **为了在 NVIDIA GPU 上获得通常更好的性能,请尝试 TensorRT**,但您可能需要从 Nvidia 安装 TensorRT。
* 如果您没有 GPU,或者您的 GPU 太旧/太弱无法与 OpenCL 配合使用,并且您只想要一个纯 CPU 版的 KataGo,请使用支持 AVX2 的 Eigen。
* 如果您的 CPU 较旧,或者在不支持 AVX2 的低端设备上,请使用不支持 AVX2 的 Eigen。
* CUDA 后端适用于安装了 CUDA+CUDNN 的 NVIDIA GPU,但可能不如 TensorRT。
更详细的说明:
* OpenCL 是一种通用 GPU 后端,应该能够与任何支持 [OpenCL](https://en.wikipedia.org/wiki/OpenCL) 的 GPU 或加速器一起运行,包括 NVIDIA GPU、AMD GPU,以及基于 CPU 的 OpenCL 实现或 Intel 集成显卡等。这是最通用的 KataGo GPU 版本,不需要像 CUDA 那样复杂的安装,因此只要您有相当现代的 GPU,它最有可能开箱即用。**但是,它在首次运行时也需要花费一些时间进行自我调优。**对于许多系统,这将需要 5-30 秒,但在一些较旧/较慢的系统上,可能需要几分钟或更长时间。此外,OpenCL 实现的质量有时参差不齐,特别是对于 Intel 集成显卡和几年前的旧 AMD GPU,因此它可能无法在非常旧的机器上运行,以及特定存在 Bug 的较新 AMD GPU 上运行,另请参阅[特定 GPU 或 GPU 驱动的问题](#issues-with-specific-gpus-or-gpu-drivers)。
* CUDA 是专为 NVIDIA GPU 设计的 GPU 后端(不适用于 AMD、Intel 或任何其他 GPU),需要安装 [CUDA](https://developer.nvidia.com/cuda-zone) 和 [CUDNN](https://developer.nvidia.com/cudnn) 以及现代的 NVIDIA GPU。在大多数 GPU 上,OpenCL 实际上会在性能上击败 NVIDIA 自己的 CUDA/CUDNN。例外情况是支持 FP16 和 Tensor Core 的顶级 NVIDIA GPU,在这种情况下,有时其中一个更好,有时另一个更好。
* TensorRT 类似于 CUDA,但仅使用 NVIDIA 的 TensorRT 框架来运行具有更优化内核的神经网络。对于现代的 NVIDIA GPU,只要 CUDA 能工作它就应该能工作,并且通常会比 CUDA 或任何其他后端更快。
* Eigen 是一个 *CPU* 后端,应该能广泛运行,*无需* GPU 或复杂的驱动程序。如果您没有好 GPU 或者根本没有 GPU,请使用此选项。它将比 OpenCL 或 CUDA 慢得多,但在优秀的 CPU 上,如果使用较小的(15 或 20)block 神经网络,通常仍能达到每秒 10 到 20 次模拟。Eigen 也可以使用 AVX2 和 FMA 支持进行编译,这可以为过去几年的 Intel 和 AMD CPU 提供巨大的性能提升。但是,它完全无法在不支持这些高级向量指令的旧 CPU(甚至可能是一些最近但低功耗的现代 CPU)上运行。
对于**任何**实现,如果您关心最佳性能,建议您也调优所使用的线程数,因为这可以在速度上产生 2-3 倍的差异。请参阅下面的“性能调优”。但是,如果您主要只是想让它跑起来,那么默认的未调优设置也是合理的。
### 使用说明
KataGo 只是一个引擎,没有自己的图形界面。因此,通常您需要将 KataGo 与 [GUI 或分析程序](#guis) 结合使用。
如果您在设置过程中遇到任何问题,请查看[常见问题与疑难解答](#common-questions-and-issues)**首先**:运行类似这样的命令,使用您[下载](https://github.com/lightvector/KataGo/releases/tag/v1.4.5)的神经网络文件,以确保 KataGo 正常工作。在 OpenCL 上,它还会针对您的 GPU 进行调优。
```
./katago.exe benchmark # if you have default_gtp.cfg and default_model.bin.gz
./katago.exe benchmark -model .bin.gz # if you have default_gtp.cfg
./katago.exe benchmark -model .bin.gz -config gtp_custom.cfg # use this .bin.gz neural net and this .cfg file
```
它会告诉您合适的线程数。编辑您的 .cfg 文件并将“numSearchThreads”设置为该数值,以获得最佳性能。
**或者**:运行此命令让 KataGo 根据回答一些问题为您生成自定义 gtp 配置:
```
./katago.exe genconfig -model .bin.gz -output gtp_custom.cfg
```
**接下来**:类似这样的命令将运行 KataGo 引擎。这是提供给您的 [GUI 或分析程序](#guis) 以便其运行 KataGo 的命令。
```
./katago.exe gtp # if you have default_gtp.cfg and default_model.bin.gz
./katago.exe gtp -model .bin.gz # if you have default_gtp.cfg
./katago.exe gtp -model .bin.gz -config gtp_custom.cfg # use this .bin.gz neural net and this .cfg file
```
在为 GUI 程序输入 KataGo 的命令时,您可能需要指定不同的路径,例如:
```
path/to/katago.exe gtp -model path/to/.bin.gz
path/to/katago.exe gtp -model path/to/.bin.gz -config path/to/gtp_custom.cfg
```
#### 人类风格的行棋与分析
如果您从 https://github.com/lightvector/KataGo/releases/tag/v1.15.0 下载了人类 SL 模型 b18c384nbt-humanv0.bin.gz,并运行类似以下的命令,同时提供普通模型和人类 SL 模型,您也可以让 KataGo 模仿人类的行棋方式:
```
./katago.exe gtp -model .bin.gz -human-model b18c384nbt-humanv0.bin.gz -config gtp_human5k_example.cfg
```
[gtp_human5k_example.cfg](cpp/configs/gtp_human5k_example.cfg) 将 KataGo 配置为模仿 5 级水平的玩家。您可以将其更改为模仿其他段位,以及做更多的事情,包括让 KataGo 以人类风格行棋但仍保持在强劲的水平,或者以有趣的方式进行分析。请阅读配置文件本身,了解有关这些可能性的文档!
另请参阅[本指南](https://github.com/lightvector/KataGo/blob/master/docs/Analysis_Engine.md#human-sl-analysis-guide)以了解人类 SL 模型的使用,它是从下文提到的基于 JSON 的分析引擎的角度编写的,但也同样适用于 gtp。
#### 其他命令:
运行基于 JSON 的[分析引擎](docs/Analysis_Engine.md),可为后端围棋服务进行高效的批量评估:
* `./katago analysis -model .gz -config .cfg`
运行高性能的对弈引擎,该引擎将在共享相同 GPU 批处理和 CPU 的情况下让一组 AI 互相对弈:
* `./katago match -config .cfg -log-file match.log -sgf-output-dir `
强制 OpenCL 调优器重新调优:
* `./katago tuner -config .cfg`
打印版本:
* `./katago version`
### 性能调优
优化 KataGo 性能最重要的参数是要使用的线程数——这很容易产生 2 到 3 倍的差异。
其次,您也可以阅读 GTP 配置(`default_gtp.cfg` 或 `gtp_example.cfg` 或 `configs/gtp_example.cfg` 等)中的参数。其中描述了许多其他设置,您可以设置这些设置以调整 KataGo 的资源使用,或选择要使用的 GPU。您还可以调整诸如 KataGo 的认输阈值、后台思考行为或效用函数等内容。大多数参数直接记录在[示例配置文件](cpp/configs/gtp_example.cfg)中。许多参数也可以在通过上述 `genconfig` 命令生成配置时进行交互式设置。
### 常见问题与疑难解答
本节总结了运行 KataGo 时的一些常见问题和疑难解答。
#### 特定 GPU 或 GPU 驱动的问题
如果您在尝试运行 benchmark 或程序本身时观察到 KataGo 崩溃,并且您使用的是以下 GPU 之一,那么这很可能就是原因。
* **AMD Radeon RX 5700** - 自该 GPU 发布以来,AMD 针对该 GPU 的 OpenCL 驱动一直存在 Bug,截至 2020 年 5 月,AMD 从未发布过修复程序。如果您使用此 GPU,您将无法运行 KataGo(Leela Zero 和其他围棋引擎可能也会失败),并且如果在执行其他任何使用 OpenCL 的科学或数学计算时,可能也会得到不正确的计算结果或崩溃。例如,请参阅这些 reddit 帖子:[[1]](https://www.reddit.com/r/Amd/comments/ebso1x/its_not_just_setihome_any_mathematic_or/) 或 [[2]](https://www.reddit.com/r/BOINC/comments/ebiz18/psa_please_remove_your_amd_rx5700xt_from_setihome/) 或这个 [L19 帖子](https://lifein19x19.com/viewtopic.php?f=18&t=17093)。
* **OpenCL Mesa** - 这些针对 OpenCL 的驱动存在 Bug。特别是在崩溃前的启动期间,如果您看到 KataGo 打印类似以下内容
`Found OpenCL Platform 0: ... (Mesa) (OpenCL 1.1 Mesa ...) ...`
那么您正在使用 Mesa 驱动。您需要更改您的驱动程序,例如请参阅此 [KataGo issue](https://github.com/lightvector/KataGo/issues/182#issuecomment-607943405),其中链接到[此帖子](https://bbs.archlinux.org/viewtopic.php?pid=1895516#p1895516)。
* **Intel 集成显卡** - 对于没有独立 GPU 的较弱/较旧的机器、笔记本电脑或设备,KataGo 最终可能会使用 CPU 内置的较弱“Intel 集成显卡”。通常这可以正常工作(尽管与使用真正的 GPU 相比,KataGo 会很慢,并且只能获得很少的模拟次数),但各种版本的 Intel 集成显卡也可能存在 Bug 且根本无法工作。如果驱动更新对您不起作用,那么唯一的解决办法是升级到更好的 GPU。例如,请参阅此 [issue](https://github.com/lightvector/KataGo/issues/54) 或此 [issue](https://github.com/lightvector/KataGo/issues/78),或[其他 Github issue](https://github.com/CNugteren/CLBlast/issues/280)。
#### 常见故障排除
* **KataGo 似乎在 Lizzie/Sabaki/q5go/GoReviewPartner 等程序中启动时挂起或永远处于“加载中”状态。**
* 很可能是您有一些配置错误、文件路径指定不正确、GPU 不良等。这些 GUI 中的许多在报告错误方面做得很差,可能会完全吞噬掉 KataGo 告诉您哪里出错的错误信息。尝试按照[上文](#how-to-use)的描述直接在命令行运行 KataGo 的 `benchmark` 或 `gtp`。
* 有时根本没有任何错误,仅仅是因为当 KataGo 首次在给定网络大小上运行时,它需要进行一些耗时的调优,这可能需要几分钟。同样,如果您直接在命令行运行 `benchmark` 命令,这一点会更清晰。调优之后,随后的运行会更快。
* **KataGo 在命令行下可以工作,但在为 GUI 指定正确的文件路径时遇到麻烦。**
* 如[上文](#how-to-use)所述,您可以将配置命名为 `default_gtp.cfg`,并将您下载的任何网络文件命名为 `default_model.bin.gz`(适用于较新的 `.bin.gz` 模型)或 `default_model.txt.gz`(适用于较旧的 `.txt.gz` 模型)。将它们放入与 KataGo 可执行文件相同的目录中,然后您就根本不需要指定 `-config` 或 `-model` 路径了。
* **KataGo 在尝试运行初始调优时给出类似 `Could not create file` 的错误。**
* KataGo 可能没有在其所在目录的写入权限。
* 例如,在 Windows 上,`Program Files` 目录及其子目录通常被限制为仅允许具有管理员级别权限才能写入。尝试将 KataGo 放置在其他位置。
* **我是命令行新手,仍然不知道该告诉 Lizzie/q5go/Sabaki/什么软件才能让它运行 KataGo。**
* 同样,请确保您的目录路径正确。
* 一个常见问题:避免在任何文件或目录名称中的任何地方包含空格,因为根据 GUI 的不同,这可能需要您以各种方式对路径或参数进行引号括起或字符转义。
* 如果您不了解命令行参数和标志、相对路径与绝对路径等,请在线搜索。尝试访问 https://superuser.com/questions/1270591/how-to-use-relative-paths-on-windows-cmd 或 https://www.bleepingcomputer.com/tutorials/understanding-command-line-arguments-and-how-to-use-them/ 或您找到的其他页面,或者找懂技术的人在聊天中甚至在现实中帮助您。
* 考虑改用 https://github.com/sanderland/katrain - 这是一个由他人为 KataGo 编写的优秀 GUI,通常会为您自动完成所有技术设置。
* **我遇到了其他错误,或者仍然想要进一步的帮助。**
* 请访问 [Leela Zero、KataGo 和其他 AI 所在的 discord 聊天室](https://discord.gg/bqkZAz3)并在“#help”频道中提问。
* 如果您认为自己发现了 KataGo 本身的 Bug,也欢迎随时[提交 issue](https://github.com/lightvector/KataGo/issues)。请尽可能详细地提供有关您运行的确切命令、完整的错误消息和输出(如果您在 GUI 中,请确保检查该 GUI 的原始 GTP 控制台或日志)、您尝试过的方法、您的配置文件和网络、您的 GPU 和操作系统等信息。
#### 其他疑问
* **如何让 KataGo 使用日本规则或其他规则?**
* KataGo 支持[GTP 扩展](docs/GTP_Extensions.md)供 GUI 开发者设置规则,但遗憾的是截至 2020 年 6 月,只有少数软件支持。因此作为一种变通方法,有几种方式:
* 编辑 KataGo 的配置(`default_gtp.cfg` 或 `gtp_example.cfg` 或 `gtp.cfg`,或任何您命名的名称),以使用 `rules=japanese` 或 `rules=chinese` 或任何您需要的设置,或者将 `koRule`、`scoringRule`、`taxRule` 等各项规则设置为您需要的值。请在配置中参阅[此处](https://github.com/lightvector/KataGo/blob/master/cpp/configs/gtp_example.cfg#L91),并在[此网页](https://lightvector.github.io/KataGo/rules.html)查看 KataGo 规则集的完整描述。
* 使用 `genconfig` 命令(`./katago genconfig -model .gz -output .cfg`)生成配置,它将交互式地帮助您,包括询问您想要什么默认规则。
* 如果您的 GUI 允许直接访问 GTP 控制台(例如,在 Lizzie 中按 `E` 键),那么您可以直接在 GTP 控制台中运行 `kata-set-rules japanese` 或类似命令来设置其他规则,以便在对局或分析会话中途动态更改规则。
* **我应该使用哪个模型/网络?**
* 通常,请使用[主训练网站](https://katagotraining.org/)中最新或最强的 b18 大小的网络 (b18c384nbt)。即使是在性能较弱的机器上,这也是最好的神经网络,因为尽管它比旧的小网络稍慢,但每次评估的强度和准确性都要高得多。
* 如果您非常在乎理论纯度——没有外部数据,AI 严格自主学习——请使用[此版本](https://github.com/lightvector/KataGo/releases/tag/v1.4.0)中的 20 或 40 block 网络,它们以这种方式保持了纯度,并且仍然比 Leela Zero 强得多,但也比最新的网络弱得多。
* 如果您想要一些运行起来更快的网络,并且由于它们处于独特的学习阶段而各自具有有趣的行棋风格,请尝试[此处](https://katagoarchive.org/g170/neuralnets/index.html)的任何“b10c128”或“b15c192”扩展训练网络,这些是训练早期阶段的 10 block 和 15 block 网络,尽管它们弱得多,但仍然具备职业水平及以上的实力。
## 面向开发者的功能
#### GTP 扩展:
除了基本的 [GTP 命令](https://www.lysator.liu.se/~gunnar/gtp/)集之外,KataGo 还支持一些额外的命令,用于分析工具和其他程序。
KataGo 的 GTP 扩展记录在**[此处](docs/GTP_Extensions.md)**。
* 值得注意的是:KataGo 公开了一个 `kata-analyze` 的 GTP 命令,除了策略和胜率之外,它还报告了*预期目数*的估计值以及棋盘上每个位置预测领地归属的热力图。预期目数对于复盘让子棋或弱者的对局应该特别有用。在让子棋中,黑棋的胜率通常即使在黑棋犯下重大失误时也会保持在接近 100%(直到比赛变得非常接近),而预期目数应该能更清楚地表明前面的哪些失误正在失分并让白棋追赶上来,以及这些失误具体损失了多少分。如果您有兴趣在任何分析工具中添加对此功能的支持,请随时联系,我很乐意回答问题并提供帮助。
* KataGo 还公开了一些允许设置生效规则(中国、AGA、日本等)的 GTP 扩展。再次参阅[此处](docs/GTP_Extensions.md)了解详细信息。
#### 分析引擎:
KataGo 还实现了一个单独的引擎,如果您想一次性分析整盘棋局,该引擎可以通过批处理进行更快的评估,并且如果您在易于解析 JSON 的环境中工作,它可能比 GTP 省去很多麻烦。详情请参阅[此处](docs/Analysis_Engine.md)。
KataGo 还包含了示例代码,演示了如何从 Python 调用分析引擎,请参阅[此处](python/query_analysis_engine_example.py)!
## 编译 KataGo
KataGo 是用 C++ 编写的。它应该可以通过支持至少 C++14 的 g++ 在 Linux 或 OSX 上编译,或者通过 MSVC 15 (2017) 及更高版本或 MinGW 在 Windows 上编译。可以在[编译 KataGo](Compiling.md) 找到说明。
## 源代码概览如果您想了解各部分代码的位置及其如何组合在一起,请参阅 [cpp readme](cpp/README.md) 或 [python readme](python/README.md) 以获取此仓库中源代码的高级概览。
## 自我对弈训练:
如果您还想运行完整的自我对弈循环并使用此处的代码训练您自己的神经网络,请参阅[自我对弈训练](SelfplayTraining.md)。
## 贡献者
非常感谢为这个项目做出贡献的各位!请在[贡献者](CONTRIBUTORS)查看贡献者名单。
## 许可证
除了包含在此仓库 `cpp/external/` 下的几个外部库以及单个文件 `cpp/core/sha2.cpp`(它们都有各自的单独许可证)之外,此仓库中的所有代码和其他内容均根据以下文件中的许可证发布,供免费使用或修改:[LICENSE](LICENSE)。
除许可证外,如果您最终使用此仓库中的任何代码进行了您自己很酷的新自我对弈或神经网络训练实验,我 希望能听到相关的分享。
标签:AlphaZero, Apex, CUDA, DNS解析, GTP引擎, KataGo, OpenCL, TensorRT, Vectored Exception Handling, Veh, 人工智能, 分布式计算, 围棋AI, 开源项目, 异常处理, 强化学习, 机器学习, 棋类游戏, 模型训练, 深度学习, 游戏AI, 用户模式Hook绕过, 神经网络训练, 自动驾驶, 自我对弈, 计算机博弈, 逆向工具