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
One for Andrew Grant et al. - NNUE?
Moderators: hgm, Rebel, chrisw
-
- Posts: 2658
- Joined: Wed Mar 10, 2010 10:18 pm
- Location: Hamburg, Germany
- Full name: Srdja Matovic
-
- 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?
its all OK, why not ?
-
- 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?
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...
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...
-
- 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?
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
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: One for Andrew Grant et al. - NNUE?
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.
- 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.
-
- 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?
Thanks Vivien, this gives me a vector from what is illegal to what is encouraged to do, or alike.
--
Srdja
-
- Posts: 1784
- Joined: Wed Jul 03, 2019 4:42 pm
- Location: Netherlands
- Full name: Marcel Vanthoor
Re: One for Andrew Grant et al. - NNUE?
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.
- 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.
-
- 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?
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.
-
- 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?
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.
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 )
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
-
- 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?
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