Code: Select all
Score of LizardFish1 vs sfdev150720: 22 - 14 - 64 [0.540] 100
Elo difference: 27.85 +/- 40.89
Moderators: hgm, Rebel, chrisw
Code: Select all
Score of LizardFish1 vs sfdev150720: 22 - 14 - 64 [0.540] 100
Elo difference: 27.85 +/- 40.89
I should clarify what I know and what I suspect.mjlef wrote: ↑Thu Jul 16, 2020 4:38 am
I consider Albert a good friend, but I must disagree a bit. Training a NN to match the eval and search output of a single program seems to be to be a way to clone that program. We might not understand exactly how the NN works compared with say an assembly dump of a programs eval and search functions, but it is a direct attempt to duplicate the program. Training on many sources (programs, human games, self play) is not trying to specifically duplicate another programs search and eval, so I think that wold be allowed. Training for personal use is fine. I am just speaking of training against a program (especially a commercial engine) and then releasing the NN without permission is wrong. I assume testing groups and tournaments would agree, but I would like to hear more opinions.
This is a new world, but the old cloning rules would still apply.
Mark
dkappe wrote: ↑Thu Jul 16, 2020 2:10 am I generated training data with Komodo 14 (and a modest amount of python). I used a recent nnue binary to train a net using that data and am running that net using that binary (as are my helpful friends). So this is an approximation of the Komodo 14 eval at depth 8 running on a sf-nnue binary. The name? Nothing serious. It’s a marriage of Komodo and stockfish — LizardFish.
Okay so you created a Hybrid of Komodo and Stockfish, which according to you is stronger than any of them individually
I’ll train it up some more, but I have mixed feelings about distributing a stronger version. It seems almost like a theft of Komodo’s intellectual property. The same sort of cloning (and I think this is much more “cloning” than the usual name calling on this forum) could be done with any uci engine and a modest amount of cpu.
I am sorry but what you write has absolutely zero sense. First, moves played by Komodo as any chess game are public domain. Second playing certain moves in certain positions have nothing to do with cloning Komodo, but training Stockfish eval on moves that are assumed best by Komodo on certain search depth (8). And last, eval trained in this way performs better than eval NN trained at depth 8 of Stockfish only because K at fixed depth 8 is stronger than SF at fixed depth 8.mjlef wrote: ↑Thu Jul 16, 2020 4:38 am I consider Albert a good friend, but I must disagree a bit. Training a NN to match the eval and search output of a single program seems to be to be a way to clone that program. We might not understand exactly how the NN works compared with say an assembly dump of a programs eval and search functions, but it is a direct attempt to duplicate the program. Training on many sources (programs, human games, self play) is not trying to specifically duplicate another programs search and eval, so I think that wold be allowed. Training for personal use is fine. I am just speaking of training against a program (especially a commercial engine) and then releasing the NN without permission is wrong. I assume testing groups and tournaments would agree, but I would like to hear more opinions.
This is a new world, but the old cloning rules would still apply.
Good questions. I’m certainly able to train with fixed nodes, fixed time, or one of these as a function of the position. But this is literally my first net trained after 1 day of work, so forgive me if I haven’t made all experiments yet.Milos wrote: ↑Thu Jul 16, 2020 6:41 am
One thing I really don't understand with those ppl trying to train SF eval. Why are you training on positions produced at fixed depth??? That makes very little to no sense. Just because the original author of SF-NNUE recommended this or because extending learner.cpp to support other parameters than depth is so difficult??? After all, training for fixed number of nodes is also available as a parameter, and even that one would produce better games than fixed depth.
What makes the most sense is to train at fixed time, or even better positions produced by games played with actual TM.
I know you are experimenting for a very short period of time, my question was oriented more towards jjoshua and Gekkehenker.dkappe wrote: ↑Thu Jul 16, 2020 6:53 am Good questions. I’m certainly able to train with fixed nodes, fixed time, or one of these as a function of the position. But this is literally my first net trained after 1 day of work, so forgive me if I haven’t made all experiments yet.
One open question is whether a relatively small and simple net like this can approximate an eval much deeper than 8. There may be some N (depth, nodes, etc.) above which the net is worse. More experiments.
You won't win any lawsuits if you ever intend to file one for this case, just saying. I know because I'm working as a copyright legal agent right now.mjlef wrote: ↑Thu Jul 16, 2020 4:38 amI consider Albert a good friend, but I must disagree a bit. Training a NN to match the eval and search output of a single program seems to be to be a way to clone that program. We might not understand exactly how the NN works compared with say an assembly dump of a programs eval and search functions, but it is a direct attempt to duplicate the program. Training on many sources (programs, human games, self play) is not trying to specifically duplicate another programs search and eval, so I think that wold be allowed. Training for personal use is fine. I am just speaking of training against a program (especially a commercial engine) and then releasing the NN without permission is wrong. I assume testing groups and tournaments would agree, but I would like to hear more opinions.Albert Silver wrote: ↑Thu Jul 16, 2020 2:54 amIt really is not, since while the NN is trained from games played by Komodo, it is still an NN. If studying Kasparov's games and trying to emulate him makes me his clone then..... my dreams have all come true!!dkappe wrote: ↑Thu Jul 16, 2020 2:10 am I generated training data with Komodo 14 (and a modest amount of python). I used a recent nnue binary to train a net using that data and am running that net using that binary (as are my helpful friends). So this is an approximation of the Komodo 14 eval at depth 8 running on a sf-nnue binary. The name? Nothing serious. It’s a marriage of Komodo and stockfish — LizardFish.
I’ll train it up some more, but I have mixed feelings about distributing a stronger version. It seems almost like a theft of Komodo’s intellectual property. The same sort of cloning (and I think this is much more “cloning” than the usual name calling on this forum) could be done with any uci engine and a modest amount of cpu.
I am the mysterious tester (this is all dkappe's work), and ran it for 35 games before calling it quits. It was 35 games only (not 1000, sorry), with 30 threads each, for roughly 30+ Million nps for SF10 and 14-15 Million nps for Lizard. I would have played a later version of SF but was told to not be too optimistic, so this was only chosen to try to keep it competitive. A case of underestimating itself if ever one was seen.
Here is the result:
Code: Select all
lizard1-sf10-11-254, Blitz 1.0min+1.0se 2020 12345678901234567890123456789012345 1 SF NNUE halfkp-256 090720,x64 avx2 +113 ½½½½1½½½1½½1½½1½½½1½½½1111½01½1½½½1 23.0/35 2 Stockfish 10 64 POPCNT -113 ½½½½0½½½0½½0½½0½½½0½½½0000½10½0½½½0 12.0/35
This is a new world, but the old cloning rules would still apply.
Mark
Fwiw, behavioral cloning (that's a scientific term!), as well as any other kind of knowledge distillation, from Arasan would be perfectly legal And ironically, it might still yield a stronger engine than SF.
It may be legal (ok, it is legal), but is it right? Right now this net is pretty far away from Komodo in terms of accuracy. But a more highly trained one?