github lightvector/KataGo v1.11.0
Graph Search and Other Improvements

latest releases: v1.15.3, v1.15.2, v1.15.1...
2 years ago

If you're a new user, don't forget to check out this section for getting started and basic usage! If you don't know which version to choose (OpenCL, CUDA, TensorRT Eigen, Eigen AVX2), read this: https://github.com/lightvector/KataGo#opencl-vs-cuda-vs-tensorrt-vs-eigen

Also, KataGo is continuing to improve at https://katagotraining.org/ and if you'd like to donate your spare GPU cycles and support it, it could use your help there!

As before, attached here are "bs29" versions of KataGo. These are just for fun, and don't support distributed training but DO support board sizes up to 29x29. They may also be slower and will use much more memory, even when only playing on 19x19, so you should use them only when you really want to try large boards.

Changes This Release

Search Improvements

Graph Search

KataGo has a new stronger MCTS implementation that operates on a graph rather than a tree! Different move sequences that lead to the same positions are recombined and searched only once instead of separately, with careful handling of ko and superko situations to ensure provable partial guarantees on the correctness of the recombining. The amount of improvement given by graph search appears to be highly variable, depending heavily on the particular hardware, number of threads, thinking time per move or number of playouts, and balance of CPU/GPU speed, ranging from no improvement at all on some configurations, to nearly 100 Elo on some configurations.

Better Parameters

A few of KataGo's default search parameters have been slightly tuned and improved. Additionally, KataGo implements a new FPU (first-play-urgency) method that implements the heuristic "if existing moves have turned out worse than expected, prefer exploring entirely new moves more, and if existing moves have turned out better than expected, prefer verifying those moves more and exploring entirely new moves less". All of these changes might be worth somewhere from 15 to 40 Elo together. Thanks to sbbdms, fuhaoda, Wing, and many others for helping test these parameters.

Interface and User Improvements

  • The katago contribute command for contributing to the public distributed run at https://katagotraining.org/ now supports pausing and resuming!

    • While KataGo is running, if you type pause and hit enter, KataGo will stop its CPU and GPU usage (may take a few seconds to a minute), but will continue to remember its current state (note: KataGo will continue using RAM and GPU memory to do so, pausing only halts computation).
    • Use resume to resume computation.
    • You can also give the commands quit and forcequit which correspond to pressing Ctrl-C once or twice, causing KataGo to exit after finishing current contribution games, or exit as soon as possible discarding unfinished games.
  • On Windows, KataGo should now handle non-ascii file paths and directories. Hopefully for real this time.

Changes for Developers

  • As a result of graph search, the pvVisits array indicating the number of visits on at each point of a PV may no longer be monotone, since a position with few visits may transpose to a position with many visits. A new pvEdgeVisits output is now available that distinguishes the count of visits that reach a given position, and the count of visits that make a particular move (since a given position may now be reached by more than one move along the graph).
  • The kata-analyze command in GTP now can report the predicted ownership for each individual move (see movesOwnership in the documentation).
  • There is a new GTP extension kata-benchmark NVISITS which will run a simple benchmark from within GTP.
  • Fixed a bug in KataGo book hashing that might theoretically cause incorrect book transpositions, and greatly reduced the disk space requirements for KataGo's book file. Both the bugfix and reduction only applies to new books generated with the newest version.
  • Added checkbook command to test the integrity of a book file.

Other Improvements and Bugfixes

  • Added a link to a simple/elegant KataGo-based GUI, Ogatak.
  • Added option to contribute to perform rating games only, and documented a few more minor options.
  • GTP printsgf command now records into the SGF an intelligent final score rather than a naive all-stones-are-alive score.
  • Fixed bug where avoid moves option in GTP and analysis engine might include avoided moves anyways if the search was performed for the player that would not normally move next.
  • Fixed bug in the computation that considered whether to suppress a pass in some cases for rules compatibility.
  • Significantly optimized ownership calculation speed for long/deep searches.
  • Selfplay now records a few additional stats about policy and search surprise and entropy into the .npz files.
  • Python neural net model training now tracks export cycle across restarts.
  • Major internal refactors and cleanups of KataGo's search code.
  • Various other documentation improvements

Don't miss a new KataGo release

NewReleases is sending notifications on new releases.