Are neural nets (the weights file) copyrightable?

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

Moderators: hgm, Rebel, chrisw

brianr
Posts: 536
Joined: Thu Mar 09, 2006 3:01 pm

Re: Are neural nets (the weights file) copyrightable?

Post by brianr »

gonzochess75 wrote: Sun Feb 21, 2021 9:06 pm But those are the works of human authors and creative works. They're also not derivative works of GPL'd software. But suit yourself to a double standard.
Training a basic net from instructions is fairly straightforward, although there are many quite exacting steps. Carefully testing and measuring its strength is also required and not trivial to do properly and accurately. At net a very roughly 3,000 Elo can be done in a week or less if you have done it before. However, each additional 100 Elo gets increasingly difficult. Training a net that is competitive with the top tier nets is extremely difficult. And, there is about as much art as there is science, some of which must be creative to find some new approaches that improve strength. So, nets are certainly the result of human authors.
jjoshua2
Posts: 99
Joined: Sat Mar 10, 2018 6:16 am

Re: Are neural nets (the weights file) copyrightable?

Post by jjoshua2 »

Ferdy wrote: Sun Feb 21, 2021 8:40 pm the protection with regards to ai there may not be underestimated.
Interesting. Just the act of monitoring a process and stopping when the results are artistically pleasing is probably enough, while a pure supervised learning would not be. I am confused why they say a reinforcement learning also counts. Presumably there is a human directing some of the reinforcement direction or at least monitoring hyperparmeters and changing them and determining when to stop the process? That could apply to supervised learning too, so not sure what the distinction they are making is.
Michel
Posts: 2272
Joined: Mon Sep 29, 2008 1:50 am

Re: Are neural nets (the weights file) copyrightable?

Post by Michel »

hgm wrote: Sun Feb 21, 2021 8:17 pm Whether the NNUE is code or not is not really relevant. Code can be data too, e.g. in the case of an interpreter or 'just in time' compiler for an interpreted language like JavaScript or Java. A GPL'ed interpreter / compiler can be used for compiling Java or JavaScript with another license without any problem, and for user convenience distributed together with the code it is going to interpret.
There is a distinction. A Python interpreter does not need the Python code it executes. However SF needs the NNUE to fulfil its primary function. The NNUE replaces the HCE (which is code). So SF is not just a “player”.

Another example that illustrates the distinction: the Python code in a bootstrapping Python interpreter would indeed have to be GPL if the kernel were GPL.
Ideas=science. Simplification=engineering.
Without ideas there is nothing to simplify.
gonzochess75
Posts: 208
Joined: Mon Dec 10, 2018 3:29 pm
Full name: Adam Treat

Re: Are neural nets (the weights file) copyrightable?

Post by gonzochess75 »

Michel wrote: Mon Feb 22, 2021 1:49 am
hgm wrote: Sun Feb 21, 2021 8:17 pm Whether the NNUE is code or not is not really relevant. Code can be data too, e.g. in the case of an interpreter or 'just in time' compiler for an interpreted language like JavaScript or Java. A GPL'ed interpreter / compiler can be used for compiling Java or JavaScript with another license without any problem, and for user convenience distributed together with the code it is going to interpret.
There is a distinction. A Python interpreter does not need the Python code it executes. However SF needs the NNUE to fulfil its primary function. The NNUE replaces the HCE (which is code). So SF is not just a “player”.

Another example that illustrates the distinction: the Python code in a bootstrapping Python interpreter would indeed have to be GPL if the kernel were GPL.
In addition, stockfish loads the network in memory in its own process. This is exactly like dlopening a module / plugin - if you insist on treating the network like code (ie., copyrightable). If someone distributes a piece of GPL'd tech with the express purpose of running it and linking in a non-compatible piece of copyrightable code to form a combined work, then they are clearly just blatantly violating the copyright of the GPL'd code.

Read all about static vs dynamic linking for GPL (vs LGPL) and how it doesn't make a difference:

https://www.gnu.org/licenses/gpl-faq.ht ... cVsDynamic

Read all about how modules to GPL'd programs must also be licensed under the GPL:

https://www.gnu.org/licenses/gpl-faq.ht ... uleLicense

If you insist that neural networks are copyrightable, then you are effectively saying they are modules loaded into GPL'd code and thus the above link should be read again and again until you get it ^^^^.

https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins

There is simply no way to consider the data structures and communication of the neural nets weights and the main search as anything less than a combined program. The neural net weights are *useless* without the search and without the NNUE code that actually sends the input.

Again, my personal opinion is that these neural nets are not copyrightable. Which would be *good* for anyone who is distributing such weights without adhering to the terms of the engine's copyright.
Michel
Posts: 2272
Joined: Mon Sep 29, 2008 1:50 am

Re: Are neural nets (the weights file) copyrightable?

Post by Michel »

I am getting more and more convinced that NN's are in fact programs and not simply data.

The reasoning is that a NN is nothing but a specific representation of a function and so is a program written in a conventional programming language. So one cannot distinguish between the two.

If one thinks of a NN as code, and taking into account that it is essential for SF to fulfill its primary purpose, the conclusion would be that a NN bundled with SF (even if it is not included in the binary but loaded in its address space at runtime) is indeed covered by the GPL.
Ideas=science. Simplification=engineering.
Without ideas there is nothing to simplify.
User avatar
hgm
Posts: 27795
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Are neural nets (the weights file) copyrightable?

Post by hgm »

Michel wrote: Mon Feb 22, 2021 1:49 am A Python interpreter does not need the Python code it executes.
It seems to me a Python interpreter would do awfully little if you don't give it Python code to interpret it. Printing an error message "empty program" hardly counts as 'executing'. (And I expect Stockfish to do the same if you specify a non-existing NNUE file.) But I never programmed in Python, so what do I know? Perhaps Python is not the perfect example.
Michel wrote: Mon Feb 22, 2021 9:29 am I am getting more and more convinced that NN's are in fact programs and not simply data.

The reasoning is that a NN is nothing but a specific representation of a function and so is a program written in a conventional programming language. So one cannot distinguish between the two.

If one thinks of a NN as code, and taking into account that it is essential for SF to fulfill its primary purpose, the conclusion would be that a NN bundled with SF (even if it is not included in the binary but loaded in its address space at runtime) is indeed covered by the GPL.
I agree that a NN is code of some sort. (It is in fact a program for a data-flow computer, a concept that is as old as computers themselves.)

But it is a program at another 'level', for which the code that uses the weights to calculate the output of the virtual NN is the interpreter. And the license of interpreters (or in any case the GPL) does not extend to the code you make them interpret.
User avatar
hgm
Posts: 27795
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Are neural nets (the weights file) copyrightable?

Post by hgm »

gonzochess75 wrote: Mon Feb 22, 2021 2:11 amIn addition, stockfish loads the network in memory in its own process.
And an interpreter for Python or JavaScript of course does that too. And an MP3 player would load the audio file in memory. How do you imagine these programs could do anything at all with the data they operate on, if they would not load it into the memory of their own process first?

Nodejs even creates a compiled version of the JavaScript you make it execute, it its process' memory. (Which is subject to the same copyrights as the source code itself.) Are you claiming that all JavaScript chess engines that are packaged with nodejs automatically have become property of Google?
daniel71
Posts: 146
Joined: Wed Aug 27, 2008 3:48 am

Re: Are neural nets (the weights file) copyrightable?

Post by daniel71 »

I think because they used the Stockfish tools to create the data files and those tools are part of the Stockfish software with the GPLv3 license they cannot claim copyright. They need to write their own NNUE tools to create proprietary data for NNUE. They already gave credit to the Stockfish team in the rewritten product description as of 02/22/2021 it would be difficult to argue now they totally rewrote the NNUE tools to produce node data or weights. Stockfish please setup a legal fund where people can help with the legal costs, make sure PayPal can be used as thats easy for me to donate.
kinderchocolate
Posts: 454
Joined: Mon Nov 01, 2010 6:55 am
Full name: Ted Wong

Re: Are neural nets (the weights file) copyrightable?

Post by kinderchocolate »

Does that mean anybody using Microsoft Word need to give copyright to Microsoft?
User avatar
hgm
Posts: 27795
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Are neural nets (the weights file) copyrightable?

Post by hgm »

Some people here seem to think so. Even worse, all engines that have been developed on PCs running Windows are owned by MicroSoft. And those on Mac by Apple.

In real life output of a program is never covered by copyrights on that program. So it is not really relevant what license the Stockfish NNUE training tools (or MS Word, or the C compiler) have.