github lightvector/KataGo v1.3
New Run, JP Rules, Handicap play, Lead Estimation...

latest releases: v1.15.1, v1.15.0, v1.14.1...
4 years ago

Note: newer version v1.3.2 is out, improving and fixing many things on top of this release!

For stronger neural nets, see also the same later release!

New Run!

KataGo is on a fresh new major run ("g170"). Due to some more improvements, it is training faster and better. Fairly recently it caught up to the strength of the run from June, so it is not actually much stronger yet, but it seems like catching up is a good time for a release, because there are a lot of new features. The main page notes have also been updated.

  • Japanese-like rules, stone-counting rules and many other combinations of rules. These can be can be configured in the gtp config as usual, and for developers, they can also be set dynamically using a few new GTP extensions. Note regarding Japanese-like rules: KataGo will usually fill the dame, but might not do so 100% of the time, since under its ruleset this is not strictly required - but for game analysis purposes, it should not matter much. There's some chance it also occasionally gives up a point by playing an unnecessary defense, if it is winning by enough and wants to be safe. Lastly, some kinds of seki positions or double-ko may still confuse it a little - getting all the details right is quite hard! But hopefully in the common case KataGo performs well.
  • Handicap game "PDA" - ("playoutDoublingAdvantage") - a new option to configure KataGo to play much more aggressively (or even overplay a little) in handicap games, for hopefully much stronger handicap play. This is the result of some special training using unbalanced playouts, so that KataGo learns how to fight weaker versions of itself (while the weaker versions simultaneously learn how to play safely and resist).
  • Much better score estimation - KataGo used to report an estimate of the selfplay average score - the average score that it would achieve if it self-played from a position. So for example, if black were to get an extra stone for free then older KataGo nets might report for example +20, even though the stone should be worth only fair_komi * 2 ~= 14 points. Why? Because KataGo correctly predicted that in self-play, the side that was behind might give up 6 more points on average over the entire rest of the game by taking additional risks to try to swing the game back. These new neural nets are also now trained to estimate the lead - the number of points needed to make the game fair, in this case 14. By default now, KataGo with the latest neural nets will show the estimated lead rather than the estimated selfplay average score - which should be much less confusing.
  • Log-scaling cPUCT - KataGo used to explore too little at large numbers of visits. This change should make KataGo quite a bit stronger at high visits. The differences mostly start to kick in around 3000+ playouts, or 6000+ visits. At around 20000 visits this change maybe might start to be worth close to +100 Elo, including even for older nets. Note: old GTP configs will NOT get this by default, see notes about upgrading below.

Some new things for developers:

  • Analysis engine - ./katago analysis -model <NEURALNET>.txt.gz -config <ANALYSIS_CONFIG>.cfg -analysis-threads N - a new batched analysis engine that uses a JSON protocol that might be much more efficient for many use cases than GTP. Documentation here. (NOTE: if you were already using this engine pre-official-release, the API has changed a little in a non-compatible way, please check the docs for the protocol)

  • Tensorflow 1.5 and Multi-GPU training - KataGo has upgraded the training scripts to use TF 1.5 and support multi-GPU now. Specify something like -multi-gpus 0,1 to train.sh or to train.py. There are also some minor changes to one or two of the training-related scripts - see the main page readme for details.

  • Other Training Changes - By default, KataGo does not use batch norm any more, but you can turn it back on if you like (in python/modelconfigs.py). There are also many changes to training targets, the training data format, and other details that probably break compatibility. So if you already had a training run going, unfortunately you will NOT be able to directly continue training with this new KataGo version, due to all these changes. However, any nets you train on the older version will still work with v1.3. Therefore it should still be possible to bootstrap a new run if you want, by using the older version nets to selfplay enough games with v1.3, and then training an entirely fresh new neural net on that v1.3 selfplay data with the new targets and upgraded TF 1.5 code.

Upgrading

Some notes about upgrading to this v1.3:

  • Old GTP configs should still work. However, there have been quite a few new parameter additions and improvements to the default parameters, and some features like the log-scaling cPUCT require these changes. So it's recommended that you start fresh with the new provided gtp_example.cfg (included with the executables below, or available here, and simply copy over the changes you had to numSearchThreads, cudaUseFP16, and other settings.

  • The benchmark command may be helpful in testing settings: ./katago benchmark -model <NEURALNET>.txt.gz -config <GTP_CONFIG>.cfg. And if you are changing settings or seemingly running into any problems, it's highly recommended you run this command directly in a terminal/console/command-line window first, rather than running KataGo with a GUI program, to test and see what's going on.

  • If you are using the OpenCL version with a new neural net, it will need to re-tune the first new time you run it - which may take a while. In a GUI like Lizzie or Sabaki it may look like a hang - if you want to see the progress of tuning, try running the benchmark command above directly (which will tune first if needed).

New Neural Nets

Two neural nets are attached!

  • g170-b20c256x2-s668214784-d222255714.txt.gz ("g170 20 block s668M") - Supports all the features above, and should be mildly stronger than g104's old 20 block net (unless my tests got very unlucky with measurement noise), making this the strongest KataGo net now, by a little bit.
  • g170e-b10c128-s1141046784-d204142634.txt.gz ("g170e 10 block s1.14G") - A very strong 10 block net. It should be almost equal in strength to g104's old 15 block net, despite being a much smaller size. Since it is smaller, it will run waaay faster, particularly on weaker hardware.

These two above are probably the main ones you might want, but see here for a few additional neural nets if you like. More and stronger nets may be uploaded in the future some time after this run progresses further.

Please feel free to create a Github issue, or to report problems or ask for help in the LZ Discord if you encounter any issues with the attached executables. If problems are found, I'll try to fix them and recompile and bump the tag of this release over the next few days.

Don't miss a new KataGo release

NewReleases is sending notifications on new releases.