教育你的狗勾:如何提高本地katago棋力
上期专栏已经交过如何安装katago。但安装完有时会发现狗子又卡又慢,斗狗或者下让子棋的时候棋力也没有想象中厉害。这里教大家如何调整katago的参数,以及选择合适的引擎,权重,让你的katago从修√变藏獒


引擎选择
首先,从引擎文件的选择上,如果想追求计算速度,请选择trt版本的引擎,在某些显卡上比ocl能快2.5甚至1倍多。(下载地址及版本所需条件请看上一期)最近katago刚刚更新了1.12版本,trt的速度比以前快上不少。注意:只有20系及以上的N卡才支持tensorrt。
如果你的引擎慢的夸张(比如只有几十或者100多v/s),打开性能监视器看看运行katago时显卡会不会发热,是不是下成cpu版的了。核显下载的应该是ocl版的而不是cpu的。


权重选择
正如katagotraining网站所言
Elo ratings are approximate and are *not* necessarily comparable to the Elos from any other bot or run. Uncertainty radius displayed is approximately two sigmas.
就是权重后的elo评分作为不大能作为实力的比较。对于斗狗需求的人来说,首先推荐在下载引擎的页面附带的18b权重。

对于权重的选择有几个误区:
新权重不一定比老权重弱,这里的“新老”指权重推出的时间。比如,新出的b60权重实力十分不稳定。
权重中的“b”代表区块数,和实力并没有直接的关系。但“b”数子越大,同等配置计算速度就会越慢。
除了倒数的几个权重以外,其他权重分先都可以在分先的规则下碾压所有人类。但是较高的权重在让子棋表现并不理想。
根据在野狐测试和自己测试的经验,20B到40B在较高的PDA下比较适合下让子棋。而40B和18B权重分先表现较好。如果没有较高的配置,60B权重会因为计算速度慢的原因表现得不稳定。

调参数
到重点了,调节参数可以改变ai在连接野狐围棋时的下法,不同参数对棋力的影响也非常大。头疼的是,原版下下来的参数文件只能说是又臭又长,一堆英文既看不懂又找不到。于是我把需要用到的参数收录到这,更改时用记事本或者Word直接打开,查找即可。

更改时,把英文前面的#去掉,改后面的数字或者true,false
固态pda
PDA就是所谓的激进度,ai会把对手看的比较“弱”,下一些过分手。适合让子棋开,分先别开。正数为激进,负数为保守。
playoutDoublingAdvantage = -3到3的一个数子
动态 pda:在局面不同下自动调整pda
dynamicPlayoutDoublingAdvantageCapPerOppLead = 填个 0.0几的数字
开局角部不重复度:开不开都行,分先别开。
avoidRepeatedPatternUtility = 0.0几的数字
maxVisits = 数字 , 对手落子后的最大计算量,达到这个数字就落子,想秒拍就把这个填小一点
maxTime =数字 ,对手落子后思考的时间,达到这个时间就落子,单位秒
ponderingEnabled = true或者false, 后台思考设置,对手在想的时候AI也计算。想启用的写成换成 true
maxTimePondering = 数字 ,后台思考的最长时间,以秒为单位。但有达到最大计算量就不算了。
ogsChatToStderr = true 写成true让野狐的gtpshell显示胜率等信息。

另补充上一篇野狐gtp一闪就断的问题,在命令行那一栏里要填写完整的路径,不能只填文件名。

改搜索线程
不同的权重,引擎,配置的最佳搜索线程都不同,因此,建议新建多个参数文件对应不同的权重和引擎。
用法:打开cmd,输入:{引擎文件路径} benchmark -model {权重文件路径} -config{参数文件路径} -v{每个线程测试的计算量,时间允许尽量大点}
然后引擎就会自动测试出最适合的线程数,记得在对应的参数文件里更改。
numSearchthread = 线程数


这样改完棋力可以增加200多elo,搜索也更快了。

以上是本期全部内容,有相关问题可以私信up。谢谢关注喵

