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.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.
Are neural nets (the weights file) copyrightable?
Moderators: hgm, Rebel, chrisw
-
- Posts: 536
- Joined: Thu Mar 09, 2006 3:01 pm
Re: Are neural nets (the weights file) copyrightable?
-
- Posts: 99
- Joined: Sat Mar 10, 2018 6:16 am
Re: Are neural nets (the weights file) copyrightable?
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.Ferdy wrote: ↑Sun Feb 21, 2021 8:40 pm the protection with regards to ai there may not be underestimated.
-
- Posts: 2272
- Joined: Mon Sep 29, 2008 1:50 am
Re: Are neural nets (the weights file) copyrightable?
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”.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.
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.
Without ideas there is nothing to simplify.
-
- Posts: 208
- Joined: Mon Dec 10, 2018 3:29 pm
- Full name: Adam Treat
Re: Are neural nets (the weights file) copyrightable?
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.Michel wrote: ↑Mon Feb 22, 2021 1:49 amThere 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”.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.
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.
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.
-
- Posts: 2272
- Joined: Mon Sep 29, 2008 1:50 am
Re: Are neural nets (the weights file) copyrightable?
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.
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.
Without ideas there is nothing to simplify.
-
- 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?
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.
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.)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.
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.
-
- 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?
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?gonzochess75 wrote: ↑Mon Feb 22, 2021 2:11 amIn addition, stockfish loads the network in memory in its own process.
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?
-
- Posts: 146
- Joined: Wed Aug 27, 2008 3:48 am
Re: Are neural nets (the weights file) copyrightable?
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.
-
- Posts: 454
- Joined: Mon Nov 01, 2010 6:55 am
- Full name: Ted Wong
Re: Are neural nets (the weights file) copyrightable?
Does that mean anybody using Microsoft Word need to give copyright to Microsoft?
-
- 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?
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.
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.