I am aware that the licenses of e.g. code on Github are currently not observed when training AIs and that there are licenses such as AGPL that require the code to be disclosed. But is there already a license that explicitly prevents use (for training) by an AI, and if not, should one strive for something like that? Would that make sense?
-
1I do not think that there is an OSS license that specifically touches the topic of training AI. Does this answer your question? opensource.stackexchange.com/a/13878/24836– Martin_in_AUTApr 20 at 9:02
-
2A license is only as good as your ability to enforce it. Which means, no.– SnakeDocApr 21 at 16:00
-
My question is what purpose such a restriction would serve? If your code is freely available anyway, then the AI is simply deconstructing it for use in examples, whereas a human programmer is more likely to simply copy and paste it. The AI using fragments of your code actually makes it more widely available and usable in more diverse applications, which is a good thing for software development in general.– oldtechaaApr 23 at 4:01
5 Answers
The question here remains "is the AI model a derivative work of the training inputs?"
If it is, then all the AI companies are already in violation of copyright and you don't need a specific license for this.
If it's not - i.e. it is fair use - then a license saying "you may not use this to train an AI model" is irrelevant.
As of April 2023, the answer to the question is very much unknown; it will need to be decided on by courts, who may make different decisions in different jurisdictions.
-
3Comments have been moved to chat; please do not continue the discussion here. Before posting a comment below this one, please review the purposes of comments. Comments that do not request clarification or suggest improvements usually belong as an answer, on Open Source Meta, or in Open Source Chat. Comments continuing discussion may be removed.– MadHatter ♦Apr 22 at 15:12
If the output of an AI is a derivative work of its training input, then compliance with most existing licenses is likely to be difficult or impractical, because of the need for attribution, but this only affects distribution of the output and/or the model (it's currently unclear whether a problem with the output would also affect the model itself). It does not prevent you from creating a model for your own private use. Furthermore, a future AI might be "smart" enough to be able to attribute things correctly, and such an AI would be fully compliant with the relevant licenses. If a license wants to prohibit the use of private models and/or fully compliant models, then it would have to prohibit the training process itself (see next paragraph).
If the output of an AI is not a derivative work of its training input, then such a limitation would require the license to prohibit training, which is not compatible with our usual understanding of Free and Open Source Software. It violates freedom #1 of the Free Software Foundation's four freedoms ("The freedom to study how the program works, and change it so it does your computing as you wish") and OSD/DFSG requirement #3 ("The license must allow modifications and derived works..."), and possibly also OSD #10 ("No provision of the license may be predicated on any individual technology or style of interface"). This is not because the AI is "learning" anything, but rather because the AI could serve as a tool for a human to modify the code. By prohibiting AI, you are prohibiting that human from modifying that code with that tool, which is simply Not Done in FOSS licensing (imagine, for example, a license prohibiting the use of a particular IDE, compiler, or version control system).
We currently do not know whether the output of an AI is a derivative work of its input, so we don't know which of those two paragraphs applies.
-
Comments have been moved to chat; please do not continue the discussion here. Before posting a comment below this one, please review the purposes of comments. Comments that do not request clarification or suggest improvements usually belong as an answer, on Open Source Meta, or in Open Source Chat. Comments continuing discussion may be removed.– MadHatter ♦Apr 24 at 22:29
There is this repo, which modifies popular open-source licenses to explicitly forbid the use of the source code in AI-training datasets:
Distribution of the model is a legal question on its own. It's not obviously computer code, or a work of literature, or any of the other things that can be copyrighted. It might be similar to perfumes, something that by omission simply is not covered by Intellectual Property laws. And if the model is not a work in the sense of copyright law, then the output cannot be a derivative work either.
-
3I won't agree with the last sentence. You can have a trivial non copyrightable program, that outputs copyrighted work. Just think of
cat copyrighted_work.txt
with a trivial implementation of cat (I am aware that something like GNU cat is nontrivial). Then the program that just outputs the file contents is too trivial to be copyrighted, but its output may contain copyrighted works.– alloApr 21 at 14:36 -
1@allo: In the case of
cat
, the output is an automated transformation of the input. It's that input which is copyrighted, and which remains copyrighted through the automated, trivial transformation. Butcat
is not a neural network. Look for instance at a neural network that plays chess or go. Its output is a "transformation" of the input moves, but the complexity here is in the model and not the inputs.– MSaltersApr 24 at 7:43 -
1That's another question. My comment was about if a non-copyrightable program may have a copyrightable output. Your last sentence was about the case when the model would not be a copyrightable work and my comment was only about that sentence. You comment seems more to be about if a program that stores a part of its code in a model (i.e. a part with a lot of magic numbers for its algorithm) has complexity or not and is also interesting but not what I commented.– alloApr 25 at 8:31
You might try Copy Far "AI" (full disclosure: I'm the current maintainer).