Is cloning a hobby?

Discussion of chess software programming and technical issues.

Moderators: Harvey Williamson, Dann Corbit, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Dann Corbit
Posts: 11702
Joined: Wed Mar 08, 2006 7:57 pm
Location: Redmond, WA USA
Contact:

Re: Is cloning a hobby?

Post by Dann Corbit » Wed Sep 16, 2020 10:26 pm

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."
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.

Tony P.
Posts: 208
Joined: Sun Jan 22, 2017 7:30 pm
Location: Russia

Re: Is cloning a hobby?

Post by Tony P. » Wed Sep 16, 2020 10:28 pm

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.

User avatar
mvanthoor
Posts: 546
Joined: Wed Jul 03, 2019 2:42 pm
Full name: Marcel Vanthoor

Re: Is cloning a hobby?

Post by mvanthoor » Wed Sep 16, 2020 10:55 pm

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.

Tony P.
Posts: 208
Joined: Sun Jan 22, 2017 7:30 pm
Location: Russia

Re: Is cloning a hobby?

Post by Tony P. » Wed Sep 16, 2020 11:58 pm

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.

User avatar
MikeB
Posts: 4488
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: Is cloning a hobby?

Post by MikeB » Thu Sep 17, 2020 12:39 am

Can we even agree on the definition of a "clone"? I'm not sure we can. I will let others go first.
Image

Tony P.
Posts: 208
Joined: Sun Jan 22, 2017 7:30 pm
Location: Russia

Re: Is cloning a hobby?

Post by Tony P. » 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.

AndrewGrant
Posts: 871
Joined: Tue Apr 19, 2016 4:08 am
Location: U.S.A
Full name: Andrew Grant
Contact:

Re: Is cloning a hobby?

Post by AndrewGrant » Thu Sep 17, 2020 2:05 am

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 :)

User avatar
MikeB
Posts: 4488
Joined: Thu Mar 09, 2006 5:34 am
Location: Pen Argyl, Pennsylvania

Re: Is cloning a hobby?

Post by MikeB » Thu Sep 17, 2020 3:54 am

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.
Image

Tony P.
Posts: 208
Joined: Sun Jan 22, 2017 7:30 pm
Location: Russia

Re: Is cloning a hobby?

Post by Tony P. » Thu Sep 17, 2020 4:05 am

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.

Guenther
Posts: 3555
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Is cloning a hobby?

Post by Guenther » Thu Sep 17, 2020 5:42 am

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.

Post Reply