Would the ICGA have accepted today's NNUE engines?

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

Moderator: Ras

Madeleine Birchfield
Posts: 512
Joined: Tue Sep 29, 2020 4:29 pm
Location: Dublin, Ireland
Full name: Madeleine Birchfield

Would the ICGA have accepted today's NNUE engines?

Post by Madeleine Birchfield »

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.
User avatar
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?

Post by Rebel »

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

Post by smatovic »

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
User avatar
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?

Post by hgm »

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.
User avatar
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?

Post by towforce »

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?

Post by smatovic »

hgm wrote: Mon Jul 05, 2021 7:13 pm I am not sure what 'inference code' is, but I imagine that it is the program used to train a NN from game data.
...
Training -> write data into a neural network
Inference -> read data from a neural network

--
Srdja
User avatar
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?

Post by hgm »

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.