chrisw wrote: ↑Mon Aug 29, 2022 5:34 pm
I have a tentative theory that the newer recent engines are done by people more interested in the software engineering than in the chess, so individual games and so on are not so interesting to them.
Chessprogramming is infinitely more interesting than chess.
A board has 64bits and a CPU register is exactly the same size. This gives so many extremely interesting opportunies for optimisation and general branchless programming.
Together with better hardware and better compilers - every year a new pinnacle is reached. For example Stockfish 8 which was Alpha zero strength gets destroyed by SF14.
If it were Sudoku with 10x10 - the code would be not so elegant or would be hidden behind an interface.
dangi12012 wrote: ↑Mon Aug 29, 2022 9:48 pm
Chessprogramming is infinitely more interesting than chess.
If you really found a way to measure interestingness, then I'm sure there will be stuff that is more interesting than both chess programming and chess. In any case, it is about people being interested in something, which is a different concept.
chrisw wrote: ↑Mon Aug 29, 2022 5:34 pm
I have a tentative theory that the newer recent engines are done by people more interested in the software engineering than in the chess, so individual games and so on are not so interesting to them.
I have to say that I am indeed more interested in the computer science side of chess programming, or at least, I feel like I can't really follow the games of engines above like 2300 CCRL (even then I'm probably missing lots of things, otherwise I wouldn't only have such a small sad pile of Elo points on lichess, but at least I can somewhat understand what an engine is going for).
I probably should disable the evaluation that engines print out when watching games, because I tend to only look at that, even when I actually wanted to watch the game.
chrisw wrote: ↑Mon Aug 29, 2022 5:34 pm
I have a tentative theory that the newer recent engines are done by people more interested in the software engineering than in the chess, so individual games and so on are not so interesting to them.
I think there could be other things too...
Looking at the engines that have competed in the past, the field can be a bit intimidating for newcomers like myself. I did actually mean to try to join the tourney, even though I'm sure my engine would have lost every game.
The instructions are also a bit thin (though perhaps for people here it shouldn't be unreasonable to think they can figure it out). I assume I have to download winboard. But is there anything else? Does the command line mentioned just work as is?
KhepriChess wrote: ↑Mon Aug 29, 2022 11:31 pm
The instructions are also a bit thin (though perhaps for people here it shouldn't be unreasonable to think they can figure it out). I assume I have to download winboard. But is there anything else? Does the command line mentioned just work as is?
This is the commandline I use to join Joost's server:
Joost Buijs wrote: ↑Mon Aug 29, 2022 11:06 am
If the number of participants drops below a certain point, we'll probably stop with this tournament all together.
Nowadays most people seem to have more interest in tournaments like TCEC and CCC, and I can't blame them.
I'd like to enter every month but sometimes I can't, and this month I simply forgot about it.
chrisw wrote: ↑Mon Aug 29, 2022 5:34 pm
I have a tentative theory that the newer recent engines are done by people more interested in the software engineering than in the chess, so individual games and so on are not so interesting to them.
I think there could be other things too...
Looking at the engines that have competed in the past, the field can be a bit intimidating for newcomers like myself. I did actually mean to try to join the tourney, even though I'm sure my engine would have lost every game.
The instructions are also a bit thin (though perhaps for people here it shouldn't be unreasonable to think they can figure it out). I assume I have to download winboard. But is there anything else? Does the command line mentioned just work as is?
There are several “weak” engines that enter. Yes, you need winboard. Joost and others are helpful if you need.
Henk wrote: ↑Sun Aug 28, 2022 11:32 am
Skipper doing much better. 18th spot. Never ended so high. Maybe in the future it gets to top ten. Who knows.
At least it plays without problems. It is just a matter of time to improve your engine.
If the number of participants drops below a certain point, we'll probably stop with this tournament all together.
Nowadays most people seem to have more interest in tournaments like TCEC and CCC, and I can't blame them.
That would be a shame because it’s the only engine authors tournament there is. Monthly gives a target to aim at.
I have a tentative theory that the newer recent engines are done by people more interested in the software engineering than in the chess, so individual games and so on are not so interesting to them.
Of course it's not our intention to stop with this tournament, but if the number of participants gets too low we have to reconsider.
In fact this is HGM's tournament, we temporary took over because he had hard and software problems, temporary is almost three years now.
Lisebeth (Eendje) is a former match organizer from ICC, she runs the tournament, I only provide the hardware and keep the software alive.
The last 1.5 years I've been doing very little with chess myself, maybe that's why my interest is waning a little bit. The reason is that I've been busy training networks for different games like International Draughts and Othello, this is more or less finished now, I'd really like to pickup chess again.
Henk wrote: ↑Sun Aug 28, 2022 11:32 am
Skipper doing much better. 18th spot. Never ended so high. Maybe in the future it gets to top ten. Who knows.
At least it plays without problems. It is just a matter of time to improve your engine.
If the number of participants drops below a certain point, we'll probably stop with this tournament all together.
Nowadays most people seem to have more interest in tournaments like TCEC and CCC, and I can't blame them.
That would be a shame because it’s the only engine authors tournament there is. Monthly gives a target to aim at.
I have a tentative theory that the newer recent engines are done by people more interested in the software engineering than in the chess, so individual games and so on are not so interesting to them.
Of course it's not our intention to stop with this tournament, but if the number of participants gets too low we have to reconsider.
In fact this is HGM's tournament, we temporary took over because he had hard and software problems, temporary is almost three years now.
Lisebeth (Eendje) is a former match organizer from ICC, she runs the tournament, I only provide the hardware and keep the software alive.
The last 1.5 years I've been doing very little with chess myself, maybe that's why my interest is waning a little bit. The reason is that I've been busy training networks for different games like International Draughts and Othello, this is more or less finished now, I'd really like to pickup chess again.
I tried Othello on and off for about a year and could never get any traction into a network. Switched to Backgammon which was way easier. Basically trying to get all throughput well organised well before moving on to the more difficult chess problem. Can you say a bit about how you represented Othello to the network and how you trained it?
chrisw wrote: ↑Tue Aug 30, 2022 11:43 am
I tried Othello on and off for about a year and could never get any traction into a network. Switched to Backgammon which was way easier. Basically trying to get all throughput well organised well before moving on to the more difficult chess problem. Can you say a bit about how you represented Othello to the network and how you trained it?
The Othello network is pretty straightforward, it has 129 inputs, 64 inputs for each color and 1 input for the color to move. It's a fully connected network with 256x32x32x1 neurons and incremental update of the first layer (like NNUE). Because the changes on the board after a move can be quite large (larger than with chess) NNUE seems to be somewhat less effective.
I didn't have any data that I could use for training, so I started by playing 1.8 million fast games (10 msec. per move) with root shuffling using a random network as evaluation. On my 32 core AMD this took about 10 hours. In the next step I converted the games to positions keeping track of the WDL by using a binary tree indexed by the positions hash, I used the winning percentage (2W+D) / 2(W+D+L) for labeling the positions used for training. Somehow using the win percentage as label gives me better results than plain logistic regression with 0 and 1.
After repeating this process several times (playing games, updating the binary tree, training the network) the program got better and better. Later I started using longer thinking times which made the whole process rather time consuming. One restriction is the maximum size of the binary tree that has to be in memory during the update process, otherwise it would be way to slow. In practice I never encountered the situation that the binary tree ran out of memory, the only explanation that I have is that the number of relevant positions generated during a game is not so huge as one would expect.
chrisw wrote: ↑Tue Aug 30, 2022 11:43 am
I tried Othello on and off for about a year and could never get any traction into a network. Switched to Backgammon which was way easier. Basically trying to get all throughput well organised well before moving on to the more difficult chess problem. Can you say a bit about how you represented Othello to the network and how you trained it?
The Othello network is pretty straightforward, it has 129 inputs, 64 inputs for each color and 1 input for the color to move. It's a fully connected network with 256x32x32x1 neurons and incremental update of the first layer (like NNUE). Because the changes on the board after a move can be quite large (larger than with chess) NNUE seems to be somewhat less effective.
that’s interesting, I more or less decided a NN (or NN) would not be able to untangle data that ranged from sparse to the opposite, so looked for ways to generally increase sparsity.
I guess you implemented full update for when more than half the stones were flipped.
I didn't have any data that I could use for training, so I started by playing 1.8 million fast games (10 msec. per move) with root shuffling using a random network as evaluation.
I was trying to use HCE games (mobility, piece square and a random mix of the two) and MCTS, I guess yours was AB?
On my 32 core AMD this took about 10 hours. In the next step I converted the games to positions keeping track of the WDL by using a binary tree indexed by the positions hash,
very neat
I used the winning percentage (2W+D) / 2(W+D+L) for labeling the positions used for training. Somehow using the win percentage as label gives me better results than plain logistic regression with 0 and 1.
After repeating this process several times (playing games, updating the binary tree, training the network) the program got better and better. Later I started using longer thinking times which made the whole process rather time consuming. One restriction is the maximum size of the binary tree that has to be in memory during the update process, otherwise it would be way to slow. In practice I never encountered the situation that the binary tree ran out of memory, the only explanation that I have is that the number of relevant positions generated during a game is not so huge as one would expect.
If I understood that right, you have a massive continuously updated hash lookup of WDL and the task of the NNUE is to interpolate the gaps in the data.
Measuring progress is difficult, given the lack of opposition, mine tried sparring with my HCE(s) but never reached them, which was the point I switched to backgammon. The whole idea really was to organise a continuous throughput from games to train to test plus the tools to observe progress, Backgammon worked fine for this with meaningful progress measured in minutes, then move on to the real target - chess.