-
Notifications
You must be signed in to change notification settings - Fork 8
Bad Gyal
Bad Gyal is done. The final release, Bad Gyal 8, is available below.
If you'd like to play Bad Gyal on a Raspberry PI 3, you can find her here.
The latest 0.22 executables can be found here.
If you like to watch engines play against each other, these nets are not for you. They are designed to give humans good sparring partners. ("Bad Gyal" is Jamaican for "bad girl.")
How were they trained? By taking lichess games and producing Q and policy data from low depth SF10 searches. These are then trained against q+z. Basically we combine flawed human play with sf10 smarts (but not too smart) to give us a more swashbuckling and occasionally positional opponent.
The net will run on CPU or GPU as it is a 48x5 net. Important: looks like 48x5 with the convolutional policy head won't run on all BLAS versions. I'm training up a 128x10 version so it will run on most.
Right now the net is a bit stupid when it has a big material imbalance or is in the endgame. That’s simply an issue with the lichess training data not having much play after someone drops a rook or gets into a lost ending. I’m playing out all non-terminal position games to alleviate that issue.
I’m training nets on the same data, but with different q-ratios. Good Gyal is at a q-ratio of 0.75, which means it gets more influence from Stockfish, while Evil Gyal is at a q-ratio of 0.25, so more influence from sleazy human blitz play.
A running 800 node gauntlet.
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%)
1 Bad Gyal 7 : 14 8 1028.5 2000 51.4 81 725 607 668 30.4
2 Bad Gyal 6 : 7 9 1000.5 2000 50.0 82 693 615 692 30.8
3 Bad Gyal 5 : 0 8 971.0 2000 48.5 --- 665 612 723 30.6
White advantage = 34.13 +/- 5.27
Draw rate (equal opponents) = 30.79 % +/- 0.86
Versus 1 CPU engines from high on the CCRL list, the results are promising (1070 vs 1CPU 1+1):
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%)
1 Bad Gyal 7 : 3301 57 39.0 53 73.6 100 30 18 5 34.0
2 pedone : 3132 89 7.5 27 27.8 62 4 7 16 25.9
3 LazyGull : 3104 92 6.5 26 25.0 --- 1 11 14 42.3
White advantage = 56.50 +/- 45.30
Draw rate (equal opponents) = 43.42 % +/- 9.38
- Bad Gyal 1. This is a 20k step version.
- Bad Gyal 2. This is the full 200k step version with 3 LR drops.
- Bad Gyal 128x10 A 128x10 version of Bad Gyal 2. My target is 48x5, so I'm unlikely to make very many of these.
- Bad Gyal 3 This time 64x6 to avoid blas issues. Hopefully endgame and bad moves in imbalanced positions have been resolved.
- Bad Gyal 4 128x10. Ignore this net. Endgame data was bad.
- Bad Gyal 4a 128x10. Rerun without the faulty endgame data. Probably the strongest tactical net (including T40, LD2, etc.).
- Bad Gyal 5 128x10. 1.3M games. q-ratio 0.5.
- Good Gyal 5 48x5, trained on the same data as Bad Gyal 5, but at a q-ratio of 0.75. MiniHuman on lichess updated to use this net.
- Evil Gyal 6 48x5, q-ratio 0.25, 2M games.
- Good Gyal 6 192x16, q-ratio 0.75, 2M games.
- Bad Gyal 6 128x10, q-ratio 0.5, 2M games.
- Bad Gyal 7 128x10, q-ratio 0.5, 2.48M games.
- Good Gyal 7 192x16, q-ratio 0.75, 2.48M games.
- Bad Gyal 8 128x10, q-ratio 0.5
- Tiny Gyal 16x2, q-ratio 0.5
My new (old) blog is at lczero.libertymedia.io