My previous thread on Vasik Rajlich
forum3/viewtopic.php?f=2&t=77613
was written as a response to smatovic's attempt to rehabilitate Albert Silver for rebranding Stockfish as Fat Fritz 2 and taking ideas on network training from jjoshua in this thread:
forum3/viewtopic.php?f=2&t=77612
It became clear in the Vasik Rajlich thread that, unlike today, the ICGA tournament organisers and computer chess programmers at the time were not concerned about violating GPL licenses at all. Instead, they were more concerned with copying code from other engines and using ideas from other engines.
Many of the top NNUE engines today have copied inference code from Stockfish (Igel, Rubichess, Nemorino), and many more have used ideas from Stockfish, such as the same neural network architecture (Komodo, Pedone), Judging from the statements of the ICGA and the perspective of many of those fighting to ban Rybka from ICGA at the time, none of the above engines using NNUE would have been regarded as unique enough to participate in ICGA.
Would the ICGA have accepted today's NNUE engines?
Moderator: Ras
-
Madeleine Birchfield
- Posts: 512
- Joined: Tue Sep 29, 2020 4:29 pm
- Location: Dublin, Ireland
- Full name: Madeleine Birchfield
-
Rebel
- Posts: 7425
- Joined: Thu Aug 18, 2011 12:04 pm
- Full name: Ed Schröder
Re: Would the ICGA have accepted today's NNUE engines?
Scott mckenzie - San francisco
If you're going to San Francisco
Be sure to wear some flowers in your hair
If you're going to San Francisco
You're gonna meet some gentle people there
For those who come to San Francisco
Summertime will be a love-in there
In the streets of San Francisco
Gentle people with flowers in their hair
All across the nation
Such a strange vibration
People in motion
There's a whole generation
With a new explanation
People in motion
People in motion
For those who come to San Francisco
Be sure to wear some flowers in your hair
If you come to San Francisco
Summertime will be a love-in there
-------------------------------------------
The ICGA upon this day is a blockage to progress.
If you're going to San Francisco
Be sure to wear some flowers in your hair
If you're going to San Francisco
You're gonna meet some gentle people there
For those who come to San Francisco
Summertime will be a love-in there
In the streets of San Francisco
Gentle people with flowers in their hair
All across the nation
Such a strange vibration
People in motion
There's a whole generation
With a new explanation
People in motion
People in motion
For those who come to San Francisco
Be sure to wear some flowers in your hair
If you come to San Francisco
Summertime will be a love-in there
-------------------------------------------
The ICGA upon this day is a blockage to progress.
90% of coding is debugging, the other 10% is writing bugs.
-
smatovic
- Posts: 3447
- Joined: Wed Mar 10, 2010 10:18 pm
- Location: Hamburg, Germany
- Full name: Srdja Matovic
Re: Would the ICGA have accepted today's NNUE engines?
Who owns AlphaBeta, who came up with Neural Networks for Chess, who made MCTS-PUCT work, who implemented NNUE for Chess first...
I myself see only little difference in implementing an idea from a paper or reading someones else code base, and regarding copy n paste - hey, it's called "open*" source right?
*GPL vs. BSD vs. MIT vs. Crafty-like, there are differences though.
--
Srdja
I myself see only little difference in implementing an idea from a paper or reading someones else code base, and regarding copy n paste - hey, it's called "open*" source right?
*GPL vs. BSD vs. MIT vs. Crafty-like, there are differences though.
--
Srdja
-
hgm
- Posts: 28418
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Would the ICGA have accepted today's NNUE engines?
I am not sure what 'inference code' is, but I imagine that it is the program used to train a NN from game data. This is not part of the engine anymore than the C compiler is part of the engine. So ICGA would not care about it.
The criterion applied by the ICGA is 'original work'. Meaning that no participants to the WCCC can use code (or opening books) derived from a competing participant's entry. An exception is made for End-Game Tables. Why? Because the participating programmers preferred it that way.
That doesn't mean derivatives are excluded from participating; by entering a derivative the author if the original simply becomes part of your team. This does mean he has to give permission for entering it; programmers cannot be 'dragged' into the tournament against their will. Arguably those who released their code under the GPL or similar license, have already given this permission through the license, or would violate their own license by attempting to deny this permission. But this case has never occurred in practice.
Using games played by another engine for training a NN (or HCE tuning, for that matter) is a muddy issue. A NN is a program, (for a data-flow computer) but it is comparable to the binary of a program. The game set from which it was trained is comparable to the source code for that NN. So it would make sense to apply the same rules as now apply for conventional code: when doubt arises w.r.t. originality, the organizers can request the training set. They could then investigate by concluding that training a NN from this set would indeed produce the participant's NN, and judge the originality of the training set. If the training set consists of (position, score) pairs, they would have no way of checking what produced the scores, though. They could check if other participants (or non-participating engines) of which the investigated engine allegedly is a derivative had the same (position, score) pairs in its training set.
I am not sure whether this would be sufficient to detect whether the sets were generated by the same engine, if the developers had independently used that engine to generate games, from which the positions were taken.
Note that ICGA rules are typically driven by the participants. If these would in majority decide that it is OK to train NNUE with LC0- or SF-generated position sets, then it would be allowed to train with LC0- and SF-generated position sets.
The criterion applied by the ICGA is 'original work'. Meaning that no participants to the WCCC can use code (or opening books) derived from a competing participant's entry. An exception is made for End-Game Tables. Why? Because the participating programmers preferred it that way.
That doesn't mean derivatives are excluded from participating; by entering a derivative the author if the original simply becomes part of your team. This does mean he has to give permission for entering it; programmers cannot be 'dragged' into the tournament against their will. Arguably those who released their code under the GPL or similar license, have already given this permission through the license, or would violate their own license by attempting to deny this permission. But this case has never occurred in practice.
Using games played by another engine for training a NN (or HCE tuning, for that matter) is a muddy issue. A NN is a program, (for a data-flow computer) but it is comparable to the binary of a program. The game set from which it was trained is comparable to the source code for that NN. So it would make sense to apply the same rules as now apply for conventional code: when doubt arises w.r.t. originality, the organizers can request the training set. They could then investigate by concluding that training a NN from this set would indeed produce the participant's NN, and judge the originality of the training set. If the training set consists of (position, score) pairs, they would have no way of checking what produced the scores, though. They could check if other participants (or non-participating engines) of which the investigated engine allegedly is a derivative had the same (position, score) pairs in its training set.
I am not sure whether this would be sufficient to detect whether the sets were generated by the same engine, if the developers had independently used that engine to generate games, from which the positions were taken.
Note that ICGA rules are typically driven by the participants. If these would in majority decide that it is OK to train NNUE with LC0- or SF-generated position sets, then it would be allowed to train with LC0- and SF-generated position sets.
-
towforce
- Posts: 12662
- Joined: Thu Mar 09, 2006 12:57 am
- Location: Birmingham UK
- Full name: Graham Laight
Re: Would the ICGA have accepted today's NNUE engines?
The SAT Solver competition has six categories. Maybe computer chess competitions need to go the same way.
Human chess is partly about tactics and strategy, but mostly about memory
-
smatovic
- Posts: 3447
- Joined: Wed Mar 10, 2010 10:18 pm
- Location: Hamburg, Germany
- Full name: Srdja Matovic
Re: Would the ICGA have accepted today's NNUE engines?
Training -> write data into a neural network
Inference -> read data from a neural network
--
Srdja
-
hgm
- Posts: 28418
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: Would the ICGA have accepted today's NNUE engines?
OK, thanks. So that is really the code to run the network itself.
This seems an even less creative task than EGT probing (which still involves some decompression). So my guess is that the participants would agree to all use the same code from an external source for this. It is not something you could use to distinguish your engine from the others (if their programmers are not completely incompetent, and then you would beat them anyway). And in such cases people usually prefer the easy solution.
This seems an even less creative task than EGT probing (which still involves some decompression). So my guess is that the participants would agree to all use the same code from an external source for this. It is not something you could use to distinguish your engine from the others (if their programmers are not completely incompetent, and then you would beat them anyway). And in such cases people usually prefer the easy solution.