Is cloning a hobby?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Is cloning a hobby?

Post 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."
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: 216
Joined: Sun Jan 22, 2017 8:30 pm
Location: Russia

Re: Is cloning a hobby?

Post by Tony P. »

mvanthoor wrote: Thu Sep 10, 2020 11: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: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Is cloning a hobby?

Post by mvanthoor »

maksimKorzh wrote: Sat Sep 12, 2020 10: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.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
Tony P.
Posts: 216
Joined: Sun Jan 22, 2017 8:30 pm
Location: Russia

Re: Is cloning a hobby?

Post by Tony P. »

mvanthoor wrote: Thu Sep 17, 2020 12:55 am 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: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Is cloning a hobby?

Post by MikeB »

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: 216
Joined: Sun Jan 22, 2017 8:30 pm
Location: Russia

Re: Is cloning a hobby?

Post 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.
AndrewGrant
Posts: 1750
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Is cloning a hobby?

Post by AndrewGrant »

Tony P. wrote: Thu Sep 17, 2020 3: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 :)
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Is cloning a hobby?

Post by MikeB »

Tony P. wrote: Thu Sep 17, 2020 3: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: 216
Joined: Sun Jan 22, 2017 8:30 pm
Location: Russia

Re: Is cloning a hobby?

Post 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.
User avatar
Guenther
Posts: 4605
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Is cloning a hobby?

Post by Guenther »

mhouppin wrote: Wed Sep 16, 2020 11:39 pm
Dann Corbit wrote: Wed Sep 16, 2020 11: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.
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy