KataGo v1.15.x is released! There is a new model b18c384nbt-humanv0.bin.gz trained to predict human moves. You can configure the rank of human player to predict/imitate, or also set it to imitate historical pro play by year back to 1800.
Release notes are in v1.15.0 for the main docs on how to use the model, but actually download from v1.15.1 which has a bugfix. There are some pretty pictures in the release notes, check them out!
Depending on settings, you can get KataGo to attempt to play like a human player of a given rank, bias analysis variations towards human-like sequences, etc. It’s very early on in testing the model and finding what cool things can be done with it. Perhaps review tools that focus in on key moments where a human player several ranks stronger would have played very differently? More variety of human-like bots that are good to play against? If you have an idea, there’s a lot to experiment with.
For some docs on how to use the model, see example config and/or Human SL Analysis Guide. Generally, you provide it as an extra model in addition to KataGo’s normal model, via -human-model b18c384nbt-humanv0.bin.gz.
Rather than repeat the same fancy pictures posted in the release notes and reddit, I’ll post something different here: Here’s a little video shared in discord chat that I made back during testing of a less-trained version of this net, which shows off how the net’s predictions changes with rank and date in a few early opening positions. For example, you can see a very sharp transition in pro play of the 3-3 invasion as you cross the early AlphaZero years 2017 and 2018. This is one of a few opening style shifts that the net seems to have learned has happened across time
Oooh I have no idea how good it would be. If someone tries this I’d be interested to see the result too!
There’s an interesting question of how you aggregate the predictions across all the moves. First guess would just be for each rank, you just track the running sum of log(policy of the actual played move for that rank) across all moves. Then at the end, softmax them. This is equivalent to just taking the product of all the policy probabilities and then normalizing, but it’s a way to do it that’s numerically stable.
Second guess would be that maybe you also want to dampen outliers - in the event that a move is extremely surprising to the net at some or all ranks, I’m not confident how much you can actually trust the net in that circumstance.
I mean, even with the today’s AI “weaponry” they can do a quite serious damage to OGS already. OGS was founded and is staying on the assumption of a good will of participants. A malevolent agent with some IT and AI knowledge can do lots of harm in both games (ranks, in particular) and on the forum. I won’t go into details, but it’s quite obvious for everyone with some basic IT/AI knowledge. This is not a critique of OGS – many niche communities are based on good willing participants and therefore are quite easy to disrupt. The whole internet is probably broken already – take a look at the “Dead Internet Theory”. The level of investments needed for a malevolent operation at a scale of a niche website is rather low as of today.
I wonder how the different strength levels relate ELO wise in selfplay.
Is there any data how the ELO of the net at each rank compares to ELO of the training data.
If not already possible, it would be interesting to be able to set different ranks for each color, and have KataGo estimate the win-rate, from a given position, for the game continued with players of that strength.
This could be useful for estimating whether in progress games, abandoned early, were realistically still a toss-up between the players or closer to being decided.
I don’t think this is a problem only for OGS. Previously it was possible to tell whether a person cheated by comparing that with an AI. But now that an AI plays like a human, it’s very hard to draw comparisons anymore. This means it may be easier to cheat without getting caught.
I’m sad about the negativity. Do people wish this wasn’t released?
For those concerned about cheating, it’s maybe worth a reminder that we’ve had pretty strong human-like bots since ~2013. Crazystone and Zen have had high-quality human-imitation neural networks reaching up into low-mid dan level even without any search for a long time now, well before AlphaGo existed, and there are other neural network-based bots out there trained on KGS games or pro game collections, including some that have been actively run on places like KGS at times in the past getting up to 4d or 5d level even with no search.
Training on human data was actually the thing to do before AlphaZero existed, so this net is basically KataGo “catching up” on redoing what people did before the revolution of AI learning from self-play, except:
Making it available for GUIs and tools to access alongside and integrated with KataGo’s normal analysis instead of being in entirely separate mostly pre-AlphaZero bots.
Doing it in a way that it’s a single neural network that can be configured easily between ranks, instead of needing different networks or bots for different levels.
Hopefully getting a net that’s more accurate due to more modern neural net architectures.
For the flavor of person who blatantly copies almost every AI move, although one could already play at mid-dan level in a human-like style with pre-AlphaZero bots, perhaps the first bullet above is the most impactful one? What is the case people are worried about?
For cheating of the flavor where someone isn’t copying every move, but rather smartly looking at bot analysis to help them by saying who’s ahead and catching the occasional tactical blunder or whatever, I would be surprised if any of this matters much, catching that by tiny statistical differences in move “style” seems already a tall order to begin with. My understanding was that for this reason, in the world of chess, cheating detection doesn’t only rely on looking at the moves themselves anyways, but more things like time usage patterns, mouse movements, window selection and deselection, and so on (e.g. looking for patterns and delays due to using an external program and/or not thinking for oneself).
Just to be clear, I didn’t mean to be negative about this specific release of KataGo.
I am not concerned about cheating, I am more concerned about AI in general being good at imitating humans in many different ways. Across that whole spectrum, whether or not they do it for Go is relatively minor.
I’m confident that, with or without the new Katago net, 95% of people use a go server to play, and not to watch bot moves. The other 5% don’t affect much my playing experience.
The human-like Katago net will be mostly useful for teaching purposes. A 12k may be lost by superhuman AI variations, but will understand better AI reviews that focus on good moves that a 5k could have found.
Not really being negative but just stating the impacts.
What if you can tell the AI to make moves in a way that exactly mimics how a human slightly stronger than the opponent should play? This solves the time usage patterns and the level of the moves. About the mouse movements and window selection etc, it wouldn’t be a problem if it was done on a different screen.
I’m just saying it would be easier to do it with a customisable AI like this and we would probably need more sophisticated tools to catch it.