Page 4 of 8

Re: Is cloning a hobby?

Posted: Wed Sep 16, 2020 10:26 pm
by Dann Corbit
This (from the Beef github page) sounds pretty remarkable:
"Beef implements many features found in popular modern engines, built around an original legal-move-only move generation scheme which aims to make search as fast as possible — using this design, the startpos perft speed at one point reached 385 mnps (1 CPU, no hash)! Therefore, Beef mainly hopes to achieve its playing strength from search speed."

Re: Is cloning a hobby?

Posted: Wed Sep 16, 2020 10:28 pm
by Tony P.
mvanthoor wrote:
Thu Sep 10, 2020 9:54 am
Now that so many engines are open source, everybody knows everything, everywhere. Look at how fast the NNUE-networks are spreading to other engines. In the end, there is no point NOT having such a network, because if you don't, you'll be 80-100 ELO behind an engine that does, all things being equal. Even if engines don't start out as clones, they might grow so close to one another that they could actually become twin brothers.
Training 'such' a network doesn't necessarily require cloning its exact architecture. I find it hard to believe that the current architecture is anywhere near optimal. There's a lot more room for experimentation in NN engines than classical ones.

Re: Is cloning a hobby?

Posted: Wed Sep 16, 2020 10:55 pm
by mvanthoor
maksimKorzh wrote:
Sat Sep 12, 2020 8:10 pm
You know guys, I believe that one of the most important reasons behind creating chess engines is the need to express yourself. It's being achieved via implementing well-known ideas in the way reflacting own personality. In this case the strength of engine is a side effect. Without this self exression the bare strength and rating doesn't make any sense to me at all. Even if you understand how it works and can do the same. Btw that's the reason why sometimes I can sacrifice the performance just to make some part fit an idea I'm trying to express.
To some extent, this is true.

As I said earlier, I think the defining part of a chess engine is the evaluation function. A move generator can only be two things:

- Perfectly accurate
- As fast as possible

If it's not accurate or it's slow, then it's useless. Same for the board representation: it has to be complete and fast.

Of course one can program things in different ways, in different languages, to the taste and personality of the programmer... but most things in a chess engine don't give it any personality of its own. The evaluation function does.

Therefore I'm thinking about implementing two evaluations (in time): one hand-tuned to make the engine play in a style that I think is attractive (but may not be the strongest or most sound way of playing), and one tuned with some sort of tuning algorithm to make it play as strong as possible.

Re: Is cloning a hobby?

Posted: Wed Sep 16, 2020 11:58 pm
by Tony P.
mvanthoor wrote:
Wed Sep 16, 2020 10:55 pm
A move generator can only be two things:

- Perfectly accurate
- As fast as possible

If it's not accurate or it's slow, then it's useless. Same for the board representation: it has to be complete and fast.
They have to be complete and obey the chess rules, but they don't have to be fast. Neural engines tend to use redundant representations (at least since Giraffe) in order to make the position input more digestible by eval NNs and their training converge faster. This doesn't hurt their speed much, as the Lc0-like engines spend the lion's share of their time in eval anyway, and even in NNUE ones, the benefit of the increased eval precision seems to outweigh the speed loss. Actually, in terms of nps, I expect future top engines to be between the NNUE ones and the ones with large NNs.

Re: Is cloning a hobby?

Posted: Thu Sep 17, 2020 12:39 am
by MikeB
Can we even agree on the definition of a "clone"? I'm not sure we can. I will let others go first.

Re: Is cloning a hobby?

Posted: Thu Sep 17, 2020 1:39 am
by Tony P.
My definition is narrow: a clone is a derivative that's been proved to have violated the license of either of its origins, or has at least shown a high level of similarity in tests (currently Ed's SIMEX) with some engine that hasn't been disclosed as its origin. High, as in, a level that's reached by such illegal derivatives almost only.

So I wouldn't apply the 'clone' label to derivatives of open-source code that credit the sources correctly and carry the necessary license notes, though I'm seldom interested in using the former unless they've improved upon or departed a lot from their origins.

Re: Is cloning a hobby?

Posted: Thu Sep 17, 2020 2:05 am
by AndrewGrant
Tony P. wrote:
Thu Sep 17, 2020 1:39 am
My definition is narrow: a clone is a derivative that's been proved to have violated the license of either of its origins, or has at least shown a high level of similarity in tests (currently Ed's SIMEX) with some engine that hasn't been disclosed as its origin. High, as in, a level that's reached by such illegal derivatives almost only.

So I wouldn't apply the 'clone' label to derivatives of open-source code that credit the sources correctly and carry the necessary license notes, though I'm seldom interested in using the former unless they've improved upon or departed a lot from their origins.
SIMEX is very good. http://rebel13.nl/html/100000.htm especially when a program shows higher similarity to a Stockfish version than Stockfish shows to itself :)

Re: Is cloning a hobby?

Posted: Thu Sep 17, 2020 3:54 am
by MikeB
Tony P. wrote:
Thu Sep 17, 2020 1:39 am
My definition is narrow: a clone is a derivative that's been proved to have violated the license of either of its origins, or has at least shown a high level of similarity in tests (currently Ed's SIMEX) with some engine that hasn't been disclosed as its origin. High, as in, a level that's reached by such illegal derivatives almost only.

So I wouldn't apply the 'clone' label to derivatives of open-source code that credit the sources correctly and carry the necessary license notes, though I'm seldom interested in using the former unless they've improved upon or departed a lot from their origins.
I have always known the word "clone" to be a virtual exact copy in function in computing (https://en.wikipedia.org/wiki/Clone_(co ... 20products - virtual meaning some very high percentage but could be less than 100%. My Honey engines are clones of stockfish , cfish and corchess are clones of stockfish, etc. Houdini , based on evidence I had seen , took many parts of Stockfish search function, but the evaluate functions appeared to be unrelated for the most part and large swaths of code in other functions appear to be unrelated as well. It is clearly ,in my opinion, a derivative of Stockfish and it appears to be use of code which illegally violated the Stockfish license - but based on the accepted definition of a clone in computing - I believe Houdini falls short of being a clone. I would categorize it as an illegal derivative. This is probably me just being overly picky and old school. Anyway , I am open to anyone who wishes to persuade me otherwise.

Re: Is cloning a hobby?

Posted: Thu Sep 17, 2020 4:05 am
by Tony P.
As to the definition of 'some very high percentage': to me as a user, 65%+ similarity of a commercial engine to a free one on SIMEX means that I'm better off not buying the former, as its output wouldn't be salient enough to even dedicate resources to running it.

Re: Is cloning a hobby?

Posted: Thu Sep 17, 2020 5:42 am
by Guenther
mhouppin wrote:
Wed Sep 16, 2020 9:39 pm
Dann Corbit wrote:
Wed Sep 16, 2020 9:32 pm
If he shares the source code where is it?
I did not see it on github.
https://github.com/jtseng20/Beef
Big parts of the search are much more than inspired by Defenchess, they are just copied.