The copyright holders care, historically speaking.
I wouldn't be surprised if lawyers/courts/lawmakers determine that current generative AI are on the "infringing" rather than the "inventive" side of things.
I think there is potential for this to change as AI gets better:
> AI are on the "infringing" rather than the "inventive" side of things
Does it really matter? Once you embed copyrighted works into your learning dataset, any model you ship and any "creation" of that model is by definition a derived work, must have a license from the original authors and must obey the terms of that license. The extent of derivation is immaterial.
The AI crowd is on a hard collision course with an army of gavels.
The theory used here though is that fair use permits transformative use. Normally copilot output should be sufficiently transformative. This particular situation appears to be a sort of bug (overfit).
Note that AI models already work somewhat similarly to how humans work (becoming bug-for-bug compatible at times even :-P ). We may need laws to be amended in the opposite direction even, else it might become illegal for humans to learn too.
I think any legal theory that must equate people with machines to prove its point is dead in any real court. Laws are made by people for people, to protect people's interests, so the analogy is just about as effective as requiring a human to work 16 hours because a horse can, and both operate on similar principles.
Of course everything a human learns and produces is a derivative of real world input, some of it copyrighted. But people agreed that this transformation is a form of fair use, as long as the derived work is sufficiently creative - where the key implicit assumption is that creativity is a human ability that warrants protection. Both the creator and the learner enjoy protection because they are human.
In the AI case, the output of a program will certainly not receive protection by default - it will be protected only as a consequence of its human creator or user rights. It doesn't really matter how transformative and analogous to the human mind the program is, the output only deserves protection solely for its unique human created parts - the internal working and the extent of the craft embedded in a GPT3 text prompt. The first is unrelated directly to the work produced, and the second is laughable vs the artworks embedded in the model.
If in the future AI advances to the point where it can be granted natural rights, this could change, but we are far far from that point.
I think "natural rights" is an independent question, and AI passing such a test is likely to be independent from "does copyright still help people get rich from creative labour now that AI can do $thing at $quality?"
Animals have (some, limited) natural rights, but can't hold copyright. Corporations don't have "natural" rights but can hold copyright.
Copyright holders care about a lot of things, doesn’t mean they are legally defensible.
If you have code under a restrictive license but we acquire it and use it privately for our own needs in trade secret processes how would you even know?
Appropriately the same way they knew about this exact thing, even with software, before every business was connected to the internet: the BSA, for example, which I understand performs audits.
And if that isn't good enough, I'm sure the copyright holders can lobby for whatever to make it easier to find, and they'll only be thwarted in this if the governments are convinced that the interests of the lobbyists are no longer aligned with the government's interests.
Theoretically this could be addressed by looking for the earliest occurence of said code in github and check its license. Sure, there are some edge cases where original copyrighted code has been removed and only unlicensed repo remains but it would be better than nothing
They could create two different AI. One that writes code based on code that supposedly has an allowing license. And one trained on private code or code with a restrictive license that takes code as input, and tells you if it breaks the license.
What are the chances that the code in question was ingested without the license being available in the first place?
What I mean here:
1. Person 1 writes Library 1 with License 1, and posts it to GitHub under Person 1's account.
2. Person 2 steals code from Person 1, or parts of it, without carrying over any of the original license information. This code is then posted to GitHub under Person 2's account, without any links to the original repository.
3. Copilot is trained on data from Person 2's repository and is able to reproduce it despite the original code being under license.
Githuh automatically gets a license to redistribute in code form when you upload a public project. Though you may not necessarily have the rights to give if it is a third party's project.
But if you are a lazy, stealing dev you know what you are doing. While if you were using CoPilot you wouldn't even be aware that you did something wrong.
On the contrary. If person 2 removes the licensing information lazy dev can't know that they're doing anything wrong, in fact it could easily have an OSS license that misleads lazy dev because GitHub allows you to select OSS licenses when you create a repo, so there's sure to be plenty of copy-pasted code under the wrong license.
Getting the Tim Davis result required careful prompting, and doesn't resemble real world usage. If you get the Tim Davis result, you very well know what you were trying to do.
I think for cases like this it should be copilots job to have to deal with the fact that things like this exists. And if there isn't a way to do it without risk of laundering copyrighted code, then it just shouldn't be a service. Lots of grey zone illegal things you could build is 'insanely valuable' but would be sued into non existence if created by a smaller actor.
Absolutely, but in my experience it then tends to verbatim, as context allows.
If this is a lightly edited copy, chances are pretty good there’s hundreds of equally lightly edited copies sitting around on GitHub. It shouldn’t be possible to overfit the model to this degree from a single example.
You've just described why tracking provenance is important to avoid copyright infringement. It doesn't matter where you got it from, if it's infringing it's infringing. You can sue the infringing middleman, but that doesn't mean your transitive use isn't infringing.
Microsoft should train Copilot on their own code. Theoretically they know where all that code came from and they haven't got a lot of copyright problems internally that would be revealed by Copilot. If they won't do that, that should factor into what we think of their arguments about what Copilot means for training corpus authors.
Even if this were the situation, and the owner of the 2nd repository were the one at fault, CoPilot can't point to the specific repository it "learned" the code from to absolve itself. If a human said, of sufficiently complex and virtually identical code, that they had made it independently, they'd be laughed out of a courtroom. In situations like this, the provenance of a generated idea (explainability) is needed to preserve trust.
Sure, and I agree that this can be an honest mistake. But distributing the code through copilot might still be copyright infringement. If copilot indeed infringes on copyright on some cases, then there must be a way to make copilot complying and stop distributing the copyrighted code in question.
Normally, if person 2 steals your code and hosts it on Github while infringing the original license, person 1 can send a DMCA notice to Github to take the code down. A similar process could be involved for copilot too.
If copilot would be a DMCA safe harbor, then they would need to comply would DMCA notices and stop distributing the offending code in a timely manner. It might be implemented by elaborate filters (which are probably not a 100% accurate), or batching up DMCA notices, and retraining their model regularly with offending repos/code excluded.
Of course, Microsoft drag their feet and say that copilot never infringes on copyright. They don't want to do any of this.
"In computer programs, concerns for efficiency may limit the possible ways to achieve a particular function, making a particular expression necessary to achieving the idea. In this case, the expression is not protected by copyright."
This allows for verbatim copies if they are utilitarian in nature!
As for why we should allow verbatim copies of utilitarian features...
First, let's preface this with the substantial similarity of the structure, sequence and organization as established in Whelan v. Jaslow which amongst other things says that you cannot merely change the variable names if the expressive structure of the code remains the same.
Now let's imagine 10,000 software developers who all implement Dijkstra's algorithm in C and then run it through clang-format. Aside from variable names, isn't it safe to assume that many of the implementations are going to be exactly the same?
Now, this doesn’t mean that GitHub is not in violation of other copyright claims, such as clearly expressive parts like comments and more!
> Not so, says Alex Graveley, principal engineer at GitHub and the inventor of Copilot, who responded that “the code in question is different from the example given. Similar, but different.”
Oh ok so if I come upon a piece of copyrighted microsoft code all I have to do is rename the variables and modify some whitespace and it's no longer owned by them. Lol.
I actually would have loved if there was a real greek legal case for this, like we could just say "Lycurgus vs. Theseus" and it actually meant something.
That's not what Google v Oracle was about. That case was about whether the API of a piece of code (in this case, the API of most of the Java standard library) is copyrightable as a whole, without the implementation; and subsequently, even if they are copyrightable, whether a new implementation of that API would be fair use.
In the end the conclusion from the SC was that Google's use was fair use regardless of the question of copyrightability, which they didn't decide on (the previous court, at Oracle's appeal, had found that APIs are in fact copyrightable and that Google's use did not fall under fair use of that copyrighted API as they weren't 100% compatible with other JVMs).
Is there a more relevant case you can cite? I’m fully aware of the differences, but its still relevant case law on how the US legal system would approach a case on this issue.
That depends only on who has the most expensive lawyers.
One thing in life is never to get into a position where you need to defend yourself against this scenario which is why I would never even consider using the tool.
I wonder what the discussions with the lawyers are like at companies who want to use it. Are they all advising to avoid it and let someone else be the test case?
Well actually on that we asked. They advised us not to use it now or in the future regardless of any outcome because at any point of litigation it muddies the water on what is clean-room innovation and what is not. While a change might be defined by copilot, it is not possible or practical to record any causal data or attribution with the change. It's arguably better to have any plagiarism issues directly attributed to a corporeal engineer where the audit trail can be made and scope identified.
The outcome is that introducing the tool actually tangibly increases business risk in a changing climate.
I agree it's tricky. I think it should be put to the same standards as we would if e.g. some game source code was leaked onto github and some guy decided to just rename all the variables changed the whitespace. If that guy did it most people and the courts would probably agree that he can't just sell that modified piece of code as 'halo leaked edition'. But currently if copilot performs the same action it seems the authors are arguing he should.
I believe that's a bit of a strawman comparison. Not taking any sides, but in your example, the resulting system would be the same - artwork aside - you would end up with the same set of algorithms put together to create the exact same game.
Copilot, as far as I know, tend to be used to generate snippets and small algorithms that, by themselves, are not a full system/product/game.
There still may be some merit to your argument, but I believe the opposite side should be a bit steelman'ed beforehand.
I did not argue against that, I was talking about the argument. I don't think it's a straight comparison or even one that holds water. I don't think the parent comment mentioned licenses at all. I clearly mentioned that you can make an argument claiming that it's not ok to copy a snippet - I just don't think the argument to absurdity I replied to, in this case, is the best or most appropriate one.
For some reason, you keep presenting arguments as if I have taken any sides.
I don't agree with arguments even if I would agree with the end result.
I disagree that comparing Copilot with Pirate Bay is a good argument to make your case (maybe Dall-e is a closer comparison if resulting artwork could contain licensed artwork from the training set). You'd probably have other fronts to use and present a stronger argument.
And let me remind you that I have not argumented on behalf of any side, so I do not think this thread requires arguments against arguments I have never brought forward (it feels a bit more emotional than constructive).
so if your work is transformative, it can be exempt as fair use. But i'm not sure what degree counts as transformative - i do think that training an AI model with millions of repos worth of code is transformative.
The legality doesn't have to be based solely on the end result; the process used to create the code can make a difference. If you literally copied the code and then changed things, that's potentially going to affect whether it's allowed even if none of the original code is left over. (Of course, proving that the code was copied is another matter, and IANAL and all that)
This feels like the right answer to me. One of the things that is done is clean-room design (https://en.wikipedia.org/wiki/Clean_room_design). You don't want to take code and then just start renaming variables.
For example, when Google reimplemented Java for Android, they didn't copy the OpenJDK code. They just wrote their own code that fulfilled what the methods did. If they'd taken the OpenJDK code and just renamed a variable or two in each method, I think Oracle would have had a very strong case.
With Copilot, if it's generating code that is a near-identical copy, that's kinda just copy-paste with extra steps. Let's say that I create a dumb copilot. This will just look at a method signature and fill out the body if it finds an exact match in its database - there's no AI/ML involved. I "train" it on the OpenJDK source - meaning I create a hash of method signature -> method body. I then start writing Java method signatures and it fills in the bodies with the body it "learned" would be good for that method signature.
I think one of the things to always think about is "if the AI were dumber, would it just be copy-pasting?" If the stable diffusion were just taking a copyrighted photo and applying an instagram filter to it, that would be copyright infringement. If I ask for "Robert Downey Jr in a suit" and it gives me back a Getty Images photo run through a filter, that doesn't seem ok to use. If it is truly generating something new and unique from its training dataset, that does seem ok (to me, IANAL).
The problem is that Github Copilot seems to be generating things that are almost identical. In some ways, it seems like they should modify Copilot to catch things that are substantially the same as their training dataset, but that might be difficult.
But I think the process used to create it makes a difference. Copyright doesn't protect against independent creation. If two people independently write the same code, that's ok. However, Copilot isn't independently creating code if it's recreating code that's in its training set.
> For example, when Google reimplemented Java for Android, they didn't copy the OpenJDK code. They just wrote their own code that fulfilled what the methods did. If they'd taken the OpenJDK code and just renamed a variable or two in each method, I think Oracle would have had a very strong case.
One of the things I remember reading about that trial was that one of the Oracle lawyers was adamant that a method called "rangeCheck" had been copied and that it was proof that Google was able to get Android out into the market faster than if they hadn't copied code. The method was used inside the standard library (but not exported as part of the API) to check if the index of an array was out of bounds and throw the proper exception (so basically, if index < 0 throw one thing, if index >= length throw a different one, otherwise do nothing). The judge who heard the original case (and the second one at that level after the appeals court sent it back down to judge whether it was fair-use) had programmed in other languages in the past and decided to learn Java before the trial, so he was able to tell that this was such a trivial bit of code that it wasn't at all surprising that the code was the same and that even if it were copied, it would not expedite Android's appearance in the market in any noticeable way, leading to this amazing quote:
"I have done, and still do, a significant amount of programming in other languages. I've written blocks of code like rangeCheck a hundred times before. I could do it, you could do it. The idea that someone would copy that when they could do it themselves just as fast, it was an accident. There's no way you could say that was speeding them along to the marketplace. You're one of the best lawyers in America --how could you even make that kind of argument?"
Obviously most judges won't have this level of technical experience (I remember reading about a different case where a judge upheld an objection to the prosecution zooming into a photo on an iPad due to worrying that it might manipulate the image inaccurately, but then didn't have a problem with them wheeling in a giant TV instead of displaying the imaged scaled up on that), but I think the law has a capacity for nuance about these sort of technical issues that might surprise some programmers, especially with regards to the fact that intent and context can sometimes matter as much or even more than the end of result of something.
I mean this is how humans learn. You look at code and over time you will spit out some section and in some cases large sections of things you have seen.
I guess when a computer does it people get creeped out. Or the computer is not smart enough to change the variables names. :)
If a human """learns""" the code and ends up writing a 1:1 copy of a large function, comments and all, without respecting the license, they are breaking the law. People need to stop twisting this into a different issue than it is, copying is not the same as learning.
Even if it does violate copyright, I think there is a strong argument for adjusting copyright law to allow training ML algorithms with any data, no matter the source.
In cases like this, the benefits of the technology are so huge, and the downsides to the original code author so tiny. Was he actually going to license that code to someone who said 'nah, I'll recreate it with copilot instead'?
Very few people successfully license anything less than 100,000 lines of code anyway.
It doesn’t honestly matter. If the big tech companies want to call off the IP war, thats fine, but until such a time they should be forced to play by the same stupid rules us mortals have to comply with.
There are many good arguments for reorganising copyright law. But giving tech companies an easier time stealing others work to make money is not one of them.
I should have some say in whether a company with a 1.76 trillion dollar market cap can further enrich itself with my work without compensation or attribution. If copilot was about the greater good, the entire product would be free at all tiers.
> In cases like this, the benefits of the technology are so huge, and the downsides to the original code author so tiny.
Benefits to whom? I don't recall Microsoft making this technology free for OSS development.
Suppose you're right and 5 years from now everyone is using co-pilot. To remain competitive with proprietary software, OSS developers will have to use it also but they will still be paying Microsoft $10/month for the privilege. Meanwhile none of them were compensated for making this possible in the first place.
It's kinda weird how seemingly the same people who usually argue that software patents/copyrighted algorithm implementations are bullshit, now suddenly get all defensive about it.
I don’t think that’s it; I think its mostly the lack of credit, and supposed claims of Copilot “generating” code, that makes it look very bad when its just basically copy/pasting someone else’s code without credit.
I bet the same people would be fine if this code was included verbatim with appropriate attribution and licenses. But that’s not the case.
The dev is defending (his) copyleft, not patents. So let me stick to discussing the former, not the latter, in the following post:
His opinion, as well as the current state of law: His code could and shall be used pretty freely, but a comment referring to the original license/author is needed.
The context:
Having an option to "leave out copyrighted code", that does not do what the option suggests, is a flaw, both in a functional and secondly with law-as-is, in a legal way.
Wouldn't it be nice if people knew the distinction? Copyright is for useless things like music and poetry and does not cover utilitarian features. Patents are for utilitarian inventions.
The problem is that code is text-based and obviously some kind of writing while mostly being a utilitarian invention. The courts of course recognize this distinction (because unlike the average software developer, lawyers and judges have studied the law) so they have come up with a number of ways to filter out what is and isn't covered by copyright with regards to software.
The deal with patents is that you make the way your invention works public knowledge. You document the principle and in exchange you get a limited-time monopoly on its implementation. An alternative for this is a trade secret. As long as you guard the secret, you can remain the only one profiting off it. Of course, some things are impractical to keep secret. It's easier to keep a method of making a fizzy drink under wraps than how the gears are laid out in the gadget you sell.
You also can't really make the contents of a book a secret. Anyone can just look at their copy, arrange words in the same order as you did and sell your book. It also makes no sense to patent the words. The contents are already inherently public knowledge to a certain extent and now people could just buy the book from a patent office. And the clerks don't like filing novel-length applications. Music is not quite as easy to make a 1-to-1 copy of, especially before wide adoption of sound recording technology, but a lot of people can carry a tune well enough to plagiarize one. And sometimes you get a child prodigy Mozart illegally transcribing Miserere.
Since it has been deemed desirable [if not unanimously] that writers and artists also have a period of monopoly rights over their work, copyright needs to work differently from patents.
Software has interesting properties. Unlike a book, you can distribute a program but keep its "recipe" a secret. We'll disregard people who are capable of working with compiled binaries; consider them modern-day transcribers of Miserere. Proprietary code is typically guarded just as any trade secret would be. Perhaps software should have been covered by patents instead of copyright from the beginning. After the patent expires, the algorithm would be unencumbered and public knowledge.
But that's not the world we live in. Software is considered to be like a book, not like a pocket watch. You could mail me a printout of the entire Windows 11 source and there's hardly anything I could ever legally do with it. I could change it for my own amusement I guess, like I can take a red pen and change all the names in my copy of Postmodernism for beginners.
Are these the same people? On another note, I wonder how many people who find/found the practices of Microsoft questionable give it a pass when it benefits them.
That's a bad faith take. People that think copyright is bullshit don't want a world were copyright restricts everyone except for companies that can break it at scale.
You have no right to say what I want. I rather see someone (including companies) break it than no-one. I want copyright to be abolished and the only way to get there is to actively work against it.
You aren’t working against it by letting the biggest companies in the world be exempt from the laws, you are just turning copyright into a moat for those companies.
Free Software can't exist without copyright. Free Software is all about forcing people who re-sell your code to make their code available to their customers, and copyright is the legal mechanism by which that is done.
Open Source software can exist in a world without copyright; that's basically what permissive licenses are. Proprietary software can exist in a world without copyright; just don't release the source code, only distribute build artifacts. But free software is dead without copyright.
Free Software vs Open Source is not about copyleft vs permissive. The GPL is both a Free and an Open Source license. The MIT license also counts as both Free and Open Source.
Most permissive licenses — and most popular permissive licenses — include a copyright statement and conditions which would not be enforceable without copyright. They usually require redistribution of the original copyright notice and license text to be distributed along with copies or derivatives of the work.
> copyright is the legal mechanism by which that is done.
That doesn't mean there can't be other legal mechanisms that would also accomplish software freedom.
Closed-source software should just be illegal. Then you don't need copyright to ensure freedom. With copyright gone, you are now guaranteed free to reuse any code. The law should not prohibit copying, it should only require attribution (i.e., prohibit plagiarism).
Not necessarily. I care about free software for practical reasons, not ideological ones. (RMS might say I don't care about free software, but rather "open source").
Speaking about this, there is something I don't understand about AI-produced work : given how you need to train AI on an existing set of existing code (or artworks, or novels, or whatever), I don't even understand how it would be possible to patent/copyright the output as it is, to some remote degree, derivative by nature ? Humans don't need AIs to produce code, but the opposite is not true.
Humans also read code, though. I don’t think we want a world where programmers are required never to read someone else’s code, or otherwise be barred from the profession.
For a prominent example, WINE goes to extreme ends to ensure their code isn't derived from any prior direct knowledge of Microsoft code. Replicating functions of released binaries with original code is fair game, but reverse engineering or copying Microsoft code is a hard no-go.
As far as AI is concerned in all this, it's probably even easier to distinguish the unacceptable. Whereas humans can argue for plausible deniability, we clearly know what data an AI is fed to generate subsequent output. So unless an AI is certified to never have eaten licensed materials, literally everything it produces will be license infringements.
Feels fallacious ? Most good developers I personally know, when doing code, tend to think about the problem at hand, establish the logic of how they want to solve it, and then implement the solution. They rarely try to do this by doing pattern-hunting & merge on a mountain of code from similar projects.
The training data doesn’t exist at runtime, and if the developers are competent then it only learned a bit or two from each input snippet. So, though even though it’s certainly a highly capable compression algorithm, verbatim copies shouldn’t be… possible.
My best guess for this bug is that a lot of already plagiarised the code. AI has a habit of holding up a mirror to humanity. Sometimes we don’t like what we see.
I hate this comparison because it implies that humans are somehow legally the equals of an AI algorithm. I don't think that's the case at all. For example, watching a movie or listening to a song has never been considered copyright infringement even thought on some level you're creating a copy of the copyrighted work in your head.
Nobody would complain about an AI that does that, either. The problem isn't that the AI read some code and learnt from it. The problem is that it spits it back out, but without attribution. It's like listening to a song and then reproducing and publishing a strikingly similar version of it, but claiming that you wrote it on your own.
You can copyright derivative, transformative work though?
I don't think current legal frameworks are equipped to handle these types of generative works. There will need to be either new laws, or at least some legal precedence established. For example, it would make total sense for stuff posted publicly to optionally have a "not to be used to train models" license. But models are being trained on public data that pre-dates anyone thinking that is something that they should worry about.
I am a copyright abolitionist and a Copilot critic, and this worldview is not dissonant. An ideal world would not have copyright and would require all software to be free software, but we live in a world where copyright exists. FOSS projects throwing up their hands and saying "forget the licenses" is counter-productive because the commercial world will not throw up their hands and say "forget copyright, do whatever you want with our code". But, at the same time, they will gladly consume FOSS work into their products. The war on copyright has not yet been won, so the weapons cannot be set aside.
Addressing this exact premise is the purpose of copyleft licenses like the GPL. I would expect GitHub of all companies to understand this, and it's a spit in the face to disregard it, a spit in the face of the entire FOSS community to which they owe their success.
They aren't the same people. If I post my code somewhere online - that means I had already decided to share my code with the public and I don't give a crap who, how and where uses it and whether they claim ownership or claim to be Napoleon.
I don't think I've seen anyone bring up patents. Those are a different matter altogether. "Copyrighted algorigthm implementations" is a little trickier, since any program code is essentially an "algorithm implementation" so there's a lot of potential nuance where to draw the line on where (if anywhere) a mere algorithm ends and a work with claimable copyright begins, in a moral sense.
Most software licenses are not full carte-blanche do-whatever copyright waivers. Sure, it would be hypocritical to get up in arms about copilot emitting CC0/WTFPL/Unlicense code, but comparatively little software is released under such licenses.
The GPL (in all its versions) is almost as notable for the specific conditions placed on the freedoms it offers as it is for those freedoms themselves. One possible reason to release your code under GPL is that it you don't want your work used in proprietary developer tools. It doesn't really matter then if the code is used in a proprietary developer tool's training data set instead of its own program code.
Even permissive licenses typically come with some conditions attached. If I release a program under MIT license and someone then uses portions of that code in their own project, I expect to see my name and the MIT license included in some way. Perhaps a line in the README, an ACKNOWLEDGEMENTS.txt or a comment like
// This function taken from quuxifier (https://example.org/software/quux)
// ⓒ bitofhope 2022, used under the MIT license. See doc/licenses/MIT or
// https://spdx.org/licenses/MIT.html for details.
The same, in my opinion, applies if recognizable (for some definition and threshold of recognizable, which can and does get deep into lawyer territory) portions of that code are emitted by a convolution network. If Copilot can write my function, why can't it write my name and choice of license too?
Even if you are a full copyright abolitionist, you can still point out the hypocrisy from the opposite side. Github's parent company Microsoft is notoriously protective of its proprietary code and its copyright. The company has historically been explicitly hostile to the free software community and despite its later unilateral declaration of love for open source continues to profit from their proprietary code, including Copilot. If you spend a decade or a few calling open source a cancer and campaigning against it, you can expect that to come bite you in the ass when you later try to sell a neural network trained on a vast corpus of free and open source software.
It's kinda weird how the same organization that pushes for worldwide copyrights enforcement, and gets plenty of people into courts (on some places asking for jail time) for violating their copyrights is now profiting from violating the copyrights of thousands of people.
Either these things stop or software licensing is meaningless. Pick one.
People somehow arguing that both things can be untrue are delusional imo. If copilot is ok, then obfuscating code in order to get around a license is ok.
Copilot can produce agpl code verbatim, and per the license copilot should also be agpl, but that’s not going to happen practically, so copilot will probably be shut down.
This is to say nothing of commercial code.
Best way to think of it is like - if copilot was a group of people manually writing and sending code would it be ok? No.
Why should big tech be able to effectively reproduce the work of the little guy without following the licenses they set?
This, everyone seems to have forgotten or never known that “open source” isn’t a license. Commercial entities can make code open but with a closed license. The main example being UC Berkeley and BSD Unix. Seems like the copilot people confused “public” code and having a free or “open” license to the code.
Code which is publicly viewable but available under a license which doesn't meet the Open Source Definition[1] is commonly called "shared source" rather than "open source".
They aren't really confused about the licensing. Microsoft suggests that no matter what the license is for training code, generated code is not infringing — either because Copilot training is "fair use", because the similarity isn't strong enough, or because the amount copied is de minimis. However, the risk is primarily borne by the users, not by Microsoft.
> Microsoft suggests that no matter what the license is for training code, generated code is not infringing
They claim no such thing. They claim that Copilot itself is not infringing any license by being trained on code - that their own use of the code for AI training purposes is fair use and that the Copilot NN is not a derivative work of any code in the training set.
But they explicitly warn you that code that Copilot generates may infringe others' copyright, and that you should use "standard IP scanning tools" to ensure you are not infringing copyright by using the code Copilot spit out.
That's not clear at all. Training a model on a copyrighted dataset might not be infringing, even if the output of that model is potentially infringing. It's an important question that hasn't yet been resolved, AFAIK.
If Copilot is infringing just by training on copyrighted data, then so is Stable Diffusion.
You - and many others, including Microsoft - are assuming some incredible inability to understand what ML is and does.
Microsoft's position basically distills to laundering:
At the entrance to the black box, there are assets being appropriated in a way that is difficult to criticize. At the exit, the same assets - trivially manipulated - are presented as if they were invented by the box itself.
It doesn't matter what the box is or does. It's clearly deriving its output from its input. An appeal to the complexity of the box as its own moral ground leaves us with nowhere to stand.
In your analogy, does copyright infringement occur when the box is created, or does it only occur when the box is used?
This seems like a very important, but unresolved, legal distinction. If the former, then Microsoft is liable. If the latter, then only users of the box are liable.
It's only being made important in order to obfuscate the process.
Imagine I took a hose, and put a sprinkler on one end and left that in my yard; then attached the other end to the spigot of my neighbor's house.
My neighbor comes to me to complain, "You're stealing my water!"
"Oh, but I've tangled the hose so much that even I can't prove where the water is coming from! Furthermore, I've gotten permission from our other neighbor Dave, and you can plainly see that I'm using his water. Maybe some of yours has been mixed in, but the courts have deemed that 'fair use'. After all, I can be responsible for tracking down where every drop of water comes from!"
"You attached the hose right here to my spigot! Water is flowing out of my house into your hose!"
"As I stated before, no one - not even I - can prove whose water is flowing through my hose. You can't compel me to untangle my hoses!"
---
This situation is obvious. I have left my hose tangled in order to dodge responsibility for taking your water. When someone does this with money, it's called "laundering". The only difference here is that it's an asset (copyrighted source code) and not a currency (dollars) being laundered.
It's further complicated by the fact that you can't "take away" source code. But the entire premise of copyright is to pretend that you can: to violate copyright is to use the assets created by someone else, thereby ignoring their arbitrary monopoly.
Fair use allows us to accidentally or incidentally use copyrighted works, but that clearly isn't what Microsoft has done. They are just using all the code they can get their hands on, and laundering it through ML.
> Either these things stop or software licensing is meaningless. Pick one.
I think this is overly simplistic. People routinely write code that bears a lot of similarity to existing code (there's only so many ways you can write "for x in my_list: print(x)") so there's some threshold for originality that's applied. Looking at it from the other side, minor tweaks to otherwise interesting and novel bits of code shouldn't exempt you from the original licensing obligations.
There's a happy medium in there somewhere (though admittedly it's hard to define).
I think this is overly simplistic. People routinely write comments that bear a lot of similarity to other comments (there's only so many ways you can write words in English) so there's some threshold for originality that's applied.
Looking at it from the other side, minor tweaks to otherwise interesting and novel comments shouldn't exempt you from scrutiny.
There might be a happy medium in there somewhere, but it's hard to know for sure.
I've never seen someone independently recreate exact comments with a persons name in it, have you? Do you find that reasonable as an excuse for independent creation?
Github cannot independently create code, we know this. Comparing Github to humans writing code is disingenuous at best.
There is also the option that MS claims: Copilot may be perfectly fine as it is, BUT you may not be allowed to distribute (or even use internally) code it generates for you.
This is what the current terms of service of Copilot say: you as the user are responsible for ensuring you are not breaking anyone's copyright when you accept an auto-completion from Copilot. How you would know that it just spit out someone else's code is unspecified, of course.
Of course, similar tools that make it easy to infringe others' copyright are less accepted when they don't come from corporate behemoths (cough Popcorn Time cough), but such is the world we live: copyright protection for me but not for thee.
>> This is what the current terms of service of Copilot say: you as the user are responsible for ensuring you are not breaking anyone's copyright when you accept an auto-completion from Copilot. How you would know that it just spit out someone else's code is unspecified, of course.
This is the key point.
If they were confident that the "generated" code did not violate any copyright or licenses then they would be using Copilot internally or offering indemnity for commercial users of Copilot.
Is Microsoft or Github using Copilot for the proprietary software products they sell? (that is, are they "dog-fooding" Copilot?)
What corporate legal team would be willing to sign off on the use of Copilot for a software product that is sold and distributed?
If the "generated" code is licensed under the GPL and it gets mixed into a proprietary software product then the terms of the GPL have been violated and the proprietary code falls under the GPL.
> Is Microsoft or Github using Copilot for the proprietary software products they sell? (that is, are they "dog-fooding" Copilot?)
Yeah, that's my question. Are MS devs allowed to use Copilot? For, say, developing Windows? Edge? Office? If no, then I'm gonna continue to stay the hell away from it.
I think companies have gotten so relaxed about indemnity because of things like section 230 protection and the typical EULA claiming no responsibility that they're now trying to extend it where it doesn't belong.
In any other industry, MS WOULD offer indemnity protection or it would be dead-in-the-water and no company would even attempt what MS is attempting to do.
Where is this? The terms of service I could find for Copilot state:
> The code, functions, and other output returned to you by GitHub Copilot are called “Suggestions.” GitHub does not claim any rights in Suggestions, and you retain ownership of and responsibility for Your Code, including Suggestions you include in Your Code.
It's not super clear ("retain"?) but I understand it as claiming that you own the copyright on the suggestions you get when you run Copilot.
> Other than the filter, what other measures can I take to assess code suggested by GitHub Copilot?
> You should take the same precautions as you would with any code you write that uses material you did not independently originate. These include rigorous testing, IP scanning [IP == intellectual property, in this context - my note], and checking for security vulnerabilities. You should make sure your IDE or editor does not automatically compile or run generated code before you review it.
I believe the "you retain ownership and responsibility for Your Code, including Suggestions" is the part that covers this in the terms of service.
Or it's fair use. Fair use is what enables the use of samples in musics or the use of photographs by the likes of Andy Warhol to create new works of art. You can also cite literature and other texts. It's a pretty broad notion.
So, it's not as black and white as people seem to insist things must be by their limited & flawed understanding of copyright law as it exists in various countries (the world is bigger than the US, and people use co-pilot outside the US).
If you ever copied code from a book or a web page, you are doing exactly the same thing as github co-pilot is doing. And it's fine and legal to do so because that is fair use. That's why fair use exist: so we can actually use the information that is shared with us via copyrighted works. You can't restrict fair use with a license; so the original license is not relevant here. It applies to distributing the whole copyrighted work, not bits and pieces of it.
The only legal question that might exist around Github co-pilot is whether it can be defended as fair use. It probably is but it would need to be challenged in a court to get that verified. So, we might know in a decade or so if somebody actually feels like spending a few million on kick-starting that process (best of luck!). And you'd actually have to go after users of github co-pilot as Github neatly deflects responsibility to the end user. All they do is show you some code.
training on OSS may be considered fair use (that hasn't been challenged in courts yet, but it would probably hold).
But that says nothing about its output being fair use, and that definitely won't hold up in court anymore than the output of a human retyping a novel word-for-word would hold up as fair use.
While modern copyright law is awful, the problem with abolishing copyright is that occasionally it actually still protects the little man. This happens just often enough that -politically- you'll find a sufficiently large group of people opposed to its abolition at this time. It truly is an example of "the worst system except for all the others." :-(
It is not. Or, to be more precise, it is a way of working within the copyright system to uphold the 4 freedoms that they consider most important. But, importantly, abolishing software copyright would not give users the 4 freedoms.
Instead, the goal of the Free Software movement would be to enshrine the 4 freedoms into law - for example, making it illegal to distribute software without making the source available, and to make it illegal to distribute hardware devices whose software can't be changed by the end user.
Having copyright + the GPL is more useful than no copyright at all.
From my understanding the GPL was created as a hack on copyright law in order to prevent abuses. Without copyright laws the GPL wouldn't have been needed in the first place. See https://www.free-soft.org/gpl_history/
> Without copyright laws the GPL wouldn't have been needed in the first place.
That's an inaccurate understanding, and is not supported by that history page, or by more recent actions from the FSF and Richard Stallman. Without copyright, there would be no copyleft - which would mean that companies would be entirely free to take any libre software, package it with their own user-hostile changes, and bundle it in an obfuscated binary. They would also be free to do what TiVo did, and add hardware constraints to prevent you from running modified versions of "their" software, even if "their" software is GNU utilities.
The framework of copyright is actually quite important for the free software movement to be able to enforce its goals and try to force companies to contribute to free software.
Indeed the GPL is stronger due to copyright than if neither existed, but without it you'd still be within your rights to redistribute and modify the binary. Because of the ineffectiveness of obfuscation I don't see how businesses would have an incentive to keep source code private anymore.
Why are people obsessed with credit in places where it doesn’t matter? Nobody looks at code and read comments or files crediting others. Maybe in an article, or a whitepaper, or a blogpost, sure.
Obviously it matters to the people who wrote licenses that explicitly require credit and to the people that chose to release their code under such licenses.
Well, I can't speak for others, but my obsession is not with the lack of credit per se, but with the shameless profiteering off of it. If it were just open-source and free for everyone, I wouldn't care.
If we widen the conversation a little, I would argue that it would benefit the world to publicly release the source code of Windows 11. Not only would Jr. programmers get a huge real world code base to learn from, but I'm sure many exploits could be found and fixed in short order. So why are we limiting the discussion to violating just FOSS copyrights?
My immediate thought is a human plagiarized the code, changed some variable names and white space up, and then uploaded it to GitHub without a license, or without a copyright license and that is where Co-Pilot got it from.
I could be totally wrong, but I have a hard time believing GitHub didn’t pay attention to licenses when training CP. I would put my money on some random person not respecting a license (like me, many times) and putting it up without thinking about the downstream effects.
Github text search is pretty comprehensive. Should be findable, if it is in a public repository. Are private repos treated as copyrighted by the "only copyright free code" case?
Even in this instance though, I’m not sure that this really falls at the feet of the person that uploaded it.
IANAL, but if someone naively uploads my copyrighted code and just checks the MIT License box without knowing better, I’m not about to sue them over it. I’m not sure “but this 13 year old kid learning to code for the first time uploaded it under a permissive license and it got gobbled up by our crawler so it’s not our fault your honour” would be an effective defence in court, either.
That all said, I’ve largely just described any modern search engine which has been working in this way for years. So.. shrug?
Will no doubt be litigated at some point down the road.
MS being a rich org is well equiped to fight this legal battler however they want. They don't need our sympathy. We also don't need MS version of AI coder. Even if they have been legally dissuaded to create co-pilot, someone else would.
The issue I'm more bothered with is: the actual cost of copyright/license enforcement. Do we as society really want/need to be accepting and sustaining these costs? The time wasted?
I don't buy the argument that without strong IP laws no good code will be shared publicly: great code is already shared via VERY permissive licenses (and not so permissive ones and yet _stolen_ without others knowledge). Entire enterprises exists adding to the shared corpus of code.
Also, look at other industries where ideas are copied/remixed without attribution all the time: fashion. It never dissuaded new fashion designers or companies to be formed.
Whoa, you can't post this aggressively to HN, regardless of how wrong someone is or you feel they are. We're trying for something different here, so we have to ban accounts that post like this.
How is this problem different from DALL-E and such? Is the copyright legislation ready for all this, and when will there be established interpretations of law?
Just for some context, Tim Davis is both the author of SuiteSparse (library in question), and one of the main researchers behind the algorithms used in SuiteSparse.
It’s common for academics working in this field to release their software open source instead of licensing it, both as a service to the public and in order to secure support. Davis is an incredibly successful academic whose software is used absolutely ubiquitously. This approach has worked for him: he has had many industrial partnerships and support from the government.
Attribution here means supporting science. If you think that it isn’t a big deal that Microsoft isn’t properly attributing him, what you’re saying is that you think it’s OK for Microsoft to be subsidized by tax payer (and private) dollars, since that’s what’s happening here. The code is clearly identical, with the exception of a few tiny transformations which leave the functionality unchanged. Arguing otherwise is being disingenuous.
His code is already used in thousands of repos without proper attribution. Isn't that worse? If you want to steal his code you can just copypaste it. No need for a convoluted prompt baiting Copilot into reproducing it.
Yup, and I bet a lot of those repos are on GitHub. Which is owned by Microsoft. And which were then fed into Copilot.
It’s almost like Microsoft is capable of not only trawling through huge amounts of code, but accurately identifying Tim Davis’s code. Would be pretty crazy if they used these tools to identify instances of copyright/left infringement and help its users and the open source and scientific communities instead of making it clear that they do not want to do those things.
> His code is already used in thousands of repos without proper attribution. Isn't that worse?
True. And those are license violations as well. But we aren't discussing those.
We are discussing an online service created by a large corporation that automatically hands millions of developers code directly in their IDE's which was entirely stripped from its license. There's no informing of consent or terms of use whatsoever.
> If you want to steal his code you can just copypaste it
When you copy the code from his GitHub repo, a reference to the applicable license is directly mentioned in the files you're copying from.
"stealing" in that regard would mean: willfully ignoring the license and its terms. You can't deny you weren't informed about the existence of the license. It's an integral part of the code.
As opposed to o-pilot which presents you code, giving you the impression that you can just plug it into your own projects, without informing you about any applicable terms of use e.g. attribution.
Put differently, if you're a professional and you copy/paste entire files from some random GitHub repo that doesn't contain any licensing or copyright information, well, you're creating a legal liability for yourself, your employer and anyone using that code through your work.
> No need for a convoluted prompt baiting Copilot into reproducing it.
In an utopian world, everyone would just be able to freely use whatever code is available on the Internet without having to ask for anyone's consent. We don't live in such a world. The reality is one where intellectual property rights and court cases are a thing.
How can it properly attribute it? The code is being "copied" by copliot from other repos that didn't properly attribute it. This is no different than if you found one of those repos and copied it yourself. Copilot is magnifying a problem that was already there. It, or any human doing the same, is not doing anything morally wrong. There's no way for it or any human to know that code is copyrighted. Unfortunately intent is not a requirement for copyright infringement, which is just bat shit insane. [1]
This is really much ado about nothing. Nobody baits copliot into reproducing existing chunks of code, and it's very rare to use a big chunk of code from copilot without changes. I've been using it for months and I can't recall a single instance of doing that. Little bits of code should not be copyrightable in the first place. I can't copyright a single sentence fragment. All this fuss is way overblown.
There it is. If you have to ask that question, it follows that co-pilot isn't the right tool for developers to use in the first place.
Would you - or your employer - want to risk a lawsuit because you inadvertently copied code that's actually released under a license with particular terms of use?
"Oh, my due diligence went as far as trusting Microsoft and their product for making sure any and all rights where cleared before their tool provided me code." is a meager excuse in a court case when the original author of said code decides to sue you.
> Little bits of code should not be copyrightable in the first place. I can't copyright a single sentence fragment.
True. You can't copyright single fact statements. But clearly, there are cases where co-pilot suggests way more then that.
It's also true that most people don't really consider how stringent copyright laws really are until they are affected by the consequences of their actions (fines, suits, cease & desist,...).
> it's very rare to use a big chunk of code from copilot without changes
> Would you - or your employer - want to risk a lawsuit because you inadvertently copied code that's actually released under a license with particular terms of use?
Copilot doesn't do this unless you bait it with very obvious prompts. But to answer your question: yes, never worked at a company that actually cares about licenses. It's a mirage. No-one ever gets sued. If your code is out there it will be used and abused and everyone gets away with it.
> Would you - or your employer - want to risk a lawsuit because you inadvertently copied code that's actually released under a license with particular terms of use?
Yes. In actuality none of the code I've seen out of copilot is likely to be an issue. This is a mostly theoretical problem that is even less likely to be litigated. If you can't use copliot at work because of this, your lawyers have too much say inside the company, or management is too risk averse.
Also fuck copyright law. It's messed up. I'm not saying get rid of copyrights, but it needs a serious overhaul that is not getting.
> Copilot is magnifying a problem that was already there.
Copilot is a large-scale public distribution service which pumps out copyright violations which directly degrade incentives of competent software authors which are known to have brought about the code that Copilot wants to pump out.
It is magnifying the problem of the volume in play of a structural solvent that is dissolving the means to produce quality original software.
> It, or any human doing the same, is not doing anything morally wrong.
A person has placed an object into society, asking for certain treatment of it, upon which they base their livelihood. Knowingly disrespecting and ignoring the requests placed with it – which are in part embedded in a formal social structure of international law and the accompanying expectations of behavior – BY USING A GIGANTIC MACHINE TO DO SO… to support your livelihood… is not a moral failure? Can you confirm?
It’s the same if you don’t use the giant machine for it.
It doesn’t matter if you don’t see it or choose not to accept it as such. The original author may still stop working, and there is a completely unnecessary moral failure there.
Authors of open source software choose to put their code out into the world. The legal agreement is if you use it, you attribute the use and abide by the rules of the license. In practice this is not often done, and there is little consequence except in truly egregious cases. I don't know any open source contributors who stop working based on this or have their livelihoods affected. I personally, do not care. If I didn't want people to use the code, I wouldn't have published it at all. If copliot were to reproduce code from a public repo of mine, I don't care. The genie is not going back in the bottle, so this whole discussion is moot.
Yeah, it's a fallacy called "changing the goalposts". It's bringing up an argument that, although true in and of itself, is not relevant to the subject of the ongoing debate.
Open Source Science Software is generally licensed under MIT or GPL to make the source available, source code inheritable, mark the artifact as a deliverable, and make code reviewable and encourage collaboration.
So the funding bodies can support you financially over the code you released, and other users can support you with improvements to make code more valuable and usable.
This is beyond source available, this how Free Software is designed and dreamed to work in practice.
I mean this in the best way, but your comment doesn't make any sense. I'm asking sfpotter what he means by releasing something OS without using licensing. I didn't ask for an overview of free software.
> Licensing in this context means "closed/strict licensing which doesn't provide freedoms".
Maybe that's what the commenter meant but that's not what that language means. Open source licenses are, well, licenses, and if you use them then you're licensing your code. The L in GPL stands for license, for example.
OSS licenses are generally called "permissive", "weak copyright", "weak copyleft" and "strong copyleft" (in case of GPL family) depending on the context and nature of the license implied.
Just try Googling for "weak copyright" or "strong copyright". You can see for yourself that there's no such usage like you're explaining. All the top results are about whether copyright as a general concept is, or should be, strong or weak, applied to all circumstances (proprietary and open sourced software alike and even other types of copyrightable works).
Strong and weak copyleft is a different matter, those terms do make sense. Maybe that's the source of confusion here.
I suppose I was being pendatic (sorry) but more over your comment than theirs. If that's what they meant then your original reply could've just been "oh I think they meant not a proprietary license" rather than explaining what open source means to someone that already understands it.
In fact, I tried to explain why Open Source works in "Scientific Software" in general. Sorry if that wasn't obvious.
People generally ask "why" people give away their life research for free, and I wanted to clarify that as a person who works in an HPC Center and makes research himself.
"licensing" as verb is often used to mean "sell or buy (depending on context) commercial licenses". Even though releasing for free as open source also involves a software license.
It’s always bothered me when people end their argument with something along the lines of “disagreeing with me makes you bad.” It immediately shuts down opposing thought without even giving someone a chance.
If you're referring to my last sentence, "Arguing otherwise is being disingenuous", two things:
1) People are disingenuous all the time, intentionally and otherwise. Doesn't necessarily mean that they are "bad". The reality is that people must frequently act cynically for the purposes of self-preservation.
2) With this sentence, I am only referring to the question of whether or not the code from co-pilot posted by Tim Davis "is" the original code. In my view, the transformations present in the code are on the level of what clang-format is capable of. I would argue that if you run code through clang-format, it is functionally "the same" as the original. I believe that this is probably obvious to nearly all experienced programmers, hence my point that I think that if someone is arguing to the contrary, they are being disingenuous. For people with skin in the game (like Graveley, quoted in the article), I would argue that they are being disingenuous in order to cover their asses. For people here on HN, I would argue that they are doing so out of naivety.
Obviously, you're free to disagree with any of this, and anything in my original post. If you feel like I am accusing you of being "bad", that is not my intention.
machine learning is apparently now the software version of carrying your dirty money to the casino.
As a thought experiment I wonder what the reaction would be if one day it was revealed that copilot is actually just minimum wage coders in Lagos who strip open source code of their attribution, rename a bunch of variables and reformat the code and then sell those snippets as a service at the behest of a gigantic company.
I think this is a becoming repeating pattern in creative industries where a machine learning model is taught from a corpus on existing, copyrightable and attributable work - it creates content that plagiarizes and infringes on the rights of original authors.
I'm using "pattern" quite loosely here as recent ruckuses come from the StableDiffusion image synthesis and CoPilot - n=2.
I have no idea what the ethical and legal long term ramifications are.
Doesn't it all boil down to memorization vs. application?
It seems, with copilot it's mixed. Sometimes it regurgitates blocks of existing code, other times it can apply context and patterns to create boilerplate code.
While the fact that github is unclear about all thisis true and the legality of both training copilot with licensed code and using it's output is even less clear, in my opinion copilot can still be a usefull tool when you know when and how to use it.
> Developers may wonder: is this AI that generates code, or AI that searches the web for open source code that might be suitable?
Developers who wonder this never tried/researched about copilot.
What it's actually usefull for is to generate code thightly integrated into yours, or doing boilerplate/repetitive stuff based on what you have already written.
Example :
I have a base exception class and classes that inherit this class all with different names.
I'm writing error handling logic and only wrote the case for the first error class, with an error message and everything.
Copilot is able to generate the cases for all the other classes, with unique and descriptive error messages for each one.
If you only use it for this kind of stuff, it saves time and you don't have to worry about licenses/code laundering for simple cases like this.
This is my takeaway from using Copilot as well. Given my domain and language of choice, Copilot's suggestions range from non-idiomatic to completely broken when it comes to any kind of feature work.
I don't think of it as a tool that solves problems for me, I see it as a glorified autocomplete that understands code and is skilled at applying patterns from previous lines (e.g. in config files) and other files in your project in a way that usually makes sense.
This is a contrived example, but just to illustrate the kind of pattern matching I'm talking about, say I'm writing the following code:
It feels like Copilot understands the context in variety of programming languages and configuration formats. If you're writing a Docker Compose file and define a Redis service that contains the flag `--port 8888`, it will automatically offer to autocomplete your exposed ports with 8888:8888. Without the --port flag it will suggest 6379, which is the default port for Redis.
These examples are trivial, but I find that these savings really add up and cut down on the amount of boilerplate and otherwise uninteresting busywork you have to do.
Of course the copyright-violating aspects of Copilot are inexcusable, but I still find Copilot to be useful in other ways.
Same here, I find CoPilot super useful for boilerplate, repeated variable definitions, similar functions, etc. I've quite literally never had it spit out more than 3-4 lines of code and it's always been trivial code. That's where it shines. On their own the suggestions are "trivial"/"simple"/"obvious" but like you said, it adds up and makes me smile every time I don't have to type out something basic, that alone is worth $10/mo.
272 comments
[ 3.2 ms ] story [ 253 ms ] threadCopyright doesn't, for sure.
You play privately, but you have absolutely no right to copy and redistribute the work to the masses, or even do whatever you please with it.
Not so with a piece of code that you use privately.
I wouldn't be surprised if lawyers/courts/lawmakers determine that current generative AI are on the "infringing" rather than the "inventive" side of things.
I think there is potential for this to change as AI gets better:
https://kitsunesoftware.wordpress.com/2022/10/09/an-end-to-c...
Does it really matter? Once you embed copyrighted works into your learning dataset, any model you ship and any "creation" of that model is by definition a derived work, must have a license from the original authors and must obey the terms of that license. The extent of derivation is immaterial.
The AI crowd is on a hard collision course with an army of gavels.
The theory used here though is that fair use permits transformative use. Normally copilot output should be sufficiently transformative. This particular situation appears to be a sort of bug (overfit).
Note that AI models already work somewhat similarly to how humans work (becoming bug-for-bug compatible at times even :-P ). We may need laws to be amended in the opposite direction even, else it might become illegal for humans to learn too.
Of course everything a human learns and produces is a derivative of real world input, some of it copyrighted. But people agreed that this transformation is a form of fair use, as long as the derived work is sufficiently creative - where the key implicit assumption is that creativity is a human ability that warrants protection. Both the creator and the learner enjoy protection because they are human.
In the AI case, the output of a program will certainly not receive protection by default - it will be protected only as a consequence of its human creator or user rights. It doesn't really matter how transformative and analogous to the human mind the program is, the output only deserves protection solely for its unique human created parts - the internal working and the extent of the craft embedded in a GPT3 text prompt. The first is unrelated directly to the work produced, and the second is laughable vs the artworks embedded in the model.
If in the future AI advances to the point where it can be granted natural rights, this could change, but we are far far from that point.
Animals have (some, limited) natural rights, but can't hold copyright. Corporations don't have "natural" rights but can hold copyright.
If you have code under a restrictive license but we acquire it and use it privately for our own needs in trade secret processes how would you even know?
And if that isn't good enough, I'm sure the copyright holders can lobby for whatever to make it easier to find, and they'll only be thwarted in this if the governments are convinced that the interests of the lobbyists are no longer aligned with the government's interests.
That's a pretty big hash-list you've got there...
What I mean here:
1. Person 1 writes Library 1 with License 1, and posts it to GitHub under Person 1's account.
2. Person 2 steals code from Person 1, or parts of it, without carrying over any of the original license information. This code is then posted to GitHub under Person 2's account, without any links to the original repository.
3. Copilot is trained on data from Person 2's repository and is able to reproduce it despite the original code being under license.
Seriously.
Terms of service don’t cease existing because they’re inconvenient.
This is not really a new problem that has suddenly appeared with these new AIs...
If this is a lightly edited copy, chances are pretty good there’s hundreds of equally lightly edited copies sitting around on GitHub. It shouldn’t be possible to overfit the model to this degree from a single example.
Microsoft should train Copilot on their own code. Theoretically they know where all that code came from and they haven't got a lot of copyright problems internally that would be revealed by Copilot. If they won't do that, that should factor into what we think of their arguments about what Copilot means for training corpus authors.
Normally, if person 2 steals your code and hosts it on Github while infringing the original license, person 1 can send a DMCA notice to Github to take the code down. A similar process could be involved for copilot too.
If copilot would be a DMCA safe harbor, then they would need to comply would DMCA notices and stop distributing the offending code in a timely manner. It might be implemented by elaborate filters (which are probably not a 100% accurate), or batching up DMCA notices, and retraining their model regularly with offending repos/code excluded.
Of course, Microsoft drag their feet and say that copilot never infringes on copyright. They don't want to do any of this.
https://en.wikipedia.org/wiki/Abstraction-Filtration-Compari...
This allows for verbatim copies if they are utilitarian in nature!
As for why we should allow verbatim copies of utilitarian features... First, let's preface this with the substantial similarity of the structure, sequence and organization as established in Whelan v. Jaslow which amongst other things says that you cannot merely change the variable names if the expressive structure of the code remains the same. Now let's imagine 10,000 software developers who all implement Dijkstra's algorithm in C and then run it through clang-format. Aside from variable names, isn't it safe to assume that many of the implementations are going to be exactly the same?
Now, this doesn’t mean that GitHub is not in violation of other copyright claims, such as clearly expressive parts like comments and more!
Oh ok so if I come upon a piece of copyrighted microsoft code all I have to do is rename the variables and modify some whitespace and it's no longer owned by them. Lol.
In the end the conclusion from the SC was that Google's use was fair use regardless of the question of copyrightability, which they didn't decide on (the previous court, at Oracle's appeal, had found that APIs are in fact copyrightable and that Google's use did not fall under fair use of that copyrighted API as they weren't 100% compatible with other JVMs).
One thing in life is never to get into a position where you need to defend yourself against this scenario which is why I would never even consider using the tool.
The outcome is that introducing the tool actually tangibly increases business risk in a changing climate.
Copilot, as far as I know, tend to be used to generate snippets and small algorithms that, by themselves, are not a full system/product/game.
There still may be some merit to your argument, but I believe the opposite side should be a bit steelman'ed beforehand.
It's not just one snippet, it's thousands of them, every day being slurped up and copied across code bases everywhere license free.
If the pirate bay can get jail time for facilitating mass copyright infringement, maybe Microsoft needs a little jail time too.
It's been said in this thread already:
Either licenses matter or they don't. Pick one.
I disagree that comparing Copilot with Pirate Bay is a good argument to make your case (maybe Dall-e is a closer comparison if resulting artwork could contain licensed artwork from the training set). You'd probably have other fronts to use and present a stronger argument.
And let me remind you that I have not argumented on behalf of any side, so I do not think this thread requires arguments against arguments I have never brought forward (it feels a bit more emotional than constructive).
This is an argument. A bad one, but an argument none the less.
Copilot seems to be copying code snippets from the internet wholesale. It's not using AI to generate snippets which would possibly be ok.
Copyright doesn't care about the size of the abuse or the size of the works involved.
Microsoft is creating these copies and even facilitates their redistribution on GitHub.
I know legally it's more likely the users of copilot that are at risk here but we said the same thing about torrenting.
Look at Napster, LimeWire or the pirate bay. The outcomes Microsoft deserves here is pretty cut and dry.
so if your work is transformative, it can be exempt as fair use. But i'm not sure what degree counts as transformative - i do think that training an AI model with millions of repos worth of code is transformative.
For example, when Google reimplemented Java for Android, they didn't copy the OpenJDK code. They just wrote their own code that fulfilled what the methods did. If they'd taken the OpenJDK code and just renamed a variable or two in each method, I think Oracle would have had a very strong case.
With Copilot, if it's generating code that is a near-identical copy, that's kinda just copy-paste with extra steps. Let's say that I create a dumb copilot. This will just look at a method signature and fill out the body if it finds an exact match in its database - there's no AI/ML involved. I "train" it on the OpenJDK source - meaning I create a hash of method signature -> method body. I then start writing Java method signatures and it fills in the bodies with the body it "learned" would be good for that method signature.
I think one of the things to always think about is "if the AI were dumber, would it just be copy-pasting?" If the stable diffusion were just taking a copyrighted photo and applying an instagram filter to it, that would be copyright infringement. If I ask for "Robert Downey Jr in a suit" and it gives me back a Getty Images photo run through a filter, that doesn't seem ok to use. If it is truly generating something new and unique from its training dataset, that does seem ok (to me, IANAL).
The problem is that Github Copilot seems to be generating things that are almost identical. In some ways, it seems like they should modify Copilot to catch things that are substantially the same as their training dataset, but that might be difficult.
But I think the process used to create it makes a difference. Copyright doesn't protect against independent creation. If two people independently write the same code, that's ok. However, Copilot isn't independently creating code if it's recreating code that's in its training set.
One of the things I remember reading about that trial was that one of the Oracle lawyers was adamant that a method called "rangeCheck" had been copied and that it was proof that Google was able to get Android out into the market faster than if they hadn't copied code. The method was used inside the standard library (but not exported as part of the API) to check if the index of an array was out of bounds and throw the proper exception (so basically, if index < 0 throw one thing, if index >= length throw a different one, otherwise do nothing). The judge who heard the original case (and the second one at that level after the appeals court sent it back down to judge whether it was fair-use) had programmed in other languages in the past and decided to learn Java before the trial, so he was able to tell that this was such a trivial bit of code that it wasn't at all surprising that the code was the same and that even if it were copied, it would not expedite Android's appearance in the market in any noticeable way, leading to this amazing quote:
"I have done, and still do, a significant amount of programming in other languages. I've written blocks of code like rangeCheck a hundred times before. I could do it, you could do it. The idea that someone would copy that when they could do it themselves just as fast, it was an accident. There's no way you could say that was speeding them along to the marketplace. You're one of the best lawyers in America --how could you even make that kind of argument?"
Obviously most judges won't have this level of technical experience (I remember reading about a different case where a judge upheld an objection to the prosecution zooming into a photo on an iPad due to worrying that it might manipulate the image inaccurately, but then didn't have a problem with them wheeling in a giant TV instead of displaying the imaged scaled up on that), but I think the law has a capacity for nuance about these sort of technical issues that might surprise some programmers, especially with regards to the fact that intent and context can sometimes matter as much or even more than the end of result of something.
https://en.wikipedia.org/wiki/Structure,_sequence_and_organi...
I guess when a computer does it people get creeped out. Or the computer is not smart enough to change the variables names. :)
In cases like this, the benefits of the technology are so huge, and the downsides to the original code author so tiny. Was he actually going to license that code to someone who said 'nah, I'll recreate it with copilot instead'?
Very few people successfully license anything less than 100,000 lines of code anyway.
When this starts impacting emplyment opportunities for devs, get back to us with the "tiny" downsides.
Benefits to whom? I don't recall Microsoft making this technology free for OSS development.
Suppose you're right and 5 years from now everyone is using co-pilot. To remain competitive with proprietary software, OSS developers will have to use it also but they will still be paying Microsoft $10/month for the privilege. Meanwhile none of them were compensated for making this possible in the first place.
Actually, they did exactly that... Anyone with a decent number of commits to any opensource project gets a copilot license for free.
“It looks like your copyrighted code because it learnt from reading your code”
I bet the same people would be fine if this code was included verbatim with appropriate attribution and licenses. But that’s not the case.
His opinion, as well as the current state of law: His code could and shall be used pretty freely, but a comment referring to the original license/author is needed.
The context: Having an option to "leave out copyrighted code", that does not do what the option suggests, is a flaw, both in a functional and secondly with law-as-is, in a legal way.
The problem is that code is text-based and obviously some kind of writing while mostly being a utilitarian invention. The courts of course recognize this distinction (because unlike the average software developer, lawyers and judges have studied the law) so they have come up with a number of ways to filter out what is and isn't covered by copyright with regards to software.
The deal with patents is that you make the way your invention works public knowledge. You document the principle and in exchange you get a limited-time monopoly on its implementation. An alternative for this is a trade secret. As long as you guard the secret, you can remain the only one profiting off it. Of course, some things are impractical to keep secret. It's easier to keep a method of making a fizzy drink under wraps than how the gears are laid out in the gadget you sell.
You also can't really make the contents of a book a secret. Anyone can just look at their copy, arrange words in the same order as you did and sell your book. It also makes no sense to patent the words. The contents are already inherently public knowledge to a certain extent and now people could just buy the book from a patent office. And the clerks don't like filing novel-length applications. Music is not quite as easy to make a 1-to-1 copy of, especially before wide adoption of sound recording technology, but a lot of people can carry a tune well enough to plagiarize one. And sometimes you get a child prodigy Mozart illegally transcribing Miserere.
Since it has been deemed desirable [if not unanimously] that writers and artists also have a period of monopoly rights over their work, copyright needs to work differently from patents.
Software has interesting properties. Unlike a book, you can distribute a program but keep its "recipe" a secret. We'll disregard people who are capable of working with compiled binaries; consider them modern-day transcribers of Miserere. Proprietary code is typically guarded just as any trade secret would be. Perhaps software should have been covered by patents instead of copyright from the beginning. After the patent expires, the algorithm would be unencumbered and public knowledge.
But that's not the world we live in. Software is considered to be like a book, not like a pocket watch. You could mail me a printout of the entire Windows 11 source and there's hardly anything I could ever legally do with it. I could change it for my own amusement I guess, like I can take a red pen and change all the names in my copy of Postmodernism for beginners.
I’m totally against software patents and totally in favor of software copyright, fwiw.
Open Source software can exist in a world without copyright; that's basically what permissive licenses are. Proprietary software can exist in a world without copyright; just don't release the source code, only distribute build artifacts. But free software is dead without copyright.
Most permissive licenses — and most popular permissive licenses — include a copyright statement and conditions which would not be enforceable without copyright. They usually require redistribution of the original copyright notice and license text to be distributed along with copies or derivatives of the work.
That doesn't mean there can't be other legal mechanisms that would also accomplish software freedom.
Closed-source software should just be illegal. Then you don't need copyright to ensure freedom. With copyright gone, you are now guaranteed free to reuse any code. The law should not prohibit copying, it should only require attribution (i.e., prohibit plagiarism).
For a prominent example, WINE goes to extreme ends to ensure their code isn't derived from any prior direct knowledge of Microsoft code. Replicating functions of released binaries with original code is fair game, but reverse engineering or copying Microsoft code is a hard no-go.
As far as AI is concerned in all this, it's probably even easier to distinguish the unacceptable. Whereas humans can argue for plausible deniability, we clearly know what data an AI is fed to generate subsequent output. So unless an AI is certified to never have eaten licensed materials, literally everything it produces will be license infringements.
The training data doesn’t exist at runtime, and if the developers are competent then it only learned a bit or two from each input snippet. So, though even though it’s certainly a highly capable compression algorithm, verbatim copies shouldn’t be… possible.
My best guess for this bug is that a lot of already plagiarised the code. AI has a habit of holding up a mirror to humanity. Sometimes we don’t like what we see.
I don't think current legal frameworks are equipped to handle these types of generative works. There will need to be either new laws, or at least some legal precedence established. For example, it would make total sense for stuff posted publicly to optionally have a "not to be used to train models" license. But models are being trained on public data that pre-dates anyone thinking that is something that they should worry about.
Addressing this exact premise is the purpose of copyleft licenses like the GPL. I would expect GitHub of all companies to understand this, and it's a spit in the face to disregard it, a spit in the face of the entire FOSS community to which they owe their success.
Disclosure: founder of a GitHub competitor
Most software licenses are not full carte-blanche do-whatever copyright waivers. Sure, it would be hypocritical to get up in arms about copilot emitting CC0/WTFPL/Unlicense code, but comparatively little software is released under such licenses.
The GPL (in all its versions) is almost as notable for the specific conditions placed on the freedoms it offers as it is for those freedoms themselves. One possible reason to release your code under GPL is that it you don't want your work used in proprietary developer tools. It doesn't really matter then if the code is used in a proprietary developer tool's training data set instead of its own program code.
Even permissive licenses typically come with some conditions attached. If I release a program under MIT license and someone then uses portions of that code in their own project, I expect to see my name and the MIT license included in some way. Perhaps a line in the README, an ACKNOWLEDGEMENTS.txt or a comment like
The same, in my opinion, applies if recognizable (for some definition and threshold of recognizable, which can and does get deep into lawyer territory) portions of that code are emitted by a convolution network. If Copilot can write my function, why can't it write my name and choice of license too?Even if you are a full copyright abolitionist, you can still point out the hypocrisy from the opposite side. Github's parent company Microsoft is notoriously protective of its proprietary code and its copyright. The company has historically been explicitly hostile to the free software community and despite its later unilateral declaration of love for open source continues to profit from their proprietary code, including Copilot. If you spend a decade or a few calling open source a cancer and campaigning against it, you can expect that to come bite you in the ass when you later try to sell a neural network trained on a vast corpus of free and open source software.
Or, well, no, "weird" is not the correct name.
People somehow arguing that both things can be untrue are delusional imo. If copilot is ok, then obfuscating code in order to get around a license is ok.
Copilot can produce agpl code verbatim, and per the license copilot should also be agpl, but that’s not going to happen practically, so copilot will probably be shut down.
This is to say nothing of commercial code.
Best way to think of it is like - if copilot was a group of people manually writing and sending code would it be ok? No.
Why should big tech be able to effectively reproduce the work of the little guy without following the licenses they set?
They aren't really confused about the licensing. Microsoft suggests that no matter what the license is for training code, generated code is not infringing — either because Copilot training is "fair use", because the similarity isn't strong enough, or because the amount copied is de minimis. However, the risk is primarily borne by the users, not by Microsoft.
[1] https://opensource.org/osd
They claim no such thing. They claim that Copilot itself is not infringing any license by being trained on code - that their own use of the code for AI training purposes is fair use and that the Copilot NN is not a derivative work of any code in the training set.
But they explicitly warn you that code that Copilot generates may infringe others' copyright, and that you should use "standard IP scanning tools" to ensure you are not infringing copyright by using the code Copilot spit out.
How can it be fair use to train a dataset whose output is infringing copyright? It's obvious how: it can't be.
If Copilot is infringing just by training on copyrighted data, then so is Stable Diffusion.
Microsoft's position basically distills to laundering:
At the entrance to the black box, there are assets being appropriated in a way that is difficult to criticize. At the exit, the same assets - trivially manipulated - are presented as if they were invented by the box itself.
It doesn't matter what the box is or does. It's clearly deriving its output from its input. An appeal to the complexity of the box as its own moral ground leaves us with nowhere to stand.
In your analogy, does copyright infringement occur when the box is created, or does it only occur when the box is used?
This seems like a very important, but unresolved, legal distinction. If the former, then Microsoft is liable. If the latter, then only users of the box are liable.
Imagine I took a hose, and put a sprinkler on one end and left that in my yard; then attached the other end to the spigot of my neighbor's house.
My neighbor comes to me to complain, "You're stealing my water!"
"Oh, but I've tangled the hose so much that even I can't prove where the water is coming from! Furthermore, I've gotten permission from our other neighbor Dave, and you can plainly see that I'm using his water. Maybe some of yours has been mixed in, but the courts have deemed that 'fair use'. After all, I can be responsible for tracking down where every drop of water comes from!"
"You attached the hose right here to my spigot! Water is flowing out of my house into your hose!"
"As I stated before, no one - not even I - can prove whose water is flowing through my hose. You can't compel me to untangle my hoses!"
---
This situation is obvious. I have left my hose tangled in order to dodge responsibility for taking your water. When someone does this with money, it's called "laundering". The only difference here is that it's an asset (copyrighted source code) and not a currency (dollars) being laundered.
It's further complicated by the fact that you can't "take away" source code. But the entire premise of copyright is to pretend that you can: to violate copyright is to use the assets created by someone else, thereby ignoring their arbitrary monopoly.
Fair use allows us to accidentally or incidentally use copyrighted works, but that clearly isn't what Microsoft has done. They are just using all the code they can get their hands on, and laundering it through ML.
I think this is overly simplistic. People routinely write code that bears a lot of similarity to existing code (there's only so many ways you can write "for x in my_list: print(x)") so there's some threshold for originality that's applied. Looking at it from the other side, minor tweaks to otherwise interesting and novel bits of code shouldn't exempt you from the original licensing obligations.
There's a happy medium in there somewhere (though admittedly it's hard to define).
Looking at it from the other side, minor tweaks to otherwise interesting and novel comments shouldn't exempt you from scrutiny.
There might be a happy medium in there somewhere, but it's hard to know for sure.
Github cannot independently create code, we know this. Comparing Github to humans writing code is disingenuous at best.
This is what the current terms of service of Copilot say: you as the user are responsible for ensuring you are not breaking anyone's copyright when you accept an auto-completion from Copilot. How you would know that it just spit out someone else's code is unspecified, of course.
Of course, similar tools that make it easy to infringe others' copyright are less accepted when they don't come from corporate behemoths (cough Popcorn Time cough), but such is the world we live: copyright protection for me but not for thee.
This is the key point.
If they were confident that the "generated" code did not violate any copyright or licenses then they would be using Copilot internally or offering indemnity for commercial users of Copilot.
Is Microsoft or Github using Copilot for the proprietary software products they sell? (that is, are they "dog-fooding" Copilot?)
What corporate legal team would be willing to sign off on the use of Copilot for a software product that is sold and distributed?
If the "generated" code is licensed under the GPL and it gets mixed into a proprietary software product then the terms of the GPL have been violated and the proprietary code falls under the GPL.
Their enterprise offering is not available yet, so we don't if that is the case or not
Yeah, that's my question. Are MS devs allowed to use Copilot? For, say, developing Windows? Edge? Office? If no, then I'm gonna continue to stay the hell away from it.
In any other industry, MS WOULD offer indemnity protection or it would be dead-in-the-water and no company would even attempt what MS is attempting to do.
Big tech really needs to be reigned in.
> The code, functions, and other output returned to you by GitHub Copilot are called “Suggestions.” GitHub does not claim any rights in Suggestions, and you retain ownership of and responsibility for Your Code, including Suggestions you include in Your Code.
It's not super clear ("retain"?) but I understand it as claiming that you own the copyright on the suggestions you get when you run Copilot.
Source: https://docs.github.com/en/site-policy/github-terms/github-t...
> Other than the filter, what other measures can I take to assess code suggested by GitHub Copilot?
> You should take the same precautions as you would with any code you write that uses material you did not independently originate. These include rigorous testing, IP scanning [IP == intellectual property, in this context - my note], and checking for security vulnerabilities. You should make sure your IDE or editor does not automatically compile or run generated code before you review it.
I believe the "you retain ownership and responsibility for Your Code, including Suggestions" is the part that covers this in the terms of service.
[0] https://github.com/features/copilot#faq-human-oversight
This will just encourage stolen (and now closed source) code.
Why should Microsoft be free to use the work of the little guy and not vice versa? It really needs to go both ways or neither.
So, it's not as black and white as people seem to insist things must be by their limited & flawed understanding of copyright law as it exists in various countries (the world is bigger than the US, and people use co-pilot outside the US).
If you ever copied code from a book or a web page, you are doing exactly the same thing as github co-pilot is doing. And it's fine and legal to do so because that is fair use. That's why fair use exist: so we can actually use the information that is shared with us via copyrighted works. You can't restrict fair use with a license; so the original license is not relevant here. It applies to distributing the whole copyrighted work, not bits and pieces of it.
The only legal question that might exist around Github co-pilot is whether it can be defended as fair use. It probably is but it would need to be challenged in a court to get that verified. So, we might know in a decade or so if somebody actually feels like spending a few million on kick-starting that process (best of luck!). And you'd actually have to go after users of github co-pilot as Github neatly deflects responsibility to the end user. All they do is show you some code.
But that says nothing about its output being fair use, and that definitely won't hold up in court anymore than the output of a human retyping a novel word-for-word would hold up as fair use.
It’s pretty hard to prove that the code was copied from an individual, so good luck to them.
I think one of the things the FSF kind of got right is that copyrights (and patents) on code are kind of unnatural and difficult to enforce.
Instead, the goal of the Free Software movement would be to enshrine the 4 freedoms into law - for example, making it illegal to distribute software without making the source available, and to make it illegal to distribute hardware devices whose software can't be changed by the end user.
Having copyright + the GPL is more useful than no copyright at all.
That's an inaccurate understanding, and is not supported by that history page, or by more recent actions from the FSF and Richard Stallman. Without copyright, there would be no copyleft - which would mean that companies would be entirely free to take any libre software, package it with their own user-hostile changes, and bundle it in an obfuscated binary. They would also be free to do what TiVo did, and add hardware constraints to prevent you from running modified versions of "their" software, even if "their" software is GNU utilities.
The framework of copyright is actually quite important for the free software movement to be able to enforce its goals and try to force companies to contribute to free software.
What will benefit the world more?
I'd say allowing to train
But on the other hand I'd probably be pissed off if somebody took my work without credit
Hard to say, maybe link to original code would be fine?
Do not annoy copilot users with credit spam and actually give credits
> I'd say allowing to train
If we widen the conversation a little, I would argue that it would benefit the world to publicly release the source code of Windows 11. Not only would Jr. programmers get a huge real world code base to learn from, but I'm sure many exploits could be found and fixed in short order. So why are we limiting the discussion to violating just FOSS copyrights?
I could be totally wrong, but I have a hard time believing GitHub didn’t pay attention to licenses when training CP. I would put my money on some random person not respecting a license (like me, many times) and putting it up without thinking about the downstream effects.
IANAL, but if someone naively uploads my copyrighted code and just checks the MIT License box without knowing better, I’m not about to sue them over it. I’m not sure “but this 13 year old kid learning to code for the first time uploaded it under a permissive license and it got gobbled up by our crawler so it’s not our fault your honour” would be an effective defence in court, either.
That all said, I’ve largely just described any modern search engine which has been working in this way for years. So.. shrug?
Will no doubt be litigated at some point down the road.
The issue I'm more bothered with is: the actual cost of copyright/license enforcement. Do we as society really want/need to be accepting and sustaining these costs? The time wasted?
I don't buy the argument that without strong IP laws no good code will be shared publicly: great code is already shared via VERY permissive licenses (and not so permissive ones and yet _stolen_ without others knowledge). Entire enterprises exists adding to the shared corpus of code.
Also, look at other industries where ideas are copied/remixed without attribution all the time: fashion. It never dissuaded new fashion designers or companies to be formed.
If you'd please review https://news.ycombinator.com/newsguidelines.html and stick to the rules when posting here, we'd appreciate it.
Edit: since you've been using multiple accounts to do this, I've banned this one. Please don't create accounts to break HN's rules with.
If everyone has full access to all code, then it's not possible to plagiarize in secret. It's open for everyone to see and to call out.
Then you don't need software licenses anymore.
It’s common for academics working in this field to release their software open source instead of licensing it, both as a service to the public and in order to secure support. Davis is an incredibly successful academic whose software is used absolutely ubiquitously. This approach has worked for him: he has had many industrial partnerships and support from the government.
Attribution here means supporting science. If you think that it isn’t a big deal that Microsoft isn’t properly attributing him, what you’re saying is that you think it’s OK for Microsoft to be subsidized by tax payer (and private) dollars, since that’s what’s happening here. The code is clearly identical, with the exception of a few tiny transformations which leave the functionality unchanged. Arguing otherwise is being disingenuous.
It’s almost like Microsoft is capable of not only trawling through huge amounts of code, but accurately identifying Tim Davis’s code. Would be pretty crazy if they used these tools to identify instances of copyright/left infringement and help its users and the open source and scientific communities instead of making it clear that they do not want to do those things.
The internet would explode i think.. lol.
True. And those are license violations as well. But we aren't discussing those.
We are discussing an online service created by a large corporation that automatically hands millions of developers code directly in their IDE's which was entirely stripped from its license. There's no informing of consent or terms of use whatsoever.
> If you want to steal his code you can just copypaste it
When you copy the code from his GitHub repo, a reference to the applicable license is directly mentioned in the files you're copying from.
"stealing" in that regard would mean: willfully ignoring the license and its terms. You can't deny you weren't informed about the existence of the license. It's an integral part of the code.
As opposed to o-pilot which presents you code, giving you the impression that you can just plug it into your own projects, without informing you about any applicable terms of use e.g. attribution.
Put differently, if you're a professional and you copy/paste entire files from some random GitHub repo that doesn't contain any licensing or copyright information, well, you're creating a legal liability for yourself, your employer and anyone using that code through your work.
> No need for a convoluted prompt baiting Copilot into reproducing it.
In an utopian world, everyone would just be able to freely use whatever code is available on the Internet without having to ask for anyone's consent. We don't live in such a world. The reality is one where intellectual property rights and court cases are a thing.
This is really much ado about nothing. Nobody baits copliot into reproducing existing chunks of code, and it's very rare to use a big chunk of code from copilot without changes. I've been using it for months and I can't recall a single instance of doing that. Little bits of code should not be copyrightable in the first place. I can't copyright a single sentence fragment. All this fuss is way overblown.
[1] https://www.trademarkandcopyrightlawblog.com/2013/12/innocen...
There it is. If you have to ask that question, it follows that co-pilot isn't the right tool for developers to use in the first place.
Would you - or your employer - want to risk a lawsuit because you inadvertently copied code that's actually released under a license with particular terms of use?
"Oh, my due diligence went as far as trusting Microsoft and their product for making sure any and all rights where cleared before their tool provided me code." is a meager excuse in a court case when the original author of said code decides to sue you.
> Little bits of code should not be copyrightable in the first place. I can't copyright a single sentence fragment.
True. You can't copyright single fact statements. But clearly, there are cases where co-pilot suggests way more then that.
It's also true that most people don't really consider how stringent copyright laws really are until they are affected by the consequences of their actions (fines, suits, cease & desist,...).
> it's very rare to use a big chunk of code from copilot without changes
That's a tentative claim.
Copilot doesn't do this unless you bait it with very obvious prompts. But to answer your question: yes, never worked at a company that actually cares about licenses. It's a mirage. No-one ever gets sued. If your code is out there it will be used and abused and everyone gets away with it.
... Yet.
Yes. In actuality none of the code I've seen out of copilot is likely to be an issue. This is a mostly theoretical problem that is even less likely to be litigated. If you can't use copliot at work because of this, your lawyers have too much say inside the company, or management is too risk averse.
Also fuck copyright law. It's messed up. I'm not saying get rid of copyrights, but it needs a serious overhaul that is not getting.
But almost: https://en.wikipedia.org/wiki/Ancillary_copyright_for_press_...
Copilot is a large-scale public distribution service which pumps out copyright violations which directly degrade incentives of competent software authors which are known to have brought about the code that Copilot wants to pump out.
It is magnifying the problem of the volume in play of a structural solvent that is dissolving the means to produce quality original software.
> It, or any human doing the same, is not doing anything morally wrong.
A person has placed an object into society, asking for certain treatment of it, upon which they base their livelihood. Knowingly disrespecting and ignoring the requests placed with it – which are in part embedded in a formal social structure of international law and the accompanying expectations of behavior – BY USING A GIGANTIC MACHINE TO DO SO… to support your livelihood… is not a moral failure? Can you confirm?
It’s the same if you don’t use the giant machine for it.
It doesn’t matter if you don’t see it or choose not to accept it as such. The original author may still stop working, and there is a completely unnecessary moral failure there.
>True. And those are license violations as well. But we aren't discussing those.
It feels like we are now talking about it since they choose to bring it up.
What do you mean? Open source is not just source available.
So the funding bodies can support you financially over the code you released, and other users can support you with improvements to make code more valuable and usable.
This is beyond source available, this how Free Software is designed and dreamed to work in practice.
Which is also present in some research software. You buy the source, but can't share/distribute. Only compile, customize and use.
https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/mast...
Maybe that's what the commenter meant but that's not what that language means. Open source licenses are, well, licenses, and if you use them then you're licensing your code. The L in GPL stands for license, for example.
There's no need to be pedantic over a word here.
[0]: https://news.ycombinator.com/item?id=33274282
"Strict/Strong Copyright" makes sense.
Strong and weak copyleft is a different matter, those terms do make sense. Maybe that's the source of confusion here.
People generally ask "why" people give away their life research for free, and I wanted to clarify that as a person who works in an HPC Center and makes research himself.
GitHub does a ton of work to formalize license management, it's odd that copilot ignored all of that.
1) People are disingenuous all the time, intentionally and otherwise. Doesn't necessarily mean that they are "bad". The reality is that people must frequently act cynically for the purposes of self-preservation.
2) With this sentence, I am only referring to the question of whether or not the code from co-pilot posted by Tim Davis "is" the original code. In my view, the transformations present in the code are on the level of what clang-format is capable of. I would argue that if you run code through clang-format, it is functionally "the same" as the original. I believe that this is probably obvious to nearly all experienced programmers, hence my point that I think that if someone is arguing to the contrary, they are being disingenuous. For people with skin in the game (like Graveley, quoted in the article), I would argue that they are being disingenuous in order to cover their asses. For people here on HN, I would argue that they are doing so out of naivety.
Obviously, you're free to disagree with any of this, and anything in my original post. If you feel like I am accusing you of being "bad", that is not my intention.
Perhaps I meant a normal debate and not something horrific and obvious.
As a thought experiment I wonder what the reaction would be if one day it was revealed that copilot is actually just minimum wage coders in Lagos who strip open source code of their attribution, rename a bunch of variables and reformat the code and then sell those snippets as a service at the behest of a gigantic company.
I'm using "pattern" quite loosely here as recent ruckuses come from the StableDiffusion image synthesis and CoPilot - n=2.
I have no idea what the ethical and legal long term ramifications are.
It seems, with copilot it's mixed. Sometimes it regurgitates blocks of existing code, other times it can apply context and patterns to create boilerplate code.
> Developers may wonder: is this AI that generates code, or AI that searches the web for open source code that might be suitable?
Developers who wonder this never tried/researched about copilot.
What it's actually usefull for is to generate code thightly integrated into yours, or doing boilerplate/repetitive stuff based on what you have already written.
Example : I have a base exception class and classes that inherit this class all with different names.
I'm writing error handling logic and only wrote the case for the first error class, with an error message and everything.
Copilot is able to generate the cases for all the other classes, with unique and descriptive error messages for each one.
If you only use it for this kind of stuff, it saves time and you don't have to worry about licenses/code laundering for simple cases like this.
I don't think of it as a tool that solves problems for me, I see it as a glorified autocomplete that understands code and is skilled at applying patterns from previous lines (e.g. in config files) and other files in your project in a way that usually makes sense.
This is a contrived example, but just to illustrate the kind of pattern matching I'm talking about, say I'm writing the following code:
VAR_PROJECT_A_VAR_A=$(curl http://localhost/PROJECT-A/VAR-A)
VAR_PROJECT_A_VAR_B=$(curl http://localhost/PROJECT-A/VAR-B)
VAR_PROJECT_X_VAR_Q5_X=
It will auto-complete it with the following, as expected:
$(curl http://localhost/PROJECT-X/VAR-Q5-X)
It feels like Copilot understands the context in variety of programming languages and configuration formats. If you're writing a Docker Compose file and define a Redis service that contains the flag `--port 8888`, it will automatically offer to autocomplete your exposed ports with 8888:8888. Without the --port flag it will suggest 6379, which is the default port for Redis.
These examples are trivial, but I find that these savings really add up and cut down on the amount of boilerplate and otherwise uninteresting busywork you have to do.
Of course the copyright-violating aspects of Copilot are inexcusable, but I still find Copilot to be useful in other ways.