4 ms·
That makes sense to me. If you use GPL code to train your model, then everything that model produces is a derivative work of that GPL code.
by jppittma 3y ago
That makes sense to me. If you use GPL code to train your model, then everything that model produces is a derivative work of that GPL code.
- josephg 3y agoThis would be a fascinating argument to make in court.
- lo_zamoyski 3y agoBut what is derivative? When does being derivative w.r.t. the GPL mean? Can I copy a function from a GPL’ed project? What if I rename the variables? What if I re-order some of the lines in an inconsequential way? This starts looking like the software patent problem, or the ship of Theseus.
- anon291 3y ago> Can I copy a function from a GPL’ed project? What if I rename the variables? What if I re-order some of the lines in an inconsequential way? All of these are GPL violations if it can be shown you looked at a GPL function while copying this. On the other hand, if you came up with it on your own and it happened to look similar, then it's fine.
- lo_zamoyski 3y agoSo, if I looked at a function, understood it, then reproduced the function from my grasp (not necessarily verbatim, but by understanding the logical flow), would that be subject to the GPL? What if it varied? How much does it need to vary not to be considered derivative? If there is a threshold, then it is possible to rewrite the original code in ways that do not resemble the original code verbatim, but are effectively the same.
- jppittma 3y agoIf you come up with a model that works like that, then I think that would be worth discussing after you collect your Turing award.
- anon291 3y ago> So, if I looked at a function, understood it, then reproduced the function from my grasp (not necessarily verbatim, but by understanding the logical flow), would that be subject to the GPL? What if it varied? How much does it need to vary not to be considered derivative? That's an interesting question. In general, the answer is no, but could change depending on if you had the function open at the time of writing the new function. But a lot of us have knowledge of basic data structures, etc, from reading GPL-licensed code (or perhaps even proprietary code in textbooks). So, in general, coming up with your own understanding is fine.
- jpgvm 3y agoThe output isn't derivative, the model weights are.
- numpad0 3y agoThe entire model weight file is a "compiled GPL binary" and its partial outputs would be too. If we would follow GPL precedents, everything that the model generates would be.
- JonChesterfield 3y agoIf course you can copy a function from a GPL project. That's part of making a derived work. What with you deriving the function from the GPL project. The violation is where you subsequently pass it off as a novel creation.
- lo_zamoyski 3y agoBut can we get around the GPL by transforming a function, in trivial ways, to produce an equivalent function to avoid having it fall under "derived work"?
- 8organicbits 3y agoIf there's also MPL 1.1 licensed code in the training set then you end up in an impossible situation where you can't comply with both GPL and MPL 1.1 at the same time. https://en.m.wikipedia.org/wiki/License_compatibility https://en.m.wikipedia.org/wiki/License_compatibility
- JonChesterfield 3y agoIt is difficult to see an argument that the output of a language model is not derived from the language model, other than people would prefer it wasn't.