One for Andrew Grant et al. - NNUE?

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

smatovic
Posts: 2658
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

One for Andrew Grant et al. - NNUE?

Post by smatovic »

I do not get quite what Andrew and others do complain about, maybe someone can
comment on these kind of statements and enlighten me?

- Using NNUE is OK/Not OK.

- Copying SF NNUE code is OK/NOK (even if your program is under GPL)

- Using a free NNUE implementation is OK/NOK.

- Implementing NNUE by your own via papers is OK/NOK.

- Comming up with an own variant of NNUE with different layout is OK/NOK.

- Using SF NNUE nets is OK/NOK.

- Using others data to train own NNUE nets is OK/NOK.

- Using own data to train own nets is OK/NOK.


???
Srdja
Engin
Posts: 918
Joined: Mon Jan 05, 2009 7:40 pm
Location: Germany
Full name: Engin Üstün

Re: One for Andrew Grant et al. - NNUE?

Post by Engin »

its all OK, why not ?
User avatar
Guenther
Posts: 4607
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: One for Andrew Grant et al. - NNUE?

Post by Guenther »

smatovic wrote: Thu Jan 21, 2021 5:40 pm ...

???
Srdja
Do you realize that the last few cases were GPL3 code in closed source programs?
https://rwbc-chess.de

trollwatch:
Talkchess nowadays is a joke - it is full of trolls/idiots/people stuck in the pleistocene > 80% of the posts fall into this category...
smatovic
Posts: 2658
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: One for Andrew Grant et al. - NNUE?

Post by smatovic »

Guenther wrote: Thu Jan 21, 2021 6:03 pm
smatovic wrote: Thu Jan 21, 2021 5:40 pm ...

???
Srdja
Do you realize that the last few cases were GPL3 code in closed source programs?
No, I did not, I did not dig deep enough, I thought we have free, non-GPL, versions of NNUE implementation out there and programmers use them instead of SF NNUE, thanks for clarification.

--
Srdja
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: One for Andrew Grant et al. - NNUE?

Post by xr_a_y »

For what it's worth (i.e. just nothing !), here is my current position

- Using NNUE is OK/Not OK.
Of course it is. But working, experimenting, searching, ... in the NNUE field seems a lot better than just "using"

- Copying SF NNUE code is OK/NOK (even if your program is under GPL)
It is legally ok in a GPL code but looks quite bad ethically. My first experiment in Minic was done this way, it was just an experiment and I felt unconfortable with it...

- Using a free NNUE implementation is OK/NOK.
It is legally (depending on the "free NNUE code" licence of course). Better is to participate to its development and extend its possibility.

- Implementing NNUE by your own via papers is OK/NOK.
It is.

- Comming up with an own variant of NNUE with different layout is OK/NOK.
It is highly recommanded but not easy at all. I experimented a lot around Seer style nets without any success for now.

- Using SF NNUE nets is OK/NOK.
It is legally (if not hard coded in not GPL engine I guess) ok but this is really really not fun ! They can be use for fun, or as a target but compete with that seems not that fair to me.

- Using others data to train own NNUE nets is OK/NOK.
If "others" means Dragon or LC0 or Ethereal instead of SF then I guess this is not fun... If "others" means some diversity of play so the net has a better style, I guess this quite cool.

- Using own data to train own nets is OK/NOK.
Very ok.
smatovic
Posts: 2658
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: One for Andrew Grant et al. - NNUE?

Post by smatovic »

xr_a_y wrote: Thu Jan 21, 2021 6:31 pm For what it's worth (i.e. just nothing !), here is my current position
..
Thanks Vivien, this gives me a vector from what is illegal to what is encouraged to do, or alike.

--
Srdja
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: One for Andrew Grant et al. - NNUE?

Post by mvanthoor »

My two cents:

- Using NNUE is OK/Not OK.

The thing many engine authors are miffed about is that they spent YEARS trying to fine-tune an evaluation, getting their engine to the 3000+ ELO range (and sometimes, like Ethereal, far beyond), and then some sort of technology that anyone can copy/paste comes along, elevating every other engine written by grandma and her dog to the 3000+ level.

It's not the fact that NNUE exists or is used that gets authors ticked off, it's the fact that people copy/paste a well-known implementation into their engine, and then brag about how strong their engine now is.

- Copying SF NNUE code is OK/NOK (even if your program is under GPL)

IMHO, OK... as long as you create and train your own NNUE file.

- Using a free NNUE implementation is OK/NOK.

IMHO, OK... I certainly would use a library to load and use the NNUE file; at least, at first. But the library is just an API, a way to use the NNUE file. I would only do so if I can create and train my own file. Later, I would probably replace the library with my own, IF I'm interested in writing one. (In the case of an endgame table probing library, for example, I'm not.)

- Implementing NNUE by your own via papers is OK/NOK.

OK. I'll probably do so, some day... somewhere FAR in the future.

- Comming up with an own variant of NNUE with different layout is OK/NOK.

OK; why not?

- Using SF NNUE nets is OK/NOK.

Definitely not OK, especially not if you're also using SF's code or a library to use the net. You've just effectively copy/pasted someone else's evaluation.

- Using others data to train own NNUE nets is OK/NOK.

For learning purposes and testing, I'll probably do so; and then use my own data for creating a new NNUE file.

- Using own data to train own nets is OK/NOK.

Obviously it is; especially if you use your own library/implementation.
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL
User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: One for Andrew Grant et al. - NNUE?

Post by hgm »

Whether something (that is not illegal) is OK or not for a large part depends on how you present it. If non-programmers use Stockfish to analyze a certain interesting position this is quite normal. When he enters in in the WCCC claiming he wrote the program, then it is cheating. If someone wants to use the evaluation of Stockfish and other open-source engines (whether NNUE or HCE) with a search of their own, that can be very interesting. As long as they do not claim the resulting engines are completely their own work.
AndrewGrant
Posts: 1756
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: One for Andrew Grant et al. - NNUE?

Post by AndrewGrant »

Using NNUE is OK/Not OK.
Using NNUE is okay. I think its uninteresting, even in Ethereal, but its still okay.

Copying SF NNUE code is OK/NOK (even if your program is under GPL)
Copying SF is okay if your program is under a compatible license, AND rating lists and tournments do not accept your engine. The SF copy pastas are purely exhibition. Violating the GPL of Stockfish is never okay, and any program using it should comply with the terms they accepted.

Using a free NNUE implementation is OK/NOK.
This is the same as the above. Just replace "people using SF NNUE" with "people using Ethereal NNUE"

Implementing NNUE by your own via papers is OK/NOK.
Of course this is okay. In fact, the papers are not even needed. Go make a network with a (king-sq, piece-sq, piece) encoding, and you are done. The input plane is a cool trick, but not some impressive complex and ownable idea.

Coming up with an own variant of NNUE with different layout is OK/NOK.
Sure. Experimentation and variation from the norm is always good.

Using SF NNUE nets is OK/NOK
Okay, but any program using an SF network is 1) unoriginal, 2) should not be rated or compete in events, and 3) must comply with the requirements of the SF GPL if the implementation code is also used.

Using others data to train own NNUE nets is OK/NOK
I am a purist. I will only train my things with Ethereal data. For decades people have used some commonly shared sets to train, and I never complained about that however. I think if you want a truely original product, you need to use your own data, your own pipeline, your own networks, and your own implementations.

Using own data to train own nets is OK/NOK.
Okay and encouraged.
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
smatovic
Posts: 2658
Joined: Wed Mar 10, 2010 10:18 pm
Location: Hamburg, Germany
Full name: Srdja Matovic

Re: One for Andrew Grant et al. - NNUE?

Post by smatovic »

AndrewGrant wrote: Fri Jan 22, 2021 6:24 am ...
I see, this seems to be about competition, tournaments and rating lists, what
is allowed and what not. I am not in the 3000+ Elo ballpark and currently not
active as chess programmer, so I guess it is up to the top programmers and
the organizers and audience to define what kind of competition is desired and
fair. But I wish to point out, that by restricting competition in this way, you
also restrict development process, imagine one comes up with an non-standard,
non-SF search algorithm, which offers new features, but uses the SF-NNUE
implementation and networks. Such an engine would offer something new,
innovative in combination of non-original work, and would be not allowed to
participate in tournaments and rating lists. Take as current example Ceres, the
alternative implementation of Lc0, it uses the Lc0 backends and networks but
has an alternative implementation of search, according to your statements, such
an engine would be not allowed to participate in tournaments and rating lists,
is this desired?

--
Srdja