KataGO(引擎安装及解释)
crownyouyou 2024-07-05 09:31:03 阅读 88
这个没有用户界面。这是一个引擎!!!
这个没有用户界面。这是一个引擎!!!
这个没有用户界面。这是一个引擎!!!
目录
1、[原网站链接](https://github.com/lightvector/katago/releases)2、安装对应的cudaa和cuda【[参考链接](http://t.csdnimg.cn/RxfUU)】3、Readme.软件介绍【机器翻译】一、【概述】Overview二、【训练和研究过程】 Training History and Research三、【在哪下载】Where To Download Stuff四、【设置和运行KataGO】Setting Up and Running KataGo五、【用户界面】GUIs六、【Windows和Linux】 Windows and Linux七、【MacOS】 MacOS八、【OpenCL vs CUDA vs TensorRT vs Eigen】九、【 如何使用】How To Use十、【其他问题】Other Commands:十一、【优化性能】Tuning for Performance十二、【常见疑难问题】Common Questions and Issues十三、【特定GPU或GPU驱动程序问题】 Issues with specific GPUs or GPU drivers十四、【常见问题】 Common Problems十五、【其他的问题】Other Questions十六、【面向开发者的功能】Features for Developers十七、【 分析引擎】 Analysis Engine十八、【编译KataGO】 Compiling KataGo十九、【源代码概述】Source Code Overview:二十、【自我训练】Selfplay Training:贡献者许可证
4、安装教程下载链接
1、原网站链接
2、安装对应的cudaa和cuda【参考链接】
由于版本问题,我下载的是当时最新的KataGo-1.13.2-kata9x9
3、Readme.软件介绍【机器翻译】
一、【概述】Overview
KataGo的公开分布式训练正在进行中!请访问katago了解更多细节,下载最新和最强的神经网络,或者学习如何帮助KataGo进一步改进!也可以查看电脑Go不和谐频道!
截至2023年,KataGo仍然是网上最强大的开源围棋机器人之一。KataGo是使用类似alphazero的过程进行训练的,经过许多增强和改进,能够迅速达到顶级水平,完全从零开始,不需要外部数据,只通过自我游戏来提高。其中一些改进利用了游戏特定功能和训练目标,但也有许多技术是通用的,可以应用于其他游戏。因此,早期训练比其他自我训练的机器人要快得多——只需要几个强大的gpu几天,任何研究人员/爱好者都应该能够在完整的19x19棋盘上训练一个神经网络,从无到有到高业余水平。如果调整得好,只使用一个高端消费级GPU进行训练,可能会在几个月内将一个机器人从零开始训练到超人的力量。
在实验上,KataGo在2020年6月运行结束时也尝试了一些有限的使用外部数据的方法,并在其最近的公开分发运行中继续这样做,“kata1”在https://katagotraining.org/上。外部数据并不是达到顶级水平的必要条件,但在对抗某些对手时仍然能够提供一些轻微的好处,并且能够作为一种有用的分析工具,用于分析各种情境(游戏邦注:这些情境不会出现在自我游戏中,但会出现在人类游戏和用户希望分析的游戏中)。
关于KataGo中使用的主要新思想和技术的论文:加速围棋的自我学习(arXiv)。
从那时起,我们发现了一些重大的进一步改进,这些改进已被纳入KataGo最近的运行中。这些和一些研究笔记可以在这里找到(docs/ katagomemethods .md)。
非常感谢Jane Street支持KataGo早期发布的主要运行训练,以及许多小型测试运行和实验。关于初始版本和一些有趣的后续实验的博客文章:
*加速自学围棋
*深度学习世界上最难的围棋问题。
KataGo的引擎还旨在成为围棋玩家和开发者的有用工具,并支持以下功能:
*估计地盘和得分,而不仅仅是“胜率”,帮助分析kyu和业余摔跤比赛,而不仅仅是在职业/超人水平的比赛中真正影响比赛结果的动作。
*关心分数最大化,在落后的情况下在障碍游戏中发挥强大的作用,在获胜的情况下在终局中减少松懈的发挥。
*支持可选的komi值(包括整数值)和良好的高障碍游戏。
*支持从7x7到19x19的板尺寸,截至2020年5月,可能是9x9和13x13上最强的开源机器人。
*支持多种规则,包括在几乎所有常见情况下匹配日本规则的规则,以及古老的石头计数规则。
*对于工具/后端开发者-支持基于json的分析引擎,可以有效地批处理多个游戏评估,并且比GTP更容易使用。
二、【训练和研究过程】 Training History and Research
有关KataGo旧训练运行的更多细节,包括与其他机器人的比较,请参阅训练历史和研究!
此外,如果你想询问关于KataGo的一般信息或它是如何工作的,或者关于KataGo之外的一些过去的围棋机器人,可以考虑计算机围棋不和频道。
三、【在哪下载】Where To Download Stuff
预编译的KataGo可执行文件可以在发布页面上找到,适用于Windows和Linux。
最新的神经网络可以在https://katagotraining.org/上找到。
四、【设置和运行KataGO】Setting Up and Running KataGo
KataGo只实现了一个GTP引擎,这是Go软件使用的一个简单的文本协议。它本身没有图形界面。因此,通常情况下,您需要将KataGo与GUI或分析程序一起使用。他们中的一些人将KataGo捆绑在他们的下载中,这样你就可以从一个地方获得所有内容,而不是单独下载并管理文件路径和命令。
五、【用户界面】GUIs
这绝不是一个完整的清单——还有很多东西在那里。但是,截至2020年,一些更容易和/或流行的可能是:
KaTrain - KaTrain可能是非技术用户最容易设置的,提供了一个一体化的包(不需要单独下载KataGo !),为较弱的玩家修改了强度的机器人,以及良好的分析功能。
Lizzie - Lizzie是非常受欢迎的运行长交互式分析和可视化他们,因为他们发生。Lizzie还提供全套服务。但是,请记住,KataGo的OpenCL版本可能需要相当长的时间来调整和加载第一次启动[这里](# OpenCL -vs-cuda), Lizzie在显示这一进程时做得很差。在实际发生错误或失败的情况下,Lizzie的界面并不能很好地解释这些错误,而且看起来会永远挂起。与Lizzie一起打包的KataGo版本非常强大,但可能并不总是最新或最强的,因此,一旦您使用它,您可能需要从发布页面下载KataGo和更新的网络,并用它们替换Lizzie的版本。
Ogatak是一个katago特定的GUI,强调以快速响应的方式显示基础知识。它不包括KataGo。
q5Go和Sabaki是通用的SGF编辑器和gui,支持KataGo,包括KataGo的分数估计,以及许多高质量的功能。
通常,对于不提供一体化包的GUI,您需要下载KataGo(或您选择的任何其他Go引擎!),并告诉GUI运行适当的命令行来调用您的引擎,并包含适当的文件路径。有关KataGo命令行界面的详细信息,请参阅下面的[如何使用](# How - To - Use)。
六、【Windows和Linux】 Windows and Linux
KataGo目前正式支持Windows和Linux,每个版本提供预编译的可执行文件。在Windows上,可执行文件通常可以开箱运行,在Linux上,如果遇到系统库版本的问题,可以选择从源代码构建通常是直接的。并非所有不同的操作系统版本和编译器都经过了测试,所以如果遇到问题,请随时打开一个问题。当然,KataGo也可以通过Windows上的MSVC从Windows上的源代码编译,也可以通过g++等常见编译器在Linux上编译。
七、【MacOS】 MacOS
社区还为MacOS上的Homebrew提供KataGo包-发布可能会略微落后于官方发布。
使用“brew install katago”。最新的配置文件和网络安装在KataGo的“share”目录下。通过“brew list -verbose katago”找到它们。运行katago的基本方法是’ katago gtp -config $(酿造列表——verbose katago | grep gtp*.cfg) -model $(酿造列表——verbose katago | grep .gz | head -1) '。您应该根据这里的发行说明选择Network,并自定义所提供的示例配置,就像安装KataGo的其他方式一样。
八、【OpenCL vs CUDA vs TensorRT vs Eigen】
开放计算语言 :OpenCL NVIDIA推出的运算平台:CUDA vs 高性能深度学习推理SDK:TensorRT vs 高层次的C ++库:Eigen
KataGo有四个后端:OpenCL (GPU)、CUDA (GPU)、TensorRT (GPU)、Eigen (CPU)。
快速总结如下:
** *如果你有任何好的或体面的GPU,可以尝试使用OpenCL
** 为了在NVIDIA gpu上获得更好的性能,请尝试TensorRT*,但您可能需要从NVIDIA安装TensorRT。
*使用Eigen与AVX2如果你没有GPU或如果你的GPU太老/弱与OpenCL工作,你只是想要一个普通的CPU KataGo。
*如果您的CPU是旧的或在不支持AVX2的低端设备上,请使用没有AVX2的Eigen。
CUDA后端可以为安装了CUDA+CUDNN的NVIDIA gpu工作,但可能比TensorRT更差。
更详细地说:
OpenCL是一个通用的GPU后端,应该能够与任何支持[OpenCL]的GPU或加速器一起运行(https://en.wikipedia.org/wiki/OpenCL),包括NVIDIA GPU, AMD GPU,以及基于cpu的OpenCL实现或像英特尔集成图形这样的东西。这是KataGo最通用的GPU版本,不需要像CUDA那样复杂的安装,所以只要你有一个相当现代的GPU,就很可能开箱即用。**然而,当它第一次运行时,它也需要一些时间来调整自己。**对于许多系统,这将需要5-30秒,但在一些较旧/较慢的系统上,可能需要数分钟或更长时间。此外,OpenCL实现的质量有时也不一致,特别是对于Intel Integrated Graphics和AMD GPU已经超过几年了,所以它可能不适用于非常旧的机器,以及特定的有bug的新AMD GPU,参见[特定GPU或GPU驱动程序的问题](# Issues -with-specific- GPU -or- GPU -drivers)。
CUDA是特定于NVIDIA GPU的GPU后端(它将不与AMD或英特尔或任何其他GPU一起工作),需要安装CUDA和CUDNN和现代NVIDIA GPU。在大多数gpu上,OpenCL的实现实际上会在性能上击败NVIDIA自己的CUDA/CUDNN。唯一的例外是支持FP16和张量核心的高端NVIDIA gpu,在这种情况下,有时一个更好,有时另一个更好。
TensorRT类似于CUDA,但只使用NVIDIA的TensorRT框架来运行具有更优化内核的神经网络。对于现代NVIDIA gpu,它应该在CUDA工作时工作,并且通常比CUDA或任何其他后端更快。
Eigen是一个CPU后端,应该广泛工作无需 GPU或花哨的驱动程序。如果你没有好的GPU或者根本没有GPU,可以使用这个。它将比OpenCL或CUDA慢得多,但在一个好的CPU上,如果使用较小的(15或20)块神经网络,通常每秒仍然可以得到10到20个播放。Eigen也可以在AVX2和FMA支持下编译,这可以为过去几年的英特尔和AMD cpu提供很大的性能提升。但是,在不支持这些花哨的矢量指令的较旧的cpu(甚至可能是一些最近的低功耗现代cpu)上,它根本无法运行。
对于任何实现,如果您关心最佳性能,建议您也调优所使用的线程数量,因为它可以在速度上产生2-3倍的差异。请参阅下面的“调优性能”。但是,如果您主要只是想让它工作,那么默认的未调优设置也应该是合理的。
九、【 如何使用】How To Use
KataGo只是一个引擎,没有自己的图形界面。因此,通常情况下,您需要将KataGo与[GUI或分析程序](# GUI)一起使用。
如果您在设置过程中遇到任何问题,请查看[常见问题和问题](# Common - Questions -and- Issues)。
第一:运行这样的命令,以确保KataGo工作,与你[下载]的神经网络文件(https://github.com/lightvector/KataGo/releases/tag/v1.4.5)。在OpenCL上,它也会针对你的GPU进行调优。
’ ’ ’
./katago.exe基准#如果你有default_gtp.cfg和default_model.bin.gz
./katago.exe基准-模型.bin.gz #如果你有default_gtp.cfg
./katago.exe基准-模型.bin.gz -config gtp_custom.cfg #使用这个。bin.gz神经网络和这个。cfg文件
’ ’ ’
它会告诉你线程的数量。编辑您的.cfg文件并将“numSearchThreads”设置为那么多以获得最佳性能。
或:运行此命令让KataGo根据回答的一些问题为您生成自定义gtp配置:
’ ’ ’
./katago.exe genconfig -model .bin.gz -output gtp_custom.cfg
’ ’ ’
下一个:像这样的命令将运行KataGo的引擎。这是给你的GUI或分析程序的命令,这样它就可以运行KataGo。
’ ’ ’
./katago.exe GTP #如果你有default_gtp.cfg和default_model.bin.gz
./katago.exe gtp -model .bin.gz #如果你有default_gtp.cfg
./katago.exe gtp -model .bin.gz -config gtp_custom.cfg #使用这个.bin.gz神经网络和这个。cfg文件
’ ’ ’
在输入KataGo的GUI程序命令时,您可能需要指定不同的路径,例如:
’ ’ ’
gtp -model path/to/.bin.gz
gtp -model path/to/.bin.gz -config path/to/gtp_custom.cfg
’ ’ ’
十、【其他问题】Other Commands:
运行一个基于json的分析引擎,可以对后端Go服务进行高效的批处理评估:
*”。/katago analysis -model .gz -config <ANALYSIS_CONFIG>.cfg ’
运行一个高性能的匹配引擎,将玩一个机器人池对彼此共享相同的GPU批次和cpu。
*”。/katago match -config <MATCH_CONFIG>.cfg -log-file match.log -sgf-output-dir
’
强制OpenCL调谐器重新调谐:
*”。/katago tuner -config <GTP_CONFIG>.cfg ’
打印版:
*”./ katago版本的
十一、【优化性能】Tuning for Performance
优化KataGo性能的最重要参数是要使用的线程数——这很容易产生2到3倍的差异。
其次,您还可以读取GTP配置中的参数(’ default_gtp.cfg ‘或’ gtp_example.cfg ‘或’ configs/gtp_example.cfg ‘等)。这里描述了许多其他设置,您可以设置以调整KataGo的资源使用情况,或选择使用哪个gpu。你也可以调整像KataGo的辞职阈值,思考行为或效用函数。大多数参数直接内联记录在示例配置文件中。在通过上面描述的’ genconfig '命令生成配置时,也可以交互式地设置许多配置。
十二、【常见疑难问题】Common Questions and Issues
本节总结了运行KataGo时的一些常见问题。
十三、【特定GPU或GPU驱动程序问题】 Issues with specific GPUs or GPU drivers
如果您在尝试运行基准测试或程序本身时观察到KataGo中的任何崩溃,并且您有以下gpu之一,那么这可能是原因。
** AMD Radeon RX 5700* -自该GPU发布以来,AMD针对该GPU的OpenCL驱动程序一直存在错误,截至2020年5月,AMD仍未发布修复程序。如果你使用这个GPU,你将无法运行KataGo (Leela Zero和其他围棋引擎也可能会失败),如果使用OpenCL做任何其他科学或数学的事情,你也可能会得到不正确的计算或崩溃。例如,看看这些reddit线程:[1]或[2]或这个L19线程。
** OpenCL台面* -这些驱动程序的OpenCL是错误的。特别是当你在启动时看到KataGo打印类似这样的东西
'找到OpenCL平台0:…(桌面)(OpenCL 1.1桌面…)…
那么您正在使用Mesa驱动程序。你需要改变你的驱动程序,例如这个KataGo问题链接到这个线程。
** 英特尔集成图形* -对于较弱/较旧的机器或笔记本电脑或没有专用GPU的设备,KataGo可能最终使用内置CPU的弱“英特尔集成图形”。通常情况下,这将工作得很好(虽然KataGo将是缓慢的,只有很少的播放与使用真正的GPU相比),但各种版本的英特尔集成图形也可能是错误的,根本不能工作。如果驱动程序更新对你不起作用,那么唯一的解决方案就是升级到更好的GPU。例如,参见此问题或此问题,或此其他Github的问题。
十四、【常见问题】 Common Problems
** KataGo似乎在Lizzie/Sabaki/q5go/GoReviewPartner等启动时永远挂起或“加载”*
*可能你有一些错误的配置,指定的文件路径不正确,一个坏的GPU,等等。许多gui在报告错误方面做得很差,可能会完全忽略来自KataGo的错误信息,而这些错误信息本可以告诉您哪里出了问题。尝试直接在命令行上运行KataGo的’ benchmark ‘或’ gtp ',如上所述(#how-to-use)。
有时根本没有错误,这仅仅是第一次* KataGo在给定的网络大小上运行,它需要做一些昂贵的调优,这可能需要几分钟。如果您直接在命令行中运行’ benchmark '命令,这将更加清晰。调优之后,随后的运行将会更快。
** *KataGo在命令行上工作,但在为GUI指定正确的文件路径时遇到麻烦
*如上所述(#如何使用),你可以将你的配置命名为’ default_gtp.cfg ‘,并将你下载的网络文件命名为’ default_model.bin.gz ‘(适用于较新的’ .bin.gz ‘模型)或’ default_model.txt.gz ‘(适用于较旧的’ .txt.gz ‘模型)。将它们粘贴到与KataGo的可执行文件相同的目录中,然后您根本不需要指定’ -config ‘或’ -model '路径。
** *KataGo在尝试运行初始调优时给出“无法创建文件”之类的错误
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和其他机器人出没的不和谐聊天并在“#help”频道中询问。
*如果你认为你发现了KataGo本身的一个bug,也可以随时打开一个问题。请尽可能详细地提供你运行的确切命令,完整的错误信息和输出(如果你在GUI中,请确保检查GUI的原始GTP控制台或日志),你尝试过的东西,你的配置文件和网络,你的GPU和操作系统等。
十五、【其他的问题】Other Questions
** 如何让KataGo使用日文规则或其他规则?*
KataGo支持一些GTP扩展,供gui开发人员设置规则,但不幸的是,截至2020年6月,只有少数人使用它。所以作为一种变通方法,有以下几种方法:
*编辑KataGo的配置(’ default_gtp.cfg ‘或’ gtp_example.cfg ‘或’ gtp.cfg ‘,或任何你命名它)使用’ rules=japanese ‘或’ rules=chinese ‘或任何你需要的,或设置单独的规则’ korrule ', ’ scoringRule ', ’ taxRule '等。请参阅这里在配置中的位置,或参阅此网页了解KataGo规则集的完整描述。
*使用’ genconfig ‘命令(’。/katago genconfig -model .gz -output <PATH_TO_SAVE_GTP_CONFIG>.cfg ')生成一个配置,它会交互式地帮助你,包括询问你想要的默认规则。
*如果你的GUI允许直接访问GTP控制台(例如,在Lizzie中按“E”),那么你可以直接在GTP控制台运行“kata-set-rules japanese”或类似的规则,以便在游戏或分析过程中动态更改规则。
** 我应该使用哪种型号/网络?*
*一般来说,使用来自主要训练网站的最强或最新的b18大小的网(b18c384nbt)。即使对于较弱的机器,这也将是最好的神经网络,因为尽管比旧的较小的网络慢一点,但每次评估它都更强大,更准确。
*如果你非常关心理论纯度-没有外部数据,bot严格自己学习-使用此版本中的20或40块网络,它们以这种方式纯净,仍然比Leela Zero强得多,但也比最近的网络弱得多。
*如果你想要一些运行速度更快的网络,并且由于其独特的学习阶段,每个网络都有自己有趣的游戏风格,尝试任何“b10c128”或“b15c192”扩展训练网络在这里,它们是10块和15块网络,较早的运行要弱得多,但仍然是专业水平和更高水平。
十六、【面向开发者的功能】Features for Developers
GTP 拓展
除了一组基本的GTP命令之外,KataGo还支持一些额外的命令,用于分析工具和其他程序。
KataGo的GTP扩展有文档记录这里**。
值得注意的是:KataGo暴露了GTP命令“kata-analyze”,除了策略和胜率之外,还报告了预期分数*的估计和棋盘每个位置的预测领土所有权的热图。预期分数对于评估障碍比赛或较弱选手的比赛尤其有用。尽管在不利棋局中,黑棋的胜率通常保持在接近100%,即使黑棋犯了重大错误(直到最后比赛变得非常接近),但预期分数应该更清楚地表明,哪些早期的动作会失分,从而让白棋赶上来,以及这些错误究竟损失了多少。如果您有兴趣在任何分析工具中添加对此的支持,请随时联系我,我很乐意回答问题并提供帮助。
KataGo还公开了一些GTP扩展,允许设置有效的规则(中文,AGA,日语等)。详情请参见这里.
十七、【 分析引擎】 Analysis Engine
KataGo还实现了一个独立的引擎,如果你想一次分析整个游戏,它可以更快地进行评估,如果你在一个JSON解析很容易的环境中工作,它可能比GTP麻烦得多。详细信息请参见这里。
KataGo还包括示例代码,演示如何从Python调用分析引擎,请参阅[这里](Python /query_analysis_engine_example.py)!
十八、【编译KataGO】 Compiling KataGo
KataGo是用c++编写的。它应该通过支持至少c++ 14的g++在Linux或OSX上编译,或者通过MSVC 15(2017)及更高版本在Windows上编译。指令可以在编译KataGo中找到。
十九、【源代码概述】Source Code Overview:
请参阅[cpp自述](cpp/ readme .md)或[python自述](python/ readme .md),以获得本repo中源代码的一些高级概述,如果您想了解它们在哪里以及如何组合在一起。
二十、【自我训练】Selfplay Training:
如果你也想运行完整的自玩循环,并使用这里的代码训练你自己的神经网络,请参阅Selfplay Training。
贡献者
非常感谢为这个项目做出贡献的人!请参阅贡献者获取贡献者列表。
许可证
除了在’ cpp/external/ ‘下一起包含在此repo中的几个外部库以及单个文件’ cpp/core/sha2.cpp '(它们都有自己的单独许可证)之外,此repo中的所有代码和其他内容都可以在以下文件中的许可证下自由使用或修改:license。
抛开许可证不谈,如果你最终使用这个代码库中的任何代码来做任何你自己的酷的新自我游戏或神经网络训练实验,我(lightvector)很乐意听到它。
4、安装教程
下载链接
下载中间这个(点击后自动下载)
下载过程会有点慢,下载好解压。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。