Distributed Katago training (https://katagotraining.org/) has produced a new improved network a while ago. The network is known by nice name “b18c384nbt”. I installed the network to Hactar servers a few days ago, and they seem to work fine.
Networs are about 20% faster than old ones used in Hactar server. At the same time networks are stronger that old networks. So Hactar should be now both a bit faster and a bit stronger!
Improvement in the network is due to a new structure of the network. New network is still learning faster that old network was, so I will probably update the network once their learning speed has settled.
Hactar is finally retiring well-served Pachi engine for 19×19 boards. The Pachi engine cannot meet modern expectations, where AI easily beats humans. The 9×9 and 13×13 bots are still be Pachi-based, they will be converted to new AI engine later.
New engine is combination of katago engine and a custom model for human-level play. This allows the bot to play very human-like game.
The custom model is trained using human games. As most games were bit older, it mostly plays with somewhat older style. The model seems to be quite good at tactics and ladders. So even if it is weaker than katago, it is not easy to trick.
I will be adjusting the engine further in following days.
Let me know how the new engine feels!
Update: The new engine still bit bad with white and high handicaps. So Pachi is still doing the job for high handicaps.
During last 3 months I have pushed out series of improvements to Hactar GO. Main improvements:
Now I consider Ai analysis to be of production quality.
SGF editor screen layouts are better in almost all screen sizes.
Partial localizations have been improved, now most important texts should be there.
Board graphics are more readable.
Game score is cleaner and more readable.
Stability is a lot better now, ANR problems should be solved.
If you are interested in improving a localization or creating a new localization, some instructions are in https://gowrite.net/forum/viewtopic.php?t=898. To minimize typing, I have integrated DeepL and google translation engines. Their proposals can be used as a starting point. And don’t hesitate to contact me, I am happy to help!
For a while there was a bug in Hactar Go Lite which prevented use of Ai. This is now fixed and Ai is quite usable also without any subscription in Lite.
From this I will continue to make minor improvements to Ai and graphics. And in parallel I will continue to work for new, interesting features!
Hactar go version 3.0 introduces game analysis tool. Tool makes it easy to analyzing one’s games, or professional games, with any Android phone or tablet. As heavy computation is done in the cloud, the phone or tablet do not need to be high-end model for fast analysis.
Now the tool is available in most recent version of both Hactar Go and Hactar Go Lite. Please update your version!
Start analysis by selecting “Game Analysis” (or Ai icon) in SGF editor. If neither is visible, you probably have old Hactar Go version.
First whole game is analyzed using low iteration count. This offers overview to development of the game. It is also possible to move around in game using the analysis graph.
Red line is winrate, that is the probability that black would win the game. Black / White areas reflect the score difference between the players. In the middle the game is even. Each vertical line is 10 point advantage to the player. The text in the bottom gives precise numbers for these.
When visiting a move, Hactar makes more accurate analysis. The analysis shows loss of points compared to the best move (green). Smaller number is number of iterations used to analyze the move.
Selecting an analyzed position shows the best continuation, as if the move would be played.
Moves in variations are analyzed in the same way. Analysis starts visiting the move.
Exact number of iterations for analyzing a move is still work-in-progress, and will be adjusted later (probably up). The actual load from real-world use is a factor, as GPUs are not free, and one-time payments may not be the best way to cover running costs forever.
Initially all pro subscriptions get 3000 evaluations in analysis, while Hactar Go users without subscription get 500 evaluations.
Hactar Go Lite with other than pro subscriptions get 1000 evaluations. With no subscription Hactar Go Lite users get 40 evaluations. 40 evaluation for a move is not much, but time will show if it is feasible to offer anything for free at all.
GPUs in Cloud
Analysis uses same GPUs in cloud as Hactar’s pro-level opponent. There are at least two machines serving the requests, both with multiple GPUs. This provides reasonably reliable and scalable back-end.
Long time no see! GOWrite 3.0.5 is now stable version with Katago integration.
Katago integration does multple things.
The game trend is calculated using low iteration count. Red line is winrate, that is the probability that black would win the game. Black / White areas reflect the score difference between the players, in the middle the game is even. Each vertical line is 10 point advantage to the player. Text in bottom gives precise numbers for these.
The continuation moves are automatically evaluated and show with point difference compared to the best move, winrate for the move and iterations done as part of the search.
When mouse is above a continuation move, best continuation sequence is shown with numbered stones.
If you want to evaluate a continuation move not evaluated by default, you can ctrl-click the position to calculate evaluation for the continuation. To investigate the move more, you can add the move as variation.
Moves in variations are evaluated as they are visited. When analysing variations it may be helpful to enable “Insert” -> “Automatic variations”. With this, GOWrite will create a variation when adding a new move that is not last in the game. Handy for checking out a variation!
In GOWrite Katago configuration is in general settings. It is good practice to test Katago before attempting to use it. The test checks some of the known problematic settings in the configuration file and attempts to start Katago.
GOWrite does not include katago, its configuration or network, so they should be installed separately. Katago should be at least version 1.8, preferably latest.
Katago is used in its analysis mode. Katago analysis mode configuration example is analysis_example.cfg. The configuration may need adaptation for the hardware used. As GOWrite may do up to 3 parallel evaluations, the configuration should allows 3 concurrent evaluations.
After playing over 1000 games in cgos server, Hactar-7-197-p is now first among recently playing engines. Version has two improvements over previous version.
Network is now somewhat better. Training has gone thru 197-181=16 generation, and this made visible improvement.
However, biggest change is thinking in opponents time (“pondering”, thus -p). It helps as it gives more network evaluations. Big impact is also when normal search starts, pondering has created small tree to start with.
This small tree helps as GPU is providing number of parallel evaluations to build MC tree, and getting sensible place for these evaluations is possible as soon as there is small tree.
Testing smaller GPU
Most recent version Hactar-7-209a-p is using P4000 GPU instead of 1080ti; thus it is running with only half of the GPU power!
Still, it looks like Hactar-7-209a-p is almost as good as Hactar-7-197-p. This goes back to reducing latency of tree walk, NN evaluation, tree update cycle. Thus even if there is only half of the network evaluations, evaluations are a lot more relevant.
At some point I will make this improved engine to play using 1080ti. It will interesting to see its wining-%…
My first engine to play is now playing in 9×9 board. Engine is pretty typical AlphaZero trained engine with deep neural network. And name engine is Hactar, as this is intended for Hactar android app, although engine will be on cloud.
Currently engine is active on cgos bot server . At the moment Hactar is in 2nd place among active bots, but in past there have been significantly stronger bots in the server. When Hactar is not playing anymore, past results can be found also from bayes estimation pages.
Engine is using one 1080ti card, CPU use is not significant.
The engine name “Hactar-7-181” contains also neural network model number (7) and the training iteration. For details of neural network and differences between versions, I will need to write another posting.
Creating a go engine used to be a huge effort. After a basic program structure was in place, a lot of tuning was needed.
Since Deep neural Networks were adapted to go, creating a new engine has been a lot less work.
And since the AlphaZero go engine training technique, creating a strong go engine is not so much work, but awfully lot of GPU computing time.
So currently I am in progress of doing new engine for Hactar. This has progressed really well; I hope to be able to publish results really soon (still, do not hold your breath). The main challenge is to reduce the needed GPU time to something reasonable.
GOWrite is over 23 years old, and finally deserves a blog.
First time I made GOWrite go game editor available in internet during 1995. Back then, making a book was pain, as good quality diagrams were not easy to produce. Solving this was one of the initial reasons to create GOWrite.
Around 2001 I made first attempts at a grand new version 2.0 using Java. Old 1.4 version was internally messed up, and I wanted to support other than windows environments.
I also created MIDP version of gowrite around 2005. This was not big success, so eventually I stopped the development. Still, using phone as go tools was clearly practical.
Finally around 2011 I wanted to test something with Android, and creating go program was natural thing to do. This time name was not GOWrite, as program was not about go publications. Instead program was about playing against computer and strong playing programs require a server. And servers live in the cloud, so program name was Hactar.
Hactar go was initially for beginners, it includes capture go engine to help getting started.