3 ms·
> The answer is obvious: sharing the prefiltering solution we used in this analysis to detect overlap with the training set. When a suggestion contains snippets
by shakna 5y ago
> The answer is obvious: sharing the prefiltering solution we used in this analysis to detect overlap with the training set. When a suggestion contains snippets copied from the training set, the UI should simply tell you where it’s quoted from. You can then either include proper attribution or decide against using that code altogether.
> This duplication search is not yet integrated into the technical preview, but we plan to do so. And we will both continue to work on decreasing rates of recitation, and on making its detection more precise.
I'm afraid I don't think actually comes even close to resolving the legal implications of recitation.
If Copilot is reciting pieces of GPL code (which we know it can), then not only does it need to point out where it has grabbed that code from, Copilot itself is (probably) required to be GPL-licensed.
> 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
> 2b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
Copilot is distributing the GPL source code (through recitation), which means that it is, at least in part, derived from the GPL code (through learning), but it most definitely "contains" the GPL code.
- dtrailin 5y agoIt's not clear why it would need to be if it runs as a online service. I would say this is analogous to a search engine index. Google for example likely has lots of GPL code in it's index in some transformed form and yet there is little dispute that this is legal.
- shakna 5y ago> I would say this is analogous to a search engine index. Google for example likely has lots of GPL code in it's index in some transformed form and yet there is little dispute that this is legal. I'd disagree with the comparison, pretty vehemently. Copilot can generate new code. It isn't just some storage mechanism. It can create derived code, Google Search can't.
- dtrailin 5y agoInteresting, so your argument is not about parroting but specifically about the novel code Copilot generates. My sense is that it would be fine for all licenses except for AGPL as this is an online service and is not "distributed" per say. That is if you don't buy the argument that machine learning is a transformative work so it doesn't matter what the license is, which is the position of current US caselaw.
- shakna 5y agoNo, my argument is that Copilot is specifically _not_ a storage mechanism, but is producing verbatim GPL'd code, meaning that as a piece of software, it is not exempt from the GPL.
- deleted 5y ago[deleted]
- jonathankoren 5y ago> I'm afraid I don't think actually comes even close to resolving the legal implications of recitation. If Copilot is reciting pieces of GPL code (which we know it can), then not only does it need to point out where it has grabbed that code from, Copilot itself is (probably) required to be GPL-licensed. I dont follow. If the suggested code is GPLed, it’s your decision to include it in your code or not. If you accept the GPLed code into your nonGPLed code base, you violated the GPL. As a friend of mine said years ago about situations like this, “Saying ’I was just following the algorithm,’ is not a defense.” Now let’s is Copilot a violation of the GPL? I’m going to assume that it’s codebase is not derived from GPL code. I have nothing to prove this, but most code is not, and Microsoft, GitHub, and OpenAI are reputable organizations, so assuming good faith here seems fair. Did Copilot train on GPLed code? Absolutely. I don’t think anyone has ever suggested otherwise. Does processing the code count as an integration? I’d say no. It certainly isn’t part of the executable code base, even in binary form, which is what the GPL was targeting. Even if it was, it wouldn’t be a GPL violation, since the copilot binary isn’t being distributed, but it would be an AGPL violation. I don’t know how popularly the AGPL is, but let’s assuming that at at least something from some AGPLed file exists inside Copilot. Again that doesn’t matter, because the code isn’t actually being executed. So is it “distributing” the code? Sure, but that’s not a violation. If you make a binary, you have to distribute the code, but the opposite isn’t true. Anyway, just having a piece of GPL source code in a database isn’t a violation, and never has been. You might as well bring saying that because Google’s search index can return entries of the Linux kernel, all of Google is in violation of the GPL. Not even RMS would take that extreme view.
- shakna 5y ago> It certainly isn’t part of the executable code base, even in binary form, which is what the GPL was targeting. The GPL also targets source forms, such as what is being produced verbatim. (See Clause 1 of the GPL.) > Again that doesn’t matter, because the code isn’t actually being executed. That's not a requirement of the GPL or AGPL. It's irrelevant. > So is it “distributing” the code? Sure, but that’s not a violation. It is, without the license. > Anyway, just having a piece of GPL source code in a database isn’t a violation, and never has been. You might as well bring saying that because Google’s search index can return entries of the Linux kernel, all of Google is in violation of the GPL. Not even RMS would take that extreme view. Storage mechanisms are not the problem here. The GPL source code is not in some database, in this case. A search index is irrelevant, because that is just a storage mechanism. However, Copilot generates verbatim code, and it generates novel code. That is, it both contains the plain text of the original (recitation and redistribution), generates derived code (transformation). In both these cases it doesn't attribute, so you can say with certainty that the Copilot software contains the source code, and may create derivative works, all without attributing the license. It is the fact it contains the source code, reciting it verbatim, that makes Copilot probably need to be GPL-licensed itself. As it is not a storage mechanism. It is that it distributes derived works without attribution that puts the end-user's codebase at risk of violating the GPL.
- 8note 5y agoI think that means that if you memorize some GPL code, all code you write needs to be GPL'd, since you contain GPL code
- caconym_ 5y ago> If Copilot is reciting pieces of GPL code (which we know it can), then not only does it need to point out where it has grabbed that code from, Copilot itself is (probably) required to be GPL-licensed. I'm no GPL expert, but if you could trivially swap in a model trained on a different corpus, I think that's enough separation between the Copilot code and the model data that GPLing the former is not necessary. IIRC there is an "at arm's length" criterion that typically applies in cases like this.
- taneq 5y agoZip can ‘recite’ GPL code by unzipping a source code archive. The fact that you can swap in a different zip file ‘model’ that was ‘trained’ on different data doesn’t mean the first zip file isn’t GPL’d.
- caconym_ 5y agoIf a non-GPL'd zip implementation is used to unzip an archive of GPL'd code, does that mean the zip implementation is in violation of the GPL? That's the point of my comment that you replied to, and it is a response to a specific claim (which I quoted) in its parent. I have not and will not make the (nonsensical) claim that you seem to be suggesting I've made--that the ability to change out the model somehow negates the licenses of code used to train a different version of the model.
- taneq 5y agoAh, I think I see the disconnect. In the post you replied to, they said “copilot itself” (ie. the copilot model plus code) should be GPL’d. I missed that your reply was about whether the code specifically needs to be GPL’d. I agree with you there, but it’s also a bit of a tangent from the original point (which was that if copilot can regurgitate GPL code then it’s necessarily a derivative work.)
- macksd 5y agoIf the recitation of GPL code required Copilot to be GPL licensed, then that would be incompatible with other licenses. If the copyright is held by someone else, you're simply not the one who can ultimately decide the terms under which it is redistributed.