The outrage-bait approach in this thread detracts from it. Yes, they trained it on everything. No, it's not clear if that's legal or not (probably is) or if that is much of a problem.
Indeed; the question is if copyright should apply at all. Harping on about licenses, GPL, and whatnot is a detraction from the actual issue at hand.
Also, given that the author of this tweet called me a "bootlicker" last year in response to a somewhat lengthy nuanced post about GitHub, I'm gonna go out on a limb and say that they're not all that interested in a meaningful conversation on this in the first place but are rather on a quest to "prove" GitHub is evil.
The possibility of GPL violation does show (one of) enormous ramifications of the question though. I think it's not a detraction as long as the question itself is also mentioned.
I'm talking about how it's presented. It starts with
>oh my gods. they literally have no shame about this.
Then continues with
>it's official, obeying copyright is only for the plebs and proles, rich people and big companies can do whatever they want
and
> GitHub, and by extension
@Microsoft
, knows that copyright is essentially worthless for individuals and small community projects. THAT is why they're all buddy-buddy with free software types; they never intended to respect our rights in the first place
At any rate, it's not even clear to me if me publishing code written with copilot (or even with a random tool that will wget from github) puts the blame on the toolmaker or on me. This post, however, doesn't attempt to look at that but uses language that paints GH/MS as doing something illegal (and evil) that others wouldn't even get away with but not caring about it.
Is that not true? Google and Oracle had a 10 year multi billion dollar legal fight over ~20 lines of code identical between Android and JVM.
A non rich individual has basically zero chance of challenging GitHub on these blatant violations, and they know it.
> At any rate, it's not even clear to me if me publishing code written with copilot (or even with a random tool that will wget from github) puts the blame on the toolmaker or on me.
It really depends on the license, which GitHub apparently doesn't care about at all.
It seems that github did make a legal consideration when choosing to include public projects but exclude private ones, with many big companies having private projects for proprietary code bases. Users of public repositories are less likely to be able to fight github on the issue.
To be fair, this could just be a mistaken interpretation from the support staffer that answered the question - they didn't sound sure ("apparently"). It certainly needs an official response from GitHub senior management but I wouldn't call the foul yet (not that it's even clear that it is a foul).
That's also my general sentiment. I assume anyone can do virtually anything with my public repos with little recourse from me. I wouldn't even know if they are indeed breaking my license agreements. Doesn't really help the situation though.
GitHub only recently allowed non-paid private repos. Previously these were only reserved for paid plans. Also, GitHub has a specific section for license files. GitHub actually believes these license files mean something, and states that they must be included with the repo so they are downloaded with it. Just because you can teach a script to ignore a LICENSE file, doesn't mean that it still doesn't apply. That is like saying that because you can teach a robot to ignore restricted airspace, that it is allowed to fly around an airport.
Any suggestions for an alternative? One thing I like about github is that it 'seems' to be a defacto standard for portfolios & public works. It also has excellent integration into AWS and alike
OP’s rhetoric, and most discussion I see, asserts that training a model on copyrighted data is a copyright violation. Personally I don’t find this to be so obviously the case. Think back to when we were listening to AI generated pop music, for instance. I don’t recall any concern in HN comments about the copyright holders’ music being used for learning.
Did you miss the bit where copilot reproduced exactly a function including the comments? That's not some mashup or reinterpretation or inspiration it meets the definition of plagiarism in universities and is just copying.
I didn’t miss that, this still doesn’t make the answer obvious to me. I’m pretty sure I’ve unknowningly replicated licensed code as well during my time as an engineer, and I’ve written way less code over my 8 years than Copilot has.
Then if you were discovered using it in a commercial project you can fairly be sued for it. Unless you're trying to argue that you should for some reason get an exemption?
Would I be found guilty if I could prove that I didn’t explicitly copy that code but rather just happened to write the same code by arriving at the same solution as the original one I had seen years before?
Nobody can answer this because it depends on the code and the resources of the entity suing you, but in general yes. This is why clean room design is a well-defined strategy: depending on the code and company, you would indeed not be allowed to work on the project because of the fact you'd seen a competitors solution previously.
If one of the three largest record labels uses their own catalog to train an AI, copyright seems less important to discuss. I suspect the discussion would be a bit different if a company scraped youtube and used that as a training set for AI music and successfully sold it.
> Think back to when we were listening to AI generated pop music, for instance. I don’t recall any concern in HN comments about the copyright holders’ music being used for learning.
Were those products sold to help people write commercial pop music faster? If not, I don't think your point is valid.
To the people arguing it's "fair use" to use this for training an ML network. Where do you draw the line? What if you train an "ML network" with one or two inputs... so that they almost always "generate" exact copies of the inputs? Five inputs..? Ten? A thousand? A million?
I can imagine a requirement of the sort 'generated code needs to match at most X% to snippets of the training data as shown over Y amount of sampling' but I am not sure if you can get a much better requirement than that.
Forbidding the training of AI on public code would definitely be a step too far though.
Edit: I'd also like if they provide a tool for checking if your code matches copyrighted code too close so you can confirm if you are violating anything or not when you use copilot.
Perhaps I wasn't clear enough on this point: copyright of a derivative work is distinct (but not inseparable) to the copyright of the original work.
So portions of a derivative work are covered by the original copyright, and other portions may be under a distinct copyright as a derivative work, and several copyrights may apply to a work as a whole.
In the case of a Huffman transform, the transformed work does not meet the "creativity" requirements to be eligible for copyright, over that of the original works.
> output and weights are deterministic transformations of the inputs;
That may be true but I fail to see how any process that produces the same content that was input into it somehow strips the license. If the generated code is novel, then there is no copyright and it is just the output of the tool. If the code is a copy, but non-creative (example a trivial function) then it isn't covered by copyright in the source anyways, so the output is not protected by copyright either. However if the output is a copy and creative I don't think it matters how complicated your copying process was. What matters is that the code was copied and you need to obey copyright.
Again, I don't think that novel code generated from being trained on copyrighted code is the problem. I think it is just the verbatim (or minimally transformed) copying that is the issue.
There obviously is no sharp line (e.g. it is 37. Immediate question: why not 36?), but that does not matter at all.
We already have the same fuzzy line for writing. Am I forbidden from ever reading other author's books because I might accidentally "generate exact copies" of some of the sentences? Clearly not, that is how people learn a language. Does that mean I am allowed to copy the whole book? Also clearly not.
The line is exactly the same line that's always been drawn in fair use cases.
There's absolutely nothing different whether the creator is ML or a human.
Generally, if you train an ML network to generate an almost exact copy of a thousand lines, it's obviously not fair use. If it's five simple lines, it obviously is fair use. If it's somewhere in between, there are a lot of different factors that need to be weighed in a fair use decision, which you can easily look up.
At least to some first approximation irrelevant because reading code is not subject to any license. What if a human reads some restrictively licensed code and years later uses some idea he noticed in that code, maybe even no longer being aware from where this idea comes?
But what if the system memorizes entire functions? What if a human does so? What if you change all the variable names? What if you rearrange the control flow a bit? What if you just change the spacing? What if two humans write the exact same code independently? Is every for loop with i from 0 to n a license violation?
I am not picking any side, but the problem is certainly much more nuanced then either side of the argument wants to paint it.
Sure, it might certainly be the case that different rules should be applied to humans and machines, but this makes the discussion only even more nuanced. But I don't think this could reasonably be used to ban machines from ingesting code with certain licenses even though it might restrict what they can do with this information.
I agree that it's nuanced and it's difficult to draw the line. but where copilot sits is way over on the plagiarizing side of the spectrum. Wherever we agree to draw the line, copilot should definitely fall on the wrong side of it
Copilot will replicate entire functions, including comments, from licensed code
> but where copilot sits is way over on the plagiarizing side of the spectrum
I think it is important to point out that not all Copilot output is on the plagiarizing side of the spectrum. However it does on occasion produce plagiarized code. And most importantly there is no indication when this occurs.
> What if a human reads some restrictively licensed code and years later uses some idea he noticed in that code, maybe even no longer being aware from where this idea comes?
In general using the idea is fine, whether it is AI or human written. I think the major concern here is when the code is copied verbatim, or near verbatim. (AKA the produced code is not "transformative" upon the original)
> But what if the system memorizes entire functions? What if a human does so?
In both of these cases I believe it would be a copyright concern. It is not strictly defined, and it depends on the complexity of the function. If you memorized (|a| a + 1) I doubt any court would call that copying a creative work. But if you memorized the quake fast inverse square root it is likely protected under copyright, even if you changed the variable names and formatting.
It seems clear to me that GitHub Copilot is capable of producing code that is copyrighted and needs to be used according to the copyright owner's license. Worse still, it doesn't appear of capable of knowing when it is doing that, and what the source is.
Out of curiosity, how do we define license violation in that case? I, as a human being, have trained by reading code, much of which is covered by licenses that are somehow not compatible with code I'm writing. Am I violating licenses?
Asking seriously. It's really unclear to me where law and/or ethics put the boundaries. Also, I'd guess it's probably country dependent.
I am not a lawyer but I am sure that any legal standard for ML has to be different than "isn't it just doing what humans do, but faster?"
GitHub scanning billions of code files to build commercial software is different than you learning at human pace, even if they're both "learning" and in the end they both produce commercial software.
It does not have to be different but it certainly can be different, a difference in quantity can certainly be a difference in quality. People watching other people walk by and a camera - maybe with face detection - doing the same are not only a difference in quantity but also in quality.
The human activity most like training an ML system is memorizing a text by reciting from memory, checking against the original, adjusting, and repeating until there are acceptably few mistakes.
And if a human did so for thousands of texts then publicly repeated those texts, they would be violating copyright too.
The main problem that has been the topic is a simpler one - about the produced work. If you exactly reproduce someone's existing code (doesn't matter if you copy by flipping bits one by one or which technology you use), isn't it a copyright violation?
I'm kind of imagining a Rube Goldberg machine that spells out the quake invsqrt function in the sand, now...
Yes, if you play a video from Netflix while recording your screen, transcode that video to MPEG2 and use a red laser to write a complex encoding of that MPEG2 bitstream onto a plastic disk, then send that by mail to your friend, a court won't care about the complexity of that Rube Goldberg machine. They will just say it's a clear copyright violation since you distributed a Netflix movie by DVD.
With programming, there's the further complication what constitutes a work. But quakes invsqrt certainly qualifies, just like that one function from the Oracle vs Google case.
Clean room design is a technique to avoid the appearance of copyright infringement. If the courts were omniscient and could see into your mind that you didn't copy then there would be no need. Why this is relevant is because we can see into the mind of copilot. Whether what it does it considered infringement I think will come out in the details.
If the ML model essentially is just a very sophisticated search and helps you choose what to copy and helps you modify it to fit your code then it's 100% infringement. If it is actually writing code then maybe not.
That is exactly what needs some careful consideration. As a start, two people can write the exact same code independently, therefore having identical code is not sufficient. On the other hand I can copy some code and slightly modify it, maybe only the spacing or maybe changing some variable names, and it could reasonably be a license violation, therefore having identical code is also not necessary.
Does the code even matter at all? If I start with a copy of some existing code, how much do I have to change it to no longer constitute a license violation? Can I ever reach this point or would the violation already be in the fact that I started with a copy no matter what happens later? Does intention matter? Can I unintentionally violate a license?
But I think we don't have to do all the work, I am pretty sure this has already been considered at length by philosophers and jurist.
> Out of curiosity, how do we define license violation in that case? I, as a human being, have trained by reading code, much of which is covered by licenses that are somehow not compatible with code I'm writing. Am I violating licenses?
That depends, if you end up writing copies of the code you've studied then yes. You are on thin ice. Plagarization is definitely something that you can do with computer code. There have been several high profile cases around this in arts. As far as I can see it usually ends up being a question about how much of the work is similar, how similar it is, and how unique what was similar is. And added wrinkle in programing is that some things can be done in only one way, or at least any reasonable programmer will do it in only one way. So for example a swap(var1, var2) function can usually only be done in one way, and therefor you would not get in trouble if your and someone else swap function are the same.
I've been following the discussion about Copilot, and one issue that comes up again and again is that people seem to think that since Copilot is new, the law will treat it, and the code it writes differently, than what it would you or a copy machine. I think that is naive, my impression is that courts care more about what you did, not how you did it, and if you think Copilot can be used to do an end run around the law. Prepare to be disappointed.
So if Copilot memorize code and spits out copies of that code, then it is at best skating on thin ice, or at worst doing a license violation. If the code it is copying is unique, then it definitely is heading into problematic territory. I'm fairly sure sure someone in legal at Github is very unhappy about the quake fast inverse square root function.
If the whole 'Dark Horse' debacle proved anything it would be that that can still be considered a copyright infringement. Sure that particular example was (rightly IMHO) deemed to not be a copyright violation, but they still had to show their version was original enough, they couldn't just claim such copying wasn't ever an infringement.
Doesnt matter how you define it. What you have to under stand is the personality trait spectrum of the chimp troupe.
Some chimps cant sleep at night if what comes out of their 6 inch chimp head is not acknowledged in some way by the entire troupe. These bastards then spend their whole life finding each other and reinforcing each others self importance calling the stories laws, ethics and all kinds of bullshit. It all doesnt matter cause once what comes out of the 6 inch head has been digitized it is now property of the rest of the universe.
None of our laws were created under the assumption that computers would do so much of our jobs and effect so much of our lives. From robotic automation to social media to now computer programming. I think it’s really a mistake to ask what the letter of the law currently means in the evolving context. Laws should serve us and need to be adapted.
I'm not the biggest fan of copyright law as currently written, but I wouldn't say that MS's desire to file off the serial numbers on every piece of public code for their own profit is a good impetus to rewrite the law.
The boundaries are not set in stone, and so the answer is the old theme of "it depend". To provide a slightly different situation which was discussed a few years ago, can you train an AI on pictures of human faces without getting permission? Human painters have created images of faces for a very long time, so is it any different in terms of law and/ethics if an AI do it?
Yes, a bit? It depend. Using such things for advertisement would likely cause anger if people start to recognize images of the training set the AI was trained on.
My opinion would be that if the training set for the face generator was made up of photos whose creators had asked you to credit them if you re-used their work, then, yes, the generator is ethically in the wrong if it's skipping that attribution. Regardless of copyright. (And I feel the same way about Copilot.)
> I, as a human being, have trained by reading code, much of which is covered by licenses that are somehow not compatible with code I'm writing. Am I violating licenses?
As someone who has taught students in ICT a quick rule of thumb was that I picked a piece of text that I suspected, wrapped it in doublequotes and put it into a search engine.
9/10 times - possibly more - of the times I had that feeling it was true. 17 year olds don't write like seasoned reporters most of the time.
Obviously there needs to be some independent tought in there as well, but for teenagers I put the line at not copying verbatim, and to cite sources.
As we've seen demonstrated again and again copilot breaks both my minimum standard rules for teenagers: it copies verbatim and it doesn't cite sources.
I say that is pretty bad.
If the system had actually learned the structure and applied what it had learned to recreate the same it would be a whole different story.
But in this case it is obvious that the AI isn't writing the code - at least not all the time, it is instead choosing what to copy - verbatim.
ML is a subset of AI, in any defintion that I've seen. And both are needlessly anthropomorphizing what are currently simple statistical or rule-based deduction engines.
GPT-3 is no more 'intelligent' in the human sense than it is 'learning' in the human sense.
Can you expand on this? Clearly the term exists. I have a degree in AI, do the concepts I learned at university not exist? What does you mean when you say AI does not exist?
Do you mean that the terms, algorithms, concepts, and applications found in the field labelled "Artificial Intelligence" should not be called as such?
I have a feeling you are simply playing a semantic game, though, in which case we are likely to talk past each other.
Edit: I suspect you may be conflating artificial general intelligence[0] with AI
> But in this case it is obvious that the AI isn't writing the code - at least not all the time, it is instead choosing what to copy - verbatim.
I still don't see any problem with that. If it's larger sections (e.g. entire NON-TRIVIAL function bodies), those can be filtered or correctly attributed after inference. So that's just a technicality.
Smaller snippets and trivial or mechanical implementations (generated code, API calls, API access patterns) aren't subject to any kind of protection anyway.
int main(int argc, char* argv[]) {
Lines like that hold no intellectual value and can be found in GPL'ed code. It can be argued that that's a verbatim reproduction, yet it's not a violation of any kind in any reasonable context.
Where do you draw the line and how would you be able to - automatically even! - decide what does and does not represent a significant verbatim reproduction?
>I still don't see any problem with that. If it's larger sections (e.g. entire NON-TRIVIAL function bodies), those can be filtered or correctly attributed after inference. So that's just a technicality.
Today copilot does what it does.
I've never heard Microsoft defend anyone running afoul of some of their licensing details with "they can fix it later, it is just a technicality".
I think this should go both ways? No?
> Smaller snippets and trivial or mechanical implementations (generated code, API calls, API access patterns) aren't subject to any kind of protection anyway.
int main(int argc, char* argv[]) {
> Lines like that hold no intellectual value and can be found in GPL'ed code. It can be argued that that's a verbatim reproduction, yet it's not a violation of any kind in any reasonable context.
Totally agree. Edit: otherwise we'd all be in serious trouble.
> Where do you draw the line and how would you be able to - automatically even! - decide what does and does not represent a significant verbatim reproduction?
I am not a lawyer but I guess many can agree that somewhere before copying functions verbatim, comments literally copied as well for good measure, somewhere before that point there is a line.
On the other hand: if there was significant evidence that the AI was doing creative work, not just (or partially just) copying then I think I would say it was OK even if it arrived at that knowledge by reading copyrighted works.
Edit: how could we know if it was doing creative work? First because it wouldn't be literally the same. Literal copying is liter copying regardless of if it is done using Xerox, paid writers, infinite monkeys om infinite typewriters, "AI" or actual strong AI.
After that it becomes a bit more fuzzy as more possibilities open up:
- for student works I look at how well adapted it is to the question at hand: a good answer from Stackoverflow, attributed properly and adapted to the coding style of the code base? Absolutely OK. Copying together a bunch of stuff from examples in the frameworks website? Fine. Reading through all the docs and look at how a number of high profile projects have done it in their open source solution, updating the README.md with info on why this solution was chosen? Now you are looking for a top grade in my class.
(of course IBM will probably not want you to work on their compiler though if you admit that you've studied OpenJDKs, or so I have heard.)
It's also not a commercially released product yet, but a technical preview, so uncovering and addressing issues like that is exactly what pre-release versions are for.
I'd say it succeeded greatly in sparking a discussion about these issues.
> ... will you defend it just because I claim it is a tech preview?
That's a straw man argument and you know it.
Code snippets are in no way shape or form comparable to entire software products and CoPilot neither installs anything nor is its intention to knowingly violate licences or copyright law.
Disingenuous straw manning like this doesn't help the discussion and only serves to distract from actual issues.
It is absolutely not in my opinion and that particular idea did not cross my mind at all so the idea that I knew it is patently double false.
But let me try to be constructive here and be even more precise:
Would it be OK if I launched a tech preview of my AI poem writer companion that would copy lines but also complete stanzas from famous poets, rock bands and singer-songwriters?
> Would it be OK if I launched a tech preview of my AI poem writer companion that would copy lines but also complete stanzas from famous poets, rock bands and singer-songwriters?
Yes it would be if it only happened ~0.1% of the time and if quoting verbatim wasn't the intended function of the system but merely a side-effect. In fact, that's what artists sometimes do deliberately.
It's what happens with other GANs as well and all that needs to happen is to educate users about the possibility of this. As long as you don't take ownership of the output produced by your AI (and neither do Microsoft), it's at the discretion of the user what they use the generated content for and in which context.
It has been demonstrated that training data can be extracted from any large NLP model [0] so this wouldn't come as a surprise either.
but those aren't only mathematics. There's the choice of variable names, the order in which things are called (maybe to optimize the performance on some CPU, we don't know), etc
Your original argument is based on the false premise that the amount of time or effort matters -- it doesn't. Not all human activity can or should be subject to copyright -- this the dangerous slippery slope of "intellectual property" -- and we are dangling by edge these days.
> I, as a human being, have trained by reading code, much of which is covered by licenses that are somehow not compatible with code I'm writing. Am I violating licenses?
There are many good answers from the legal side. I would also attack this side: the way human beings learn is entirely different from the way ML models are trained. We don't do gradient descent to find the slope of data points and find the most likely next bit of code.
We humans create rational models of the code and of the world, and use deduction from those models to create code. This is extremely visible in the way we can explain the reason behind our code, and in the way we are aware of the difference between copying code we've seen before vs writing new code. It's also visible in that we can be told rules and produce code that obeys those rules that doesn't resemble any code ever written before.
The difference is also easily quantifiable: humans learn to program after seeing vastly fewer code examples than Co-pilot needed, and we are much better at it.
One day, we will design an AI that does learn more similarly to how humans learn, and that day your question will be far more interesting. But we are far from such problems.
I'm not sure this is actually true. We can explain code, but the fact that we can explain code is not necessarily related to the way we actually end up writing it. Have you ever written a function "on autopilot"? Your brain has selected what you wanted it to do, and now you're just typing without thought? I don't think we're as dissimilar to this model as we'd like.
The feeling of being "on autopilot" when doing a task has to do with your, let's call it, supervisory process being otherwise occupied. It doesn't suggest that that the other mental processes which are responsible for figuring out the actions have changed their character or mode of operation.
"You" are just not paying attention to it in that moment.
The fact remains that, even on autopilot, in not writing code based on similarity with other code I've seen, in writing code to solve a task. In general, the code I'm writing is entirely novel - you could search all of the code ever written and you wouldn't find anything identical, or even similar much of the time. This puts not a brag - I work on fairly standard CRUD stuff most of the time - but just an observation about how human writing works, confirmed by code scanning tools such as Black Duck.
I don’t know how to approach this. As a human I can read all public code and learn from regardless the license and come up with new solutions. Machine can read everything too, but can't create new ideas or approach. How is copilot defined then? Should it be only smart system for general code snippets?
Well you can read public code all you like but you can't just take chunks of code and write them under different licenses like how copilot has been shown doing.
If you grab chunk of licensed code and put into private repo, what prevents you from doing that? How much of licensed code is scattered across private projects? I’m curious how these license violations are detected.
Copyright law "prevents" you from doing that. To be more specific copyright law specifies that you must comply with the license of the copyright holder in cases such as the one you have described.
> How much of licensed code is scattered across private projects?
Whether or not copyright violations regularly occur is not (directly) relevant to whether or not it is illegal. People download copyrighted movies without licenses all the time and it still isn't legal.
I mean if you text and drive while a police officer isn't around to see it you still broke the law. Just because piracy is huuuuge and largely unpunished doesn't mean that copyright doesn't have to be respected in a huge publicly visible trying to be above-board project.
Bit confused. If I have code on GitHub with most restrictive licence possible (no commercial reuse, no derived works) then how did Githubs legal get comfortable with this approach? What am I missing ?
But the repos are provided under licenced terms no which can vary depending on publishers choice? Put another way, is there a licence that would prohibit reuse in this manner ?
By using github you have acceded to their terms of use[1]:
> Short version: You own content you create, but you allow us certain rights to it, so that we can display and share the content you post. You still have control over your content, and responsibility for it, and the rights you grant us are limited to those we need to provide the service. We have the right to remove content or close Accounts if we need to.
I see a lot of people trying to compare its "machine learning" to human learning.
Let's use this thought experiment: Imagine that Github's Copilot was just a massive array of all the lines of code from every github project, with some (magical automated whatever) tagging and indexing on each function, and a search engine on top of that.
Now imagine that copilot simply finds the closest search result, and then when you press a button, it inserts the line from the array, and press it again and you get the next line, etc.
Now hopefully nobody here thinks such a system would fulfil either the spirit or the law of any half-restrictive license. Yet that is a perfectly valid implementation of Copilot's aim - and it sounds like it's not that far from what actually happens, maybe with a bit of variable name munging.
So my question is this: If you could build a line between the system I describe above and the system of human learning, where a human learns the patterns and can genuinely produce novel structures and patterns and even programming languages that it has never seen before.
At what point along that line would you say that Copilot is close enough to human to not be violating licenses that require attribution?
I don't think it matters where Copilot is on that line. A skilled human programmer at the far end of that line, fully capable of producing novel programs that they haven't seen before, would still be violating copyright if they reproduced a program they have seen before.
In training on publicly accessible repositories, GitHub did something anybody could have done. If they also used private repositories, though, I would see that as abusing their position.
Additionally, if they had trained on private repositories then they risk leaking code, and accidentally making it public. Even if that was within fair use it would still be a violation of the trust people put in them.
As I said in another thread, in my opinion there is no issue to have with whatever they did as training with whatever public data.
And in the end, the output in itself is not really an issue.
It is just a machine outputting random lines it encountered on internet.
The problem is from the user side:
Ok, you got random lines from random places. If you do nothing about it, then no issue.
But if you try to use, publish, sell the code, then you are in deep shit. But somehow it's your fault.
For GitHub, the problem is more to be sued by "customers" that assumed that the generated code was safe to use when it is not the case.
And, as a general comment, I think that this case is very illustrative about the misconceptions about AI and machine learning for the general public:
Here you can see that you don't really have an intelligent system that can learn and then create something new and innovative from scratch. But it is just a machine that copy code it already saw based on correlation with similarities in your current code.
As far as I know, there isn't a formal copyright-related US court ruling (yet anyway) of training ML/AIs on any media (except for copying the code of an ML). So everything is actually on thin ice, much like the infamous "GIFs [from snippets of shows etc.] are widely believed to be fair use", which in reality is still untested. Let's not forget other countries, with much stricter copyright rules (especially moral rights).
Suppose you had some kind of AI Deepfake program operating off a large database of copyrighted photos and you asked it to "make a picture of a handsome man on a horse" and the man's head was an exact duplicate of George Clooney's head from a specific magazine cover, would that be infringement? Would selling the services of an AI that took copyrighted photos of celebrities and edited them into porn movies be infringement?
I don't know the answers to those questions but I find it very weird that people think large blocks of typed text are less worthy of copyright protection than other forms of media.
That would potentially be an infringement of the copyright of the photographer but in any case it’s an infringement of the personality rights of George Clooney.
You aren’t allowed to sell someone’s likeness without their permission. You don’t need an AI for this if you create a portrait of Clooney and sell it or make any use that isn’t covered by fair use he can sue you.
Depending on the composition of the picture for example if Clooney is naked and say Putin is riding in the “bitch seat” of the saddle then you also are quite likely be open for a libel suit as well.
Satire does not usually fall under libel/defamation, though, right?
>For example, in Hustler Magazine v. Falwell (1988), Chief Justice William H. Rehnquist, writing for a unanimous court, stated that a parody depicting the Reverend Jerry Falwell as a drunken, incestuous son could not be defamation since it was an obvious parody, not intended as a statement of fact. To find otherwise, the Court said, was to endanger First Amendment protection for every artist, political cartoonist, and comedian who used satire to criticize public figures.
Depends on the legal system in question and the intent and usage.
The US system isn’t the only one on the planet you know, the UK still has political cartoonists despite a very different definition for what defamation is which the example above can fall under.
I am not surprised given who the owner of GitHub is. Now, let's assume for a while that a private repo is left marked as public by mistake and Copilot regurgitates it... Lawyers are going to have fun with that one.
Calling it “public” code feels like doublespeak. It’s most definitely NOT public domain code — it only happens to be hosted on GitHub and browsable (but not copyable) by people. “Source available for viewing” is very different from “public property” as the phrase is commonly understood: https://en.m.wikipedia.org/wiki/Public_property
The word they're actually referring to here is "source available", and trying to use "public" is just to confuse people into thinking they're referring to public domain only.
Movies are “public” too. That does not mean you are allowed to use them for any purpose. The term “Public” does not have specific legal consequences in copyright law outside of something being “public domain” as you say.
You are allowed to watch them. Many moves take ideas from other movies, which took ideas from myths and earlier stories. In fact, I find modern movies highly highly derivative.
If you post your code to the public, I wouldn't be shocked if people copy it verbatim without regard to license. I'm not suggesting that is a proper thing to do, just accepting that it can happen when I post code.
Not copyable by people, but we can go through the code, learn from it and then use that knowledge to improve our coding skills.
Isn't that what autopilot is doing here? The system is merely learning how to code, and then applying it's learnings on other programming problems. It's not like it's writing software to specifically compete with other programs.
If it's large sections, that can be fixed by either licence attribution or result filtering.
That's at best a technical issue. What way too many people claim, however, is that the machine isn't even allowed to look at GPL'ed code for some reason, while humans are.
I think result-filtering (based on license of search results) is gnarly enough, and likely computationally intensive, so as to break the whole feature. But it would be interesting to see if that can be crafted to fix the shortcomings of the ML model.
> Just like how people are allowed to read websites, but scraping is often disallowed.
Hosting code on Github explicitly allows this type of usage (scraping) according to their TOS so I have to ask again - why the sudden complains?
Are we still talking about a shortcoming of the ML model, which very occasionally spits out a few lines of copied code or should we include search engines into this, because they do the exact same thing by design?
robots.txt, for example, has a non-binding, purely advisory character as well and Common Crawl [0] (also used for training GPT-3) publishes a dataset that by definition contains GPL'ed code as well, no matter where it's hosted. So is that off-limits now, too?
Public and public domain are not the same thing. This code is public in the same way that Google indexes publicly available information on the internet.
ML novice question: is this atypical when training models? Wasn't GPT-3 trained on a lot of copyrighted data? My gut instinct, which is based on very low-information, is that it would be pretty hard to train models if you could only use open-licensed material.
You're basically seeing how some people would have had open source play out. You can look at and use the code but not to make money or in any other way that I personally disapprove of. This is a world where open source would have ended up being pretty much irrelevant.
Are we now also not seeing now why people would want to do that? A multi-billion dollar company using people work to make more profits without paying them.
I definitely understand why people pick a license that disallows use someone doesn't agree with. Imagine baking cookies for your friends, and one of them reselling them. The material effect is the same to you, you gave away your cookies, but sometimes you make/do something for a certain group of people and not for other to make a profit of your work.
People can do whatever they want with their work, including not sharing it at all.
But a great deal of the value that's come from open source generally has been that open source licenses haven't imposed the sort of usage-based restrictions (e.g. free for educational use only) that were fairly common in the PC world.
And, to your example, in the case of software the incremental copy that your friend sold cost you absolutely nothing. So it comes down to a purely emotional response to someone else making money off something you made.
>So it comes down to a purely emotional response to someone else making money off something you made.
Exactly, as I said, the material situation is the same. But we all are emotional beings, you would do certain things for your family you wouldn't for strangers. I don't think this case is any different.
I personally don't work for free for a company, but I do charity work for free. Working for a company in the time I work for a charity would "cost me absolutely nothing" if I already spend the time anyway, but everyone understands the difference.
You’re free to privately research with this data but commercializing other people’s work using ML is theft.
Edit: commercializing of the derived work is one explicit consideration used by US law in making a fair use determination. That said, even if it weren’t commercialized it may still be infringement and I believe it is.
Commercializing isn't really the issue, it's still copyright infringement even if you release it for free (i.e. piracy) -- it's unauthorized redistribution (i.e. copying).
Even if we accept that (which many wouldnt as most licenses say little about research), the research would never be very useful if you can never make a comparable dataset to use in the real world.
I get that the problem is commercializing, but the theories around copyright that are being deployed here would prevent even free, open-source NLP research from becoming a reality.
Right, but that sounds like the bigger issue here is that the model might spit out copyrighted material, not just that it scrapes it. The former seems like a technology problem that Microsoft can solve.
The issue is that not only might the model spit out copyrighted material verbatim (which it is) but that it might also spit out non-obvious derivative works that will get you in legal hot water years down the road.
Yes training data is very valuable. Producing quality training data is an industry in itself. GitHub is trying to get it for free, doesn’t work that way.
I am not a lawyer but I do believe GPT-3 as a commercial product trained using copyrighted data constitutes infringement. I also think GPT-2 does not because it is for research purposes, which made it fair use.
That’s safe but it’s probably not necessary to be protected from what GitHub, OpenAI, and Microsoft are doing. When these licenses were crafted there was no reasonable expectation that companies could use
ML applications as a loop hole in existing copyright licenses, so just because there is no explicit clause denying it doesn’t mean they are in the clear for using copyright-protected code that way. Licenses give permission, they don’t revoke it.
Copyright is broad, licenses are minimal. This must be the case otherwise they would not be very effective at protecting the work of creators. There is no explicit allowance for what GitHub is doing in most licenses so they do not have general permission to do so.
In my blog post, I talk about how training is fair use, but we don't know about distributing the output. These licenses, even if they don't work, are designed to poison the well by putting enough doubt into companies' minds that they would not want to use Copilot if it has been trained with my relicensed code.
Do the GitHub Terms of Service give them the necessary permissions for Copilot, independently of the license? (I honestly don't know the answer; this is a straight question.)
I don't know. Because I don't know is why I pulled all of my code (except for a permissively-licensed project that people actually depend on the GitHub link for) off of GitHub.
> The licenses you grant to us will end when you remove Your Content from our servers, unless other Users have forked it. [0]
I don't see how they can keep this clause, and then have a service that recites/redistributes code, based on a model that has already ingested said code.
> This license does not grant GitHub the right to sell Your Content. It also does not grant GitHub the right to otherwise distribute or use Your Content outside of our provision of the Service, except that as part of the right to archive Your Content, GitHub may permit our partners to store and archive Your Content in public repositories in connection with the GitHub Arctic Code Vault and GitHub Archive Program. [1]
Copilot is distributed verbatim code when it regurgitates, which seems a pretty clear violation of this clause. (If it wasn't regurgitating, they'd have caselaw for fair use. But... It is.)
I think to actually poison the well, we should add code to existing repos with dead code clearly labelled as "the way that things shouldn't be done" that are wrong in subtle ways. So every time we fix a security issue, we keep the version with the bug with some comments indicating what's wrong with it. Of course, this only works until the AI is trained to weigh the code based on how often the code is called.
The notion of intentionally polluting and over complicating your code base just to "poison the well" is bizarre. Talk about cutting off your nose to spite your face.
If you don't want others to use your code then the solution is very simple. Keep it on a secure private server and don't publicly release it.
While I’m not trying to lessen the implications of something like this, but didn’t we all agree to them being able to do this when we agreed to their TOS?
Yeah, but I don't think you're allowed to interrupt the circlejerk by pointing that out. Every piece of code pushed to GitHub comes with: an implied licence for GitHub and its users, which is an alternative to any explicit license in the code(!!!) and also a representation that you're authorized to grant such a license. Of course one imagines that in many cases uploaders are not actually authorized to grant such a license, such as if they're uploading something they themselves have received under GPL license, but IANAL.
Let's assume that is enforceable through the TOS (which I doubt), would that make hosting GPL'd code on Github a violation of the GPL? If programmer X releases GPL'd code on his website and programmer Y copies it to Github, then it could presumably be considered a bypass of the copyright.
Curious what the consensus is on how GH should have approached this to avoid such blowback.
Best case scenario, they explained in advance on the GH blog they're going to be doing some work on ML and coding, and they'd like people to opt into their profile being read via a flag setting/or put a file in the repo that gives permission like robots.txt? Second best case scenario, same as first but opt out vs opt in, and least ideal would be something like not doing the first two, however, when they announced it, explained in detail how the model was trained and what was used, why, and when- kinda thing?
Not really, consider for example repositories mirrored to Github.
It seems unclear who has the rights to grant this permission anyways (with free software licenses). Probably the copyright holder? Who that is might also be complicated.
Good point, I would have thought GH requires you to agree in some TOS that you have permission to put the code on GH (but I don't know)? If so, could that point be put aside? (I'm not a software engineer so sorry if that made no sense. Super curious about the whole codepilot thing from a business and community perspective)
This is the complicated bit: All open-source licenses grant you permission to redistribute the code (usually with stipulations like having to include the license), so you are almost always allowed to upload the code to Github.
What it doesn't mean however is that you're the copyright holder of that code, you're merely redistributing work that somebody else has ownership of.
So who gets to decide what Github is allowed to do with it?
I expect this will end up in courts and we won't get a definite answer before that.
If you'll entertain me on a hypothetical for a moment. Suppose then the copious amount of intelligent folks over at GH know this will eventually end up in the courts, and expected that from the start. Would you suggest they messaged/rolled it out any differently? Did they do exactly what they needed to do so that it did end up in the courts? Should they have done anything differently to not piss folks off so much? Sorry for the million questions, you seem to know/have thought a bit about this. Thanks! :)
In that hypothetical I wouldn’t think GitHub is responsible for determining if a repository is mirrored and what the implications of that are. They just need to look at what license is on the repo in GitHub.
They should have only used code from projects that included a license that allow for commercial use or made their model openly available and/or free to use
Code (co)created with Copilot has to follow all the licenses of the source (heh) code. This generally means at the very least automatically including in projects getting help from Copilot a copy of all the licenses involved, and attribution for all the people the code of which Copilot has been trained on.
(Not sure for the cases where there is no license and therefore normal copyright applies, but AFAIK this isn't the case for any code on Github, which automatically gets an open source licence ?
EDIT : Code in public repositories seems to be "forkable" on Github itself but not copyable (to elsewhere). That's some nasty walled garden stuff right there, I wonder how legal that ToS is ? I could see how this could make them to incentivize people to stop using other licenses on Github, to not have to deal with this license mess... EEE yet again ?)
So I guess then, the first thing they should have done, is trained it to understand licenses, and used that as a first principle for how they built the system?
Seems to be too much effort (is it even possible to link the source to the end result ?), and might not be admissible, so just include a database with all of the relevant licenses and authors ?
733 comments
[ 2.6 ms ] story [ 381 ms ] threadhttps://fossbytes.com/github-copilot-generating-functional-a...
Most of the comments are waxing about philosophical possibilities of copilot copying GPL.
Reality is clear in the case, it's copy pasting thousands of characters of GPL code with no modifications. Copyright violation clear as day
Also, given that the author of this tweet called me a "bootlicker" last year in response to a somewhat lengthy nuanced post about GitHub, I'm gonna go out on a limb and say that they're not all that interested in a meaningful conversation on this in the first place but are rather on a quest to "prove" GitHub is evil.
>oh my gods. they literally have no shame about this.
Then continues with
>it's official, obeying copyright is only for the plebs and proles, rich people and big companies can do whatever they want
and
> GitHub, and by extension @Microsoft , knows that copyright is essentially worthless for individuals and small community projects. THAT is why they're all buddy-buddy with free software types; they never intended to respect our rights in the first place
At any rate, it's not even clear to me if me publishing code written with copilot (or even with a random tool that will wget from github) puts the blame on the toolmaker or on me. This post, however, doesn't attempt to look at that but uses language that paints GH/MS as doing something illegal (and evil) that others wouldn't even get away with but not caring about it.
A non rich individual has basically zero chance of challenging GitHub on these blatant violations, and they know it.
> At any rate, it's not even clear to me if me publishing code written with copilot (or even with a random tool that will wget from github) puts the blame on the toolmaker or on me.
It really depends on the license, which GitHub apparently doesn't care about at all.
The legality lies on what the user does with the code.
I'm sure there's a "for i in range(0, n):" somewhere in a GPL repo, and yet having that in my code doesn't make it GPL.
If one of the three largest record labels uses their own catalog to train an AI, copyright seems less important to discuss. I suspect the discussion would be a bit different if a company scraped youtube and used that as a training set for AI music and successfully sold it.
Were those products sold to help people write commercial pop music faster? If not, I don't think your point is valid.
Forbidding the training of AI on public code would definitely be a step too far though.
Edit: I'd also like if they provide a tool for checking if your code matches copyrighted code too close so you can confirm if you are violating anything or not when you use copilot.
My simplistic view is that the following is legally equivalent:
input -> ai network -> output
input -> huffman coding -> output
So, whilst:
* compressing and decompressing a copyright work is permissible;
* output and weights are deterministic transformations of the inputs;
thus:
* not eligible for copyright (lacking creativity); and
* are derivative works of the inputs;
copyrighted input -> compiler -> copyrighted output
So portions of a derivative work are covered by the original copyright, and other portions may be under a distinct copyright as a derivative work, and several copyrights may apply to a work as a whole.
In the case of a Huffman transform, the transformed work does not meet the "creativity" requirements to be eligible for copyright, over that of the original works.
That may be true but I fail to see how any process that produces the same content that was input into it somehow strips the license. If the generated code is novel, then there is no copyright and it is just the output of the tool. If the code is a copy, but non-creative (example a trivial function) then it isn't covered by copyright in the source anyways, so the output is not protected by copyright either. However if the output is a copy and creative I don't think it matters how complicated your copying process was. What matters is that the code was copied and you need to obey copyright.
Again, I don't think that novel code generated from being trained on copyrighted code is the problem. I think it is just the verbatim (or minimally transformed) copying that is the issue.
We already have the same fuzzy line for writing. Am I forbidden from ever reading other author's books because I might accidentally "generate exact copies" of some of the sentences? Clearly not, that is how people learn a language. Does that mean I am allowed to copy the whole book? Also clearly not.
Where do you draw the line? Somewhere.
There's absolutely nothing different whether the creator is ML or a human.
Generally, if you train an ML network to generate an almost exact copy of a thousand lines, it's obviously not fair use. If it's five simple lines, it obviously is fair use. If it's somewhere in between, there are a lot of different factors that need to be weighed in a fair use decision, which you can easily look up.
But what if the system memorizes entire functions? What if a human does so? What if you change all the variable names? What if you rearrange the control flow a bit? What if you just change the spacing? What if two humans write the exact same code independently? Is every for loop with i from 0 to n a license violation?
I am not picking any side, but the problem is certainly much more nuanced then either side of the argument wants to paint it.
Copilot will replicate entire functions, including comments, from licensed code
I think it is important to point out that not all Copilot output is on the plagiarizing side of the spectrum. However it does on occasion produce plagiarized code. And most importantly there is no indication when this occurs.
In general using the idea is fine, whether it is AI or human written. I think the major concern here is when the code is copied verbatim, or near verbatim. (AKA the produced code is not "transformative" upon the original)
> But what if the system memorizes entire functions? What if a human does so?
In both of these cases I believe it would be a copyright concern. It is not strictly defined, and it depends on the complexity of the function. If you memorized (|a| a + 1) I doubt any court would call that copying a creative work. But if you memorized the quake fast inverse square root it is likely protected under copyright, even if you changed the variable names and formatting.
It seems clear to me that GitHub Copilot is capable of producing code that is copyrighted and needs to be used according to the copyright owner's license. Worse still, it doesn't appear of capable of knowing when it is doing that, and what the source is.
Asking seriously. It's really unclear to me where law and/or ethics put the boundaries. Also, I'd guess it's probably country dependent.
GitHub scanning billions of code files to build commercial software is different than you learning at human pace, even if they're both "learning" and in the end they both produce commercial software.
The human activity most like training an ML system is memorizing a text by reciting from memory, checking against the original, adjusting, and repeating until there are acceptably few mistakes.
And if a human did so for thousands of texts then publicly repeated those texts, they would be violating copyright too.
The main problem that has been the topic is a simpler one - about the produced work. If you exactly reproduce someone's existing code (doesn't matter if you copy by flipping bits one by one or which technology you use), isn't it a copyright violation?
I'm kind of imagining a Rube Goldberg machine that spells out the quake invsqrt function in the sand, now...
With programming, there's the further complication what constitutes a work. But quakes invsqrt certainly qualifies, just like that one function from the Oracle vs Google case.
sometimes? it's enough of an issue that companies explicitly avoid it by having two teams.
If the ML model essentially is just a very sophisticated search and helps you choose what to copy and helps you modify it to fit your code then it's 100% infringement. If it is actually writing code then maybe not.
Does the code even matter at all? If I start with a copy of some existing code, how much do I have to change it to no longer constitute a license violation? Can I ever reach this point or would the violation already be in the fact that I started with a copy no matter what happens later? Does intention matter? Can I unintentionally violate a license?
But I think we don't have to do all the work, I am pretty sure this has already been considered at length by philosophers and jurist.
That depends, if you end up writing copies of the code you've studied then yes. You are on thin ice. Plagarization is definitely something that you can do with computer code. There have been several high profile cases around this in arts. As far as I can see it usually ends up being a question about how much of the work is similar, how similar it is, and how unique what was similar is. And added wrinkle in programing is that some things can be done in only one way, or at least any reasonable programmer will do it in only one way. So for example a swap(var1, var2) function can usually only be done in one way, and therefor you would not get in trouble if your and someone else swap function are the same.
I've been following the discussion about Copilot, and one issue that comes up again and again is that people seem to think that since Copilot is new, the law will treat it, and the code it writes differently, than what it would you or a copy machine. I think that is naive, my impression is that courts care more about what you did, not how you did it, and if you think Copilot can be used to do an end run around the law. Prepare to be disappointed.
So if Copilot memorize code and spits out copies of that code, then it is at best skating on thin ice, or at worst doing a license violation. If the code it is copying is unique, then it definitely is heading into problematic territory. I'm fairly sure sure someone in legal at Github is very unhappy about the quake fast inverse square root function.
As for fronted/open source etc... sure, if you don't care about copyright and licensing, use it.
Well, there's also the xor way to be pedantic :)
But yeah, not too much wiggle room there.Most humans don't do so unintentionally though.
Some chimps cant sleep at night if what comes out of their 6 inch chimp head is not acknowledged in some way by the entire troupe. These bastards then spend their whole life finding each other and reinforcing each others self importance calling the stories laws, ethics and all kinds of bullshit. It all doesnt matter cause once what comes out of the 6 inch head has been digitized it is now property of the rest of the universe.
I'm not the biggest fan of copyright law as currently written, but I wouldn't say that MS's desire to file off the serial numbers on every piece of public code for their own profit is a good impetus to rewrite the law.
Yes, a bit? It depend. Using such things for advertisement would likely cause anger if people start to recognize images of the training set the AI was trained on.
As someone who has taught students in ICT a quick rule of thumb was that I picked a piece of text that I suspected, wrapped it in doublequotes and put it into a search engine.
9/10 times - possibly more - of the times I had that feeling it was true. 17 year olds don't write like seasoned reporters most of the time.
Obviously there needs to be some independent tought in there as well, but for teenagers I put the line at not copying verbatim, and to cite sources.
As we've seen demonstrated again and again copilot breaks both my minimum standard rules for teenagers: it copies verbatim and it doesn't cite sources.
I say that is pretty bad.
If the system had actually learned the structure and applied what it had learned to recreate the same it would be a whole different story.
But in this case it is obvious that the AI isn't writing the code - at least not all the time, it is instead choosing what to copy - verbatim.
GPT-3 is no more 'intelligent' in the human sense than it is 'learning' in the human sense.
Do you mean that the terms, algorithms, concepts, and applications found in the field labelled "Artificial Intelligence" should not be called as such?
I have a feeling you are simply playing a semantic game, though, in which case we are likely to talk past each other.
Edit: I suspect you may be conflating artificial general intelligence[0] with AI
[0]: https://en.wikipedia.org/wiki/Artificial_general_intelligenc...
I still don't see any problem with that. If it's larger sections (e.g. entire NON-TRIVIAL function bodies), those can be filtered or correctly attributed after inference. So that's just a technicality.
Smaller snippets and trivial or mechanical implementations (generated code, API calls, API access patterns) aren't subject to any kind of protection anyway.
Lines like that hold no intellectual value and can be found in GPL'ed code. It can be argued that that's a verbatim reproduction, yet it's not a violation of any kind in any reasonable context.Where do you draw the line and how would you be able to - automatically even! - decide what does and does not represent a significant verbatim reproduction?
Today copilot does what it does.
I've never heard Microsoft defend anyone running afoul of some of their licensing details with "they can fix it later, it is just a technicality".
I think this should go both ways? No?
> Smaller snippets and trivial or mechanical implementations (generated code, API calls, API access patterns) aren't subject to any kind of protection anyway.
> Lines like that hold no intellectual value and can be found in GPL'ed code. It can be argued that that's a verbatim reproduction, yet it's not a violation of any kind in any reasonable context.Totally agree. Edit: otherwise we'd all be in serious trouble.
> Where do you draw the line and how would you be able to - automatically even! - decide what does and does not represent a significant verbatim reproduction?
I am not a lawyer but I guess many can agree that somewhere before copying functions verbatim, comments literally copied as well for good measure, somewhere before that point there is a line.
On the other hand: if there was significant evidence that the AI was doing creative work, not just (or partially just) copying then I think I would say it was OK even if it arrived at that knowledge by reading copyrighted works.
Edit: how could we know if it was doing creative work? First because it wouldn't be literally the same. Literal copying is liter copying regardless of if it is done using Xerox, paid writers, infinite monkeys om infinite typewriters, "AI" or actual strong AI.
After that it becomes a bit more fuzzy as more possibilities open up:
- for student works I look at how well adapted it is to the question at hand: a good answer from Stackoverflow, attributed properly and adapted to the coding style of the code base? Absolutely OK. Copying together a bunch of stuff from examples in the frameworks website? Fine. Reading through all the docs and look at how a number of high profile projects have done it in their open source solution, updating the README.md with info on why this solution was chosen? Now you are looking for a top grade in my class.
(of course IBM will probably not want you to work on their compiler though if you admit that you've studied OpenJDKs, or so I have heard.)
It's also not a commercially released product yet, but a technical preview, so uncovering and addressing issues like that is exactly what pre-release versions are for.
I'd say it succeeded greatly in sparking a discussion about these issues.
... will you defend it just because I claim it is a tech preview?
That's a straw man argument and you know it.
Code snippets are in no way shape or form comparable to entire software products and CoPilot neither installs anything nor is its intention to knowingly violate licences or copyright law.
Disingenuous straw manning like this doesn't help the discussion and only serves to distract from actual issues.
It is absolutely not in my opinion and that particular idea did not cross my mind at all so the idea that I knew it is patently double false.
But let me try to be constructive here and be even more precise:
Would it be OK if I launched a tech preview of my AI poem writer companion that would copy lines but also complete stanzas from famous poets, rock bands and singer-songwriters?
Yes it would be if it only happened ~0.1% of the time and if quoting verbatim wasn't the intended function of the system but merely a side-effect. In fact, that's what artists sometimes do deliberately.
It's what happens with other GANs as well and all that needs to happen is to educate users about the possibility of this. As long as you don't take ownership of the output produced by your AI (and neither do Microsoft), it's at the discretion of the user what they use the generated content for and in which context.
It has been demonstrated that training data can be extracted from any large NLP model [0] so this wouldn't come as a surprise either.
[0] https://arxiv.org/abs/2012.07805
https://towardsdatascience.com/openai-gpt-leaking-your-data-...
Mathematics and physics equations are not copyrightable.
There are many good answers from the legal side. I would also attack this side: the way human beings learn is entirely different from the way ML models are trained. We don't do gradient descent to find the slope of data points and find the most likely next bit of code.
We humans create rational models of the code and of the world, and use deduction from those models to create code. This is extremely visible in the way we can explain the reason behind our code, and in the way we are aware of the difference between copying code we've seen before vs writing new code. It's also visible in that we can be told rules and produce code that obeys those rules that doesn't resemble any code ever written before.
The difference is also easily quantifiable: humans learn to program after seeing vastly fewer code examples than Co-pilot needed, and we are much better at it.
One day, we will design an AI that does learn more similarly to how humans learn, and that day your question will be far more interesting. But we are far from such problems.
"You" are just not paying attention to it in that moment.
> How much of licensed code is scattered across private projects?
Whether or not copyright violations regularly occur is not (directly) relevant to whether or not it is illegal. People download copyrighted movies without licenses all the time and it still isn't legal.
> Short version: You own content you create, but you allow us certain rights to it, so that we can display and share the content you post. You still have control over your content, and responsibility for it, and the rights you grant us are limited to those we need to provide the service. We have the right to remove content or close Accounts if we need to.
[1] https://docs.github.com/en/github/site-policy/github-terms-o...
As this boils down to legal arguments, are there any clauses (maybe disputed) in the ToS allowing github/MS usage of public repos for such purpose?
Would it even be legally possible to override a software license as a repo provider like "by using this service, you agree to..."?
Let's use this thought experiment: Imagine that Github's Copilot was just a massive array of all the lines of code from every github project, with some (magical automated whatever) tagging and indexing on each function, and a search engine on top of that.
Now imagine that copilot simply finds the closest search result, and then when you press a button, it inserts the line from the array, and press it again and you get the next line, etc.
Now hopefully nobody here thinks such a system would fulfil either the spirit or the law of any half-restrictive license. Yet that is a perfectly valid implementation of Copilot's aim - and it sounds like it's not that far from what actually happens, maybe with a bit of variable name munging.
So my question is this: If you could build a line between the system I describe above and the system of human learning, where a human learns the patterns and can genuinely produce novel structures and patterns and even programming languages that it has never seen before.
At what point along that line would you say that Copilot is close enough to human to not be violating licenses that require attribution?
And in the end, the output in itself is not really an issue. It is just a machine outputting random lines it encountered on internet.
The problem is from the user side: Ok, you got random lines from random places. If you do nothing about it, then no issue. But if you try to use, publish, sell the code, then you are in deep shit. But somehow it's your fault.
For GitHub, the problem is more to be sued by "customers" that assumed that the generated code was safe to use when it is not the case.
And, as a general comment, I think that this case is very illustrative about the misconceptions about AI and machine learning for the general public:
Here you can see that you don't really have an intelligent system that can learn and then create something new and innovative from scratch. But it is just a machine that copy code it already saw based on correlation with similarities in your current code.
You aren’t allowed to sell someone’s likeness without their permission. You don’t need an AI for this if you create a portrait of Clooney and sell it or make any use that isn’t covered by fair use he can sue you.
Depending on the composition of the picture for example if Clooney is naked and say Putin is riding in the “bitch seat” of the saddle then you also are quite likely be open for a libel suit as well.
>For example, in Hustler Magazine v. Falwell (1988), Chief Justice William H. Rehnquist, writing for a unanimous court, stated that a parody depicting the Reverend Jerry Falwell as a drunken, incestuous son could not be defamation since it was an obvious parody, not intended as a statement of fact. To find otherwise, the Court said, was to endanger First Amendment protection for every artist, political cartoonist, and comedian who used satire to criticize public figures.
https://www.mtsu.edu/first-amendment/article/1015/satire
The US system isn’t the only one on the planet you know, the UK still has political cartoonists despite a very different definition for what defamation is which the example above can fall under.
The above thread is a dupe of this discussion but with interesting discussions already in place before being marked as a dupe.
https://www.theverge.com/2018/2/8/16992626/apple-github-dmca...
That's some nasty walled garden terms... I wonder how much these kinds of ToS are actually legal ?
So would you say that it's publicly visible?
Isn't that what autopilot is doing here? The system is merely learning how to code, and then applying it's learnings on other programming problems. It's not like it's writing software to specifically compete with other programs.
That's at best a technical issue. What way too many people claim, however, is that the machine isn't even allowed to look at GPL'ed code for some reason, while humans are.
I'd like to learn the reasoning behind that.
Why would those be the same thing? It's a matter of scale. Just like how people are allowed to read websites, but scraping is often disallowed.
Hosting code on Github explicitly allows this type of usage (scraping) according to their TOS so I have to ask again - why the sudden complains?
Are we still talking about a shortcoming of the ML model, which very occasionally spits out a few lines of copied code or should we include search engines into this, because they do the exact same thing by design?
robots.txt, for example, has a non-binding, purely advisory character as well and Common Crawl [0] (also used for training GPT-3) publishes a dataset that by definition contains GPL'ed code as well, no matter where it's hosted. So is that off-limits now, too?
[0] http://commoncrawl.org
For instance, a parrot doesn't learn to speak, it learns to imitate speech.
I definitely understand why people pick a license that disallows use someone doesn't agree with. Imagine baking cookies for your friends, and one of them reselling them. The material effect is the same to you, you gave away your cookies, but sometimes you make/do something for a certain group of people and not for other to make a profit of your work.
But a great deal of the value that's come from open source generally has been that open source licenses haven't imposed the sort of usage-based restrictions (e.g. free for educational use only) that were fairly common in the PC world.
And, to your example, in the case of software the incremental copy that your friend sold cost you absolutely nothing. So it comes down to a purely emotional response to someone else making money off something you made.
Exactly, as I said, the material situation is the same. But we all are emotional beings, you would do certain things for your family you wouldn't for strangers. I don't think this case is any different.
I personally don't work for free for a company, but I do charity work for free. Working for a company in the time I work for a charity would "cost me absolutely nothing" if I already spend the time anyway, but everyone understands the difference.
Edit: commercializing of the derived work is one explicit consideration used by US law in making a fair use determination. That said, even if it weren’t commercialized it may still be infringement and I believe it is.
We already have examples of copilot blatantly plagiarizing code
[1]: https://gavinhoward.com/2021/07/poisoning-github-copilot-and...
[2]: https://yzena.com/yzena-network-license/
Edit: done. They are under the CC-BY-ND license now.
Copyright is broad, licenses are minimal. This must be the case otherwise they would not be very effective at protecting the work of creators. There is no explicit allowance for what GitHub is doing in most licenses so they do not have general permission to do so.
What my licenses are supposed to do is sow even more doubt in companies' minds about models trained on my code.
I don't see how they can keep this clause, and then have a service that recites/redistributes code, based on a model that has already ingested said code.
> This license does not grant GitHub the right to sell Your Content. It also does not grant GitHub the right to otherwise distribute or use Your Content outside of our provision of the Service, except that as part of the right to archive Your Content, GitHub may permit our partners to store and archive Your Content in public repositories in connection with the GitHub Arctic Code Vault and GitHub Archive Program. [1]
Copilot is distributed verbatim code when it regurgitates, which seems a pretty clear violation of this clause. (If it wasn't regurgitating, they'd have caselaw for fair use. But... It is.)
[0] https://docs.github.com/en/github/site-policy/github-terms-o...
[1] https://docs.github.com/en/github/site-policy/github-terms-o...
If you don't want others to use your code then the solution is very simple. Keep it on a secure private server and don't publicly release it.
Best case scenario, they explained in advance on the GH blog they're going to be doing some work on ML and coding, and they'd like people to opt into their profile being read via a flag setting/or put a file in the repo that gives permission like robots.txt? Second best case scenario, same as first but opt out vs opt in, and least ideal would be something like not doing the first two, however, when they announced it, explained in detail how the model was trained and what was used, why, and when- kinda thing?
Is that generally about right, or..?
Not really, consider for example repositories mirrored to Github.
It seems unclear who has the rights to grant this permission anyways (with free software licenses). Probably the copyright holder? Who that is might also be complicated.
This is the complicated bit: All open-source licenses grant you permission to redistribute the code (usually with stipulations like having to include the license), so you are almost always allowed to upload the code to Github.
What it doesn't mean however is that you're the copyright holder of that code, you're merely redistributing work that somebody else has ownership of.
So who gets to decide what Github is allowed to do with it?
I expect this will end up in courts and we won't get a definite answer before that.
(Not sure for the cases where there is no license and therefore normal copyright applies, but AFAIK this isn't the case for any code on Github, which automatically gets an open source licence ?
EDIT : Code in public repositories seems to be "forkable" on Github itself but not copyable (to elsewhere). That's some nasty walled garden stuff right there, I wonder how legal that ToS is ? I could see how this could make them to incentivize people to stop using other licenses on Github, to not have to deal with this license mess... EEE yet again ?)
> Version 3, 29 June 2007
> Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.