Uri Blass wrote: ↑Mon Mar 25, 2024 6:16 pm
[...]
I read that Weiss is the best engine with HCE that still play in TCEC and I do not like the fact that somebody hopes that it is going to go down.
I basically prefer engines that humans can understand what they do and not engines that people tell me that humans cannot understand what they do.
Others might know more, but as far as I got it, Xiphos was the last top10 member on CCRL wtih classic eval before the NNUE engines took over.
Uri Blass wrote: ↑Mon Mar 25, 2024 6:16 pmI wonder if every evaluation that humans can understand is called HCE (hand craft evaluation) even if people did optimizations to have better weights in the evaluation.
HCE just means hand-crafted, it does not mean that humans can "understand" it.
And what is not to understand about a simple neural network? Just 1 type of calculation, whereas a complex HCE has dozens or hundreds of different kinds of calculation. And in all cases all weights are the result not of human "intuition" but of hundreds of thousands of hours of calculation.
But do you understand how Carlsen evaluates? Not even Carlsen does.
Uri Blass wrote: ↑Mon Mar 25, 2024 6:16 pmI wonder if every evaluation that humans can understand is called HCE (hand craft evaluation) even if people did optimizations to have better weights in the evaluation.
HCE just means hand-crafted, it does not mean that humans can "understand" it.
And what is not to understand about a simple neural network? Just 1 type of calculation, whereas a complex HCE has dozens or hundreds of different kinds of calculation. And in all cases all weights are the result not of human "intuition" but of hundreds of thousands of hours of calculation.
But do you understand how Carlsen evaluates? Not even Carlsen does.
I do not expect to be able to understand how humans evaluates so the question how carlsen evaluates is not relevant for the discussion.
HCE is a lot of calculation but at least I can understand something of what the thing is doing if I look at the code.
People gave no explanation how to read and understand them.
I have no idea what material the nnue file contain and
when I try to open nn-9bc3b650e90f.nnue by tools that I have
I see things like the following that seems to me a language that I cannot understand.
Looking at a binary file like it is text usually isn't very elucidating. If you would print the eval.o file of a HCE you would see something similar, and learn as little.
I suppose the NNUE file is just a list of numbers, without any indication for how these numbers are to be used. Most of the numbers will actually be elements of piece-square tables. A popular form of NNUE uses 256 sets of piece-square tables for each location of a King. That is a lot of numbers (256 x 10 x 64 x 64).
You may have a look at my "nnuedebug" branch in https://github.com/Matthies/Stockfish.
It adds debug output of all the stages of NNUE evaluation. The branch is not in sync with Stockfish master and uses older network archtiecture but for your needs this should be okay.
Quick HowTo:
git clone https://github.com/Matthies/Stockfish.git
cd Stockfish/src
git checkout nnuedebug
make build ARCH=x64-64-... (don't compile a profile-build, the debug output will make it run forever)
./stockfish
eval
This will give you the detailed informations of how the evaluation of startpos is done (and the evaluation of several other positions removing single pieces from the board so that eval can give a summary for values of each piece).
Edit: Of course this output is not enough to understand NNUE evaluation in detail. Maybe it could be improved by adding output of the weights and biases that are used for the different steps.
smatovic wrote: ↑Mon Mar 25, 2024 5:59 pm
Idk if it helps, but Stockfish 16 removed the "classic, handcrafted evaluation" from source code, now 16.1 with small and big neural network.
--
Srdja
Thanks but I know that stockfish removed the classic evaluation.
I wonder if every evaluation that humans can understand is called HCE (hand craft evaluation) even if people did optimizations to have better weights in the evaluation.
I read that Weiss is the best engine with HCE that still play in TCEC and I do not like the fact that somebody hopes that it is going to go down.
I basically prefer engines that humans can understand what they do and not engines that people tell me that humans cannot understand what they do.
I am also sad about losing the HCE evaluation, because I use SF as a trainer and coach that delivers values like king safety, mobility, threats, space, pawn structure, PSQ score to the human player.
In SF 16.1 with eval you get a table with NN evaluation of the pieces (NN value with and without the piece), but nobody could explain these values.
Thus, I am interested in a SF 16.1 fork with the HCE added.
smatovic wrote: ↑Mon Mar 25, 2024 5:59 pm
Idk if it helps, but Stockfish 16 removed the "classic, handcrafted evaluation" from source code, now 16.1 with small and big neural network.
--
Srdja
Thanks but I know that stockfish removed the classic evaluation.
I wonder if every evaluation that humans can understand is called HCE (hand craft evaluation) even if people did optimizations to have better weights in the evaluation.
I read that Weiss is the best engine with HCE that still play in TCEC and I do not like the fact that somebody hopes that it is going to go down.
I basically prefer engines that humans can understand what they do and not engines that people tell me that humans cannot understand what they do.
I am also sad about losing the HCE evaluation, because I use SF as a trainer and coach that delivers values like king safety, mobility, threats, space, pawn structure, PSQ score to the human player.
In SF 16.1 with eval you get a table with NN evaluation of the pieces (NN value with and without the piece), but nobody could explain these values.
Thus, I am interested in a SF 16.1 fork with the HCE added.
The question is what is the advantage for SF16.1 fork because you can use HCE of older stockfish that had HCE and I do not know about HCE improvement for stockfish in the last years.
ehenkes wrote: ↑Thu May 02, 2024 12:34 am
I am also sad about losing the HCE evaluation, because I use SF as a trainer and coach that delivers values like king safety, mobility, threats, space, pawn structure, PSQ score to the human player.
Couldn't you evaluate those positions yourself? IMO human players and NNUE are much better at evaluating those type of positional terms. There's a reason why neural networks are superior despite lower speed.
ehenkes wrote: ↑Thu May 02, 2024 12:34 am
I am also sad about losing the HCE evaluation, because I use SF as a trainer and coach that delivers values like king safety, mobility, threats, space, pawn structure, PSQ score to the human player.
Couldn't you evaluate those positions yourself? IMO human players and NNUE are much better at evaluating those type of positional terms. There's a reason why neural networks are superior despite lower speed.
At least human players who are not top chess players are not better at evaluating positional terms relative to HCE stockfish and what top chess players understand is not relevant for the average chess player.
You could install the last version of SF before HCE was removed. I think it is this branch: 6a8767a0d5d9502e6d4de1bef97468b5d6fab80a
I do keep a copy of it, with similar views. Also, if I remember, in the past it was possible to print a table of evaluation of a position (e.g., king safty, space advantage, ...) while running SF in terminal, but I didn't experiment with it enough, and don't remember how it was done. For this purpose, you may also consider using some older engines like crafty, phalanx, Toga, etc. whose evaluation functions may be easy to understand. In human terms they are quite strong engines.