- Admin wrote:
- It's complicated.
And it would be best if Bob would comment since he knows best.
However I will give it my best shot, here goes.
Volume is crucial, the learner is hungry, it needs millions of positions. For Rodent and Crafty both needed 6 million games to produce a relative small epd database of 400 million positions. How do you play 6 million games? You do it with a low depth time control. And that already takes a full week on one PC using 40 threads. For Rebel, Rodent and Crafty I used depth=6. Now lets have a look at the quality of depth=6, we play 100 game matches against the new SF15.
- Code:
-
No. Name Win Draw Loss Unf. Score Games %
-------------------------------------------------------
1 Rebel-14.2 +34 =40 -26 *0 54.0 100 54.0%
2 SF15 +26 =40 -34 *0 46.0 100 46.0%
No. Name Win Draw Loss Unf. Score Games %
------------------------------------------------------
1 Rodent-NN +24 =52 -24 *0 50.0 100 50.0%
2 SF15 +24 =52 -24 *0 50.0 100 50.0%
No. Name Win Draw Loss Unf. Score Games %
--------------------------------------------------------
1 SF15 +64 =17 -19 *0 72.5 100 72.5%
2 Crafty-25.3 +19 =17 -64 *0 27.5 100 27.5%
No. Name Win Draw Loss Unf. Score Games %
------------------------------------------------------
1 Gandalf-7 +38 =24 -38 *0 50.0 100 50.0%
2 SF15 +38 =24 -38 *0 50.0 100 50.0%
No. Name Win Draw Loss Unf. Score Games %
------------------------------------------------------
1 SF15 +45 =16 -39 *0 53.0 100 53.0%
2 Fruit-2.1 +39 =16 -45 *0 47.0 100 47.0%
I could go on, there also is this extremely high NPS of Crafty, it is as if Crafty puts all its money on search and therefore disqualifies itself for NNUE learning at low depths. Like I said previously, Crafty likely will do better at higher depth like 7, 8, 9 or 10 but then creating volume will become an almost impossible job.
Hope this helps a bit.
First – thank you very much for your clear explanation, Ed.
An obvious question: do I get it right, that though Crafty does depth=7 faster than most others, it is still too slow to make it viable for your NNUE method at depth=7 considering your availlable ressources?
I have another question, please bear with me for a little longer.
I have since had a closer look at Crafty 25.6’s performance. It looks pretty good and impressive to me and like a clear improvement over 25.3.
Please let me show a game from today first, that I consider to be very pretty against the strongest opponent availlable.
[pgn]
[Event "Lang 120min+10sek"]
[Site "Berlin"]
[Date "2022.04.22"]
[Round "?"]
[White "Stockfish 220422"]
[Black "Crafty 25.6"]
[Result "1-0"]
[ECO "E90"]
[PlyCount "99"]
[TimeControl "7200+10"]
{5120MB, LAPTOP-NCDN8BTK} 1. d4 {[%eval 37,42] [%emt 0:07:04]} Nf6 {[%emt 0:00:
06]} 2. Nf3 {[%eval 31,39] [%emt 0:01:30]} g6 {[%emt 0:00:06] (e6)} 3. c4 {
[%eval 28,36] [%emt 0:01:25]} Bg7 {[%emt 0:00:06]} 4. Nc3 {[%eval 44,39] [%emt
0:04:55]} O-O {[%emt 0:00:05] (d5)} 5. e4 {[%eval 59,34] [%emt 0:01:55]} d6 {
[%emt 0:00:06]} 6. h3 {[%eval 62,37] [%emt 0:02:04]} e5 {[%emt 0:00:06]} 7. d5
{[%eval 46,41] [%emt 0:03:32]} a5 {[%emt 0:00:06] (Sh5)} 8. Be3 {[%eval 82,42]
[%emt 0:08:42]} Na6 {[%emt 0:00:07] (Sbd7)} 9. g4 {[%eval 76,37] [%emt 0:02:59]
} Nc5 {[%emt 0:00:06]} 10. Nd2 {[%eval 62,37] [%emt 0:01:51]} c6 {[%emt 0:00:
06] (a4)} 11. a4 {[%eval 76,37] [%emt 0:02:40]} Nfd7 {[%emt 0:05:29] (Db6)} 12.
h4 {[%eval 82,34] [%emt 0:01:38]} Qb6 {[%emt 0:04:24] (Sa6)} 13. Rb1 {[%eval
107,32] [%emt 0:01:14]} Nb8 {[%emt 0:01:24]} 14. h5 {[%eval 102,36] [%emt 0:01:
28]} Nba6 {[%emt 0:03:19]} 15. Be2 {[%eval 112,37] [%emt 0:00:01]} Bd7 {
[%emt 0:02:46]} 16. Kf1 {[%eval 100,37] [%emt 0:02:20]} Rac8 {[%emt 0:05:45]
(Dd8)} 17. g5 {[%eval 101,36] [%emt 0:01:58]} Qd8 {[%emt 0:17:27]} 18. Nf3 {
[%eval 136,40] [%emt 0:01:16]} cxd5 {[%emt 0:03:44] (De8)} 19. cxd5 {[%eval
175,31] [%emt 0:02:37]} Nb4 {[%emt 0:00:23] (Le8)} 20. Nh4 {[%eval 163,49]
[%emt 0:02:50]} Bh8 {[%emt 0:02:17] (De7)} 21. Ra1 {[%eval 162,47] [%emt 0:02:
00]} Bg7 {[%emt 0:06:35] (De7)} 22. Rh2 {[%eval 178,38] [%emt 0:02:29]} Rc7 {
[%emt 0:02:19] (De7)} 23. Kg2 {[%eval 158,38] [%emt 0:04:24]} Bh8 {[%emt 0:03:
11] (De7)} 24. Ra3 {[%eval 182,40] [%emt 0:04:16]} b6 {[%emt 0:03:48] (De7)}
25. Qb1 {[%eval 157,51] [%emt 0:03:27]} Qe7 {[%emt 0:04:00]} 26. Nb5 {[%eval
182,41] [%emt 0:01:46]} Rcc8 {[%emt 0:01:10] (Tb7)} 27. Kh1 {[%eval 187,37]
[%emt 0:01:55]} Bg7 {[%emt 0:00:14]} 28. Rg2 {[%eval 208,36] [%emt 0:01:43]}
Rb8 {[%emt 0:02:10] (Kh8)} 29. Nf3 {[%eval 209,30] [%emt 0:01:07]} Rfc8 {
[%emt 0:03:31]} 30. Nd2 {[%eval 211,35] [%emt 0:01:14]} Bf8 {[%emt 0:02:25]}
31. f3 {[%eval 218,37] [%emt 0:00:01]} gxh5 {[%emt 0:01:10] (Sba6)} 32. Qd1 {
[%eval 251,32] [%emt 0:02:22]} Kh8 {[%emt 0:02:11] (Lg7)} 33. f4 {[%eval 347,
30] [%emt 0:01:15]} exf4 {[%emt 0:00:49]} 34. Bxf4 {[%eval 360,34] [%emt 0:00:
54]} Nb7 {[%emt 0:00:07]} 35. Re3 {[%eval 352,35] [%emt 0:01:25]} Nc2 {[%emt 0:
00:49]} 36. Rc3 {[%eval 403,36] [%emt 0:01:18]} Nb4 {[%emt 0:00:30]} 37. Bf1 {
[%eval 440,39] [%emt 0:10:06]} Bg4 {[%emt 0:00:49]} 38. Rxg4 {[%eval 418,29]
[%emt 0:00:38]} hxg4 {[%emt 0:00:06]} 39. Qxg4 {[%eval 484,30] [%emt 0:01:36]}
Rxc3 {[%emt 0:00:07]} 40. bxc3 {[%eval 474,32] [%emt 0:01:17]} Na6 {[%emt 0:03:
48] (Lg7)} 41. Nd4 {[%eval 573,32] [%emt 0:01:32]} Nbc5 {[%emt 0:00:09] (b5)}
42. Nf5 {[%eval 686,28] [%emt 0:01:16]} Qa7 {[%emt 0:01:50] (Dd8)} 43. Be3 {
[%eval 868,28] [%emt 0:02:20]} f6 {[%emt 0:01:30]} 44. gxf6 {[%eval 999,28]
[%emt 0:01:05]} Qf7 {[%emt 0:00:08]} 45. Bd4 {[%eval 1047,28] [%emt 0:01:23]}
h6 {[%emt 0:00:41] (Te8)} 46. Be2 {[%eval 1148,28] [%emt 0:01:48]} Nd7 {
[%emt 0:01:39]} 47. Qh4 {[%eval 1176,27] [%emt 0:00:01]} Qg6 {[%emt 0:00:38]}
48. Bxa6 {[%eval 1212,27] [%emt 0:00:40]} Qg5 {[%emt 0:00:42] (Kh7)} 49. Qxg5 {
[%eval 1272,29] [%emt 0:01:34]} hxg5 {[%emt 0:00:26]} 50. Bb5 {[%eval 1354,28]
[%emt 0:00:55]} 1-0 [/pgn]
For human eyes (that are right for once) it is easy to identify 31. ..gxh5 as suicidal here. Despite Stockfish’s huge evals before I personally think that white has nothing much if black avoids this move.
Crafty had been toying with this move for several moves before but it managed to always resolve this to leading to a disadvantage by search. A different evaluation might have avoided this move, but if an engine rejects this by eval or by search doesn’t matter much in an actual game, if it can avoid it.
Now to my second question: shouldn’t this be an even bigger problem for Stockfish and its completely insane search depth and pruning? As a lay I see two alternatives: either it is so incredibly fast that you could do a similar process ( assuming it weren’t already NNUE) at higher depths – or it is the incredible hardware ressources it has, that allowed it to become NNUE?
I think it would indeed be best if Bob participated in this discussion that he probably isn’t aware of right now. For tactical reasons I would suggest you contact him ( as you are way more interesting than me
) .
All the best.
Peter