Looking for some help configuring Katrain to be. . .not mean to me

Heya folks, as I said in the title, Katrain is exceedingly mean to me. I’m about as beginner as beginner gets, and I’d like to be able to configure Katrain to be less, well, mean.

So far, the most I can find about actually configuring Katrain to be “easier” is some reddit posts, some GitHub issues, and this goldmine that I am, unfortunately, far too out of my depth to read. (I did try.)

I was hoping someone could point me to some resources on the matter. Even just a YouTube video with a good rundown of how to set it super low (the lowest I’ve seen it behave is 15k, which is laughably out of my league) would help me start to builda mental model of how to hold this.

Obligatory apologies if this is the wrong category for this.

2 Likes
# Available options are:
# preaz_{RANK from 20k to 9d} - imitate player of given rank, before AlphaZero opening style became popular
# rank_{RANK from 20k to 9d} - imitate player of given rank, after human openings changed due to AlphaZero.
3 Likes

That is actually extremely helpful.

It’s still technically out of my league, but not by nearly as much, and this’ll probably give me a better idea how I should play than a traditional bot that’s been lobotomized.

Thanks a bunch!

Katrain


image

100% random

image


image

just picks 1 random coordinates and choosing best among 1 random coordinates


ddk strength

image

image

just picks 36 random coordinates and choosing best among 36 random coordinates


strong
image

image
image
just picks 180 random coordinates and choosing best among 180 random coordinates (every 2nd)

2 Likes

Maybe try pre AI bots. Till now it seems difficult to get AIs enjoyable at lower levels.

2 Likes

You might want to try Cosumi then gnugo before getting into katrain?

2 Likes

Perhaps you might like IgoWin: 321Go.org - Spelen met IgoWin

2 Likes

That depends on what you mean:

If you mean because they’re more user friendly, meh. I’m pretty comfortable with arcane software (I am a long-time developer, a ham radio operator, and user of chess engines; I don’t mind the arcane). I’d rather use the thing that’s more featured, even if it’s hard to use.

If you mean because they’re easier to beat, fair.

Hahaha.

My issue here isn’t so much the tool is hard to use it’s that I don’t know anything about configuring go engines at all.

What I meant by pre AI is about the quality of the moves, not the UI design.

AI based software have still difficult time to play at low level, I mean to be interesting in offering their challenge. In some way pre AI are more elaborated and fit better to a low level public.

Now I still strongly recommend to play with humans as with bots, play with low level humans like you, it’s really much more interesting.

At best take a go set with you and teach someone who could spend some time playing together.

3 Likes

Sorry, I forgot to @xela in the last message, that was directed at them not you.

RE: Humans vs bots, that’s a very fair point, and one I’d prefer. I have something like 50 correspondence games going on OGS as we speak. Unfortunately, my wife has thus far bounced off of Go, but I hold out hope that my oldest son (3) will pick it up like he has chess (I have recently gotten him to stop simply naming and then throwing the pieces!)

I just also like playing against engines and learning how they work; my chess game improved dramatically when I wrote my own chess bot, and I’m doing the same for Go (slowly, over time). I want to make sure I know how to configure an existing engine because it’s a great way to get insights into what your own bot is doing wrong!

Really, for me, playing against and making bots for games is almost a wholly separate hobby from playing the same game with other people.

Thank you for the response!

5 Likes

I mean that (some of) the older engines play weak but still coherent moves, with a more natural (dare I say human-like?) flow to the game, making them easier to learn from. If you “cripple” a strong AI to bring it down to 10 kyu level, some of its moves will be just random nonsense.

Having said that, I’ve not yet tried the latest KataGo upgrade: maybe that does something better on a low rank setting?

3 Likes

GnuGo do random nonsense too
image
monkey jump in early midgame, seriously?)

That makes a lot of sense at low level. Actually both players are doing much better as what I expect for low ddk, hum… A bit OT.

1 Like

Not to necro my pwn post, but I finally sat down today to look at this, and I’m not sure if I’m doing it right.

When I open up katrain now, katago boots up just fine in the background and even says it has access to the human mode, but when I play against katago, it still says it’s 9d.

I have a feeling it’s just katrain not knowing what to do with the “human” configuration stuff yet, but if anyone knows better I’d love to hear.

EDIT: For reference, here’s my katago config:

reportAnalysisWinratesAs = BLACK
conservativePass = true
maxVisits = 500
numAnalysisThreads = 12
numSearchThreads = 8
nnMaxBatchSize = 96
humanSLProfile = preaz_20k
humanSLChosenMoveProp = 1.0
humanSLChosenMoveIgnorePass = true
humanSLChosenMovePiklLambda = 100000000
humanSLRootExploreProbWeightless = 0.0
humanSLRootExploreProbWeightful = 0.0
humanSLPlaExploreProbWeightless = 0.0
humanSLPlaExploreProbWeightful = 0.0
humanSLOppExploreProbWeightless = 0.0
humanSLOppExploreProbWeightful = 0.0
humanSLCpuctExploration = 0.50
humanSLCpuctPermanent = 0.2
chosenMoveTemperatureEarly = 0.85
chosenMoveTemperature = 0.70
chosenMoveTemperatureHalflife = 80
chosenMoveTemperatureOnlyBelowProb = 0.01  
chosenMoveSubtract = 0
chosenMovePrune = 0
nnCacheSizePowerOfTwo = 17
nnMutexPoolSizePowerOfTwo = 14
ignorePreRootHistory = false
analysisIgnorePreRootHistory = false
rootNumSymmetriesToSample = 2
useLcbForSelection = false
winLossUtilityFactor = 1.0
staticScoreUtilityFactor = 0.30
dynamicScoreUtilityFactor = 0.00
useUncertainty = false
subtreeValueBiasFactor = 0.0
useNoisePruning = false

And the custom engine command from katrain:

katago analysis -config /home/alex/.local/share/katago/configs/analysis_config.cfg -model /usr/local/lib/python3.10/dist-packages/katrain/models/kata1-b18c384nbt-s9996604416-d4316597426.bin.gz -human-model /home/alex/.local/share/katago/models/b18c384nbt-humanv0.bin.gz

1 Like

Well then. All the more reason for me to make my own front-end support GTP!

Thanks, you saved me from at least another hour of combing through docs until I found that.