Of course not. Reading some copyrighted code can have you entirely excluded from some jobs - you can't become a wine contributor if it can be shown you ever read Windows source code and most likely conversely. Likewise, you can't ever write GPL VST 2 audio plug-ins if you ever had access to the official Steinberg VST2 SDK. Etc etc...
Did people forget why black box reverse engineering of software ever came to be ?
That's not a law. That's a cautionary decision made by those companies or projects to make it more difficult for competitors to argue that code was copied.
Those projects could hire people familiar with competitor code and assign them to competing projects if they wanted. The contributors could, in theory, write new code without using proprietary knowledge from their other companies. In practice, that's actually really difficult to do and even more difficult to prove in court, so companies choose the safe option and avoid hiring anyone with that knowledge altogether.
Now the question is whether or not GitHub's AI can be argued to have proprietary knowledge contained within. If your goal is to avoid any possibility that any court could argue that GitHub copilot funneled proprietary code (accessible to GitHub copilot) into your project, then you'd want to forbid contributors from using CoPilot.
If humans did that, it would be hard to argue they didn't outright copy the source.
When a machine does it, does it matter if the machine literally copied it from sources, or first transformed it into an isomorphic model in its "head" before regurgitating it back?
If yes, why doesn't parsing the source into an AST and then rendering it back also insulate you from abiding a copyright?
You've hit the nail on the head here. If this is okay, then neural nets are simply machines for laundering IP. We don't worry about people memorizing proprietary source code and "accidentally" using it because it's virtually impossible for a human to do that without realizing it. But it's trivial for a neural net to do it, so comparisons to humans applying their knowledge are flawed.
I'm not sure why it's different, but that's a common concern with music. For example: https://www.reddit.com/r/WeAreTheMusicMakers/comments/4v8u8d...
I mean, if you used CoPilot on one computer, stared at it intensely for 1 hour, closed that computer, and then typed out code in the other computer that you were contributing from, you technically didn't use it for the contribution, you just used CoPilot for your education only.
Intellectual property is itself a flawed concept in many ways. It's like asking someone to do physics research but forbidding them from using anything that Einstein wrote.
Patents should have reduced with product lifecycles, copyright should be a similar period; maybe 10-14 years.
My personal opinion.
Does it have flaws and can it be improved upon? Sure. I think society underweights what improvements to the patent system in particular could do. But such ideas are so niche they are hardly even written down, let alone debated at large. Society has bigger issues on its mind.
Like any evolved system IP law encounters new challenges over time and will be expected to evolve again, which it will surely do. A simple fix for Copilot is surely to just exclude all non-Apache2/BSD/MIT licensed code. Although there might technically still be advertising clause related issues, in practice hardly anyone cares enough to go to court over that.
No category of intellectual property covers thoughts, so the question has no relevance to the preceding statement.
If you just used it for inspiration, that's fine; if the way it was coded is a result of technical constraints, that's fine too; if the code is generic it's not distinctive enough to acquire copyright in the first place.
and they made those decisions based on the need to be able to argue in court that code was not copied.
>then you'd want to forbid contributors from using CoPilot
Right, the whole thing about arguing if copilot spits out a ten line function verbatim is not really what will be the problem, the problem is a human programmer still needs to run copilot and they will be the ones shown in the codebase as the author of the code (they could of course put a comment 'I got this bit from copilot' but might be cumbersome and anyway would hardly work as proof), although I suppose it would be not just proprietary code but code with an incompatible license.
> and they made those decisions based on the need to be able to argue in court that code was not copied.
Yeah, but only to make it easier for them to argue it; the letter of the law doesn't require it. You could argue that "Sure, I read Windows source code once -- but that was years ago and I can't remember shit of it, so anything I wrote now is my own invention." That might be harder to get the court to accept as a fact, but it's not a prima facie legal impossibility.
Cautionary decision =/= actual law.
Okay, so it's not law, it's just a policy compelled by preceding legal judgements. Case law, perhaps.
In general, you're absolutely allowed to learn programming techniques from anywhere. You can contribute software almost anywhere even if you've read Windows source code. Re-using everything you've learned, in your own creative creation, is part of fair use.
Your example is the very specific scenario where you're attempting to replicate an entire program, API, etc., to identical specifications. That's obviously not fair use. You're not dealing with little bits and pieces, you're dealing with an entire finished product.
No - google's 9 lines of sorting algorithm (iirc) copied from Oracle's implementation were not considered fair use in the Google / Oracle debacle.
Likewise SCO claimed that 80 copied lines (in the entirety of the Linux source code) were a copyright violation, even if we never had a legal answer to this.
The Supreme Court decided Google v. Oracle was fair use. It was 3 months ago:
https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_...
That's the highest form of precedent, the question has now been effectively settled (unless Congress ever changes the law).
Edit: added a dummy hash to end of URL so HN parses it correctly (thanks @thewakalix below)
> With respect to Oracle’s claim for relief for copyright infringement, judgment is entered in favor of Google and against Oracle except as follows: the rangeCheck code in TimSort.java and ComparableTimSort.java, and the eight decompiled files (seven “Impl.java” files and one“ACL” file), as to which judgment for Oracle and against Google is entered in the amount of zero dollars (as per the parties’ stipulation).
But I'm happy about all the new GPL programs created by Copilot
At least from a copyright point of few.
TL;DR: Having right, and having a easy defense in a law suite are not the same.
BUT separating it makes defending any law-suite against them because of copyright and patent law much easier. It also prevents any employee from "copying GPL(or similar) code verbatim from memory"(1) (or even worse the clipboard) sure the employee "should" not do it but by separating them you can be more sure they don't, and in turn makes it easier to defent in curt especially wrt. "independent creation".
There is also patent law shenanigans.
(1): Which is what GitHub Copilot is sometimes doing IMHO.
Perhaps Copilot behaves very differently from my own model, but I strongly suspect that the examples that have been going around twitter are outliers. Github's study agrees: https://docs.github.com/en/github/copilot/research-recitatio... (though of course this should be replicated independently).
I'm not really sure why we should consider Copilot legally different from a fancy pen – if you use it to write infringing code then that's infringement by the user, not the pen. This leaves the practical question of how often it will do so, and my impression is that it's not often.
That's the very reason why AI technologies can be useful in augmenting human intelligence; they see problems in a different light, can find alternate solutions, and generally just don't think like we do. There are many paths to a correct result and they needn't be isomorphic. Think of how a mathematical theorem may be proved in multiple ways, but the core logical implication of the proof within the larger context is still the same.
A human brain with an unlimited supply of pencils and paper, then.
This is wrong, this is not what Turing completeness is. It applies to computational models, not hardware.
You could argue that a stack is missing in my simplified model of the human brain, which would be correct. I used the simple model in allusion to the Chinese room thought experiment which doesn't require anything more than a dictionary.
[1]: https://en.wikipedia.org/wiki/Turing_completeness#Formal_def...
In computability theory, several closely related terms are used to describe the computational power of a computational system (such as an abstract machine or programming language)
But that doesn't mean it's the only thing it does or even that it does it frequently. It's like calling a human a parrot because he completed a line from a famous poem when the previous speaker left it unfinished.
The same argument was brought up with GPT too and has been long debunked. The authors (and others) checked samples against the training corpus and it only rarely copies unless you prod it to.
There also are cases where this happens unintentionally, but those are not the norm.
These aren't your crazy uncle's Markov chain chatbots. They're sophisticated bayesian models trained to approximate the functions that produced the content used in training.
Github could make a blacklist and tell Copilot never to suggest that code. Problem solved. You use one of the other 9 suggestions.
Semi-related, the GNU/Linux copypasta is now more familiar to some than the GNU project in general - this is a shame to me as I view the copypasta to be mocking people who worked very hard to achieve what GNU has achieved asking for some credit.
What provision of copyright law are you referring to? Are you conflating copyright law with arbitrary organizational policies?
They said
> Reading some copyrighted code can have you entirely excluded from some jobs
And they're right. It's because of corporate policies. They never said it was because of a law - you imagined that out of nothing.
@jcelerier flatly contradicted the statement that copyright doesn’t prevent you from reading something.
You’re right that @jceleier didn’t say their example was law, that’s because the example is a straw man in the context of what @lacker wrote.
And, who says improving or clarifying a comment is poor form? What is the edit button for, and why is it available once replies have been posted?
I think you added
> Which “it” are you referring to?...
Because I have a tab open and can see the old one!
Edit - I’m adding another point as an edit to show another way to communicate. Would any of your points been lost had you done something similar?
No that’s not true. I did not edit my posts after reading their reply, and the false accusation was that I changed my comment after it was replied to.
I didn’t challenge whether the question was in good faith, but I’ll just note that the relevant discussion of copyright got dropped in favor of an ad-hominem attack.
My question of which “it” was being referred to is a legitimate question that I believe clarified the intent of my comment, and I added it to make clear I was talking about what @lacker said, not what @jcelerier wrote.
> Edit - I’m adding another point as an edit to show another way to communicate. Would any of your points been lost had you done something similar?
This doesn’t answer my question of why an edit should not be made before I see any replies, nor of why any edit is “poor form” and according to whom. I made my edit immediately. I’m well aware of the practice of calling out edits with a note, I’ve done it many times. I don’t feel the need to call out every typo or clarification with an explicit note, especially when edited very soon after the original comment.
Replies exist before you read them.
> Of course not. Reading some copyrighted code can make you entirely excluded from some jobs - you can't become a wine contributor if it can be shown you ever read Windows source code and most likely conversely.
You can of course read the code. The consequences are thus increased limitations, like you say.
What you mention is not an absolute restriction from reading copyrighted material. You perhaps have to cease other activities as a result.
You've extrapolated "some organizations don't allow you to contribute if you've learned from the code of their direct competitor" to "You're not allowed to learn from copyrighted code", which is absurd.
If that's the case, it should be easy to kill a project like wine - just send every core contributor an email containing some Windows code.
The result would be WINE having an advantage to redo the snippet of code in a totally new and different way and MS being forced to show part of its private code, that would expose them also to patent trolls.
Would be a win-win situation for Wine and a lose-lose situation for MS.
...and the "if" is the important part. This is why Imaginary Property is so absurd.
https://wiki.winehq.org/Developer_FAQ#Who_can.27t_contribute...
I think OP has a point here, personally.
That's the first time I've heard copilot get described as copying little bits of code from the Internet. Copilot aggregates all github source code, removes licences from the code, and regurgitates the code without licenses.
Furthermore, both github and the programmers using copilot know this. Look at any one of these threads written by programmers about copilot. Using copilot is knowingly stealing the source code of others without attribution. Using copilot is literally humans stealing source code from others. Copilot was written for the purpose of taking other's code.
And Github themselves have stated that only 0.1% of the Copilot output contains chunks taken verbatim from the learning set. Of those, the vast majority are likely to be boilerplate so generic it's silly to claim ownership, and maybe sometimes impossible to avoid.
That's simply not true. You might be confusing idealism about software freedom with how both law and society define theft.
Edit: In this comment I refer to the US.
The copyright lobby hedge the term as "copyright theft" (i.e. not actual theft) in order to shift the societal understanding. Whish appears to have worked.
This is not a value judgement on copyright infringement. Just that technically it doesn't meet the legal definition of theft.
cf. The rather amusing satire of the "you wouldn't steal a handbag" campaign in the UK, which ran "you wouldn't download a bear!"
> Rather than "with the intention of depriving the owner", the US one says "with the intention of converting it to their use", which seems broad enough to cover exploiting a copy
...or rather, on the meaning of "converting". I've always theought of that as "changing", i.e. "it used to be one thing, and now it's something else". But copying IP only adds a use of it, it doesn't fundamentally change it in this sense: it is still available for the original proprietor's use. Is that really "converted"?
At least for the ordinary-English uuage of the word, I think it could be argued that it isn't. But then maybe this isn't just English; maybe the word "converting" also has some term-of-trade definition in that dictionary?
It seems unlikely this distinction would ever matter in a real court though.
That can’t be right.
And sure, nobody cares about your stupid binary tree, but do they care about GNU and the Linux kernel? Imagine someone trained an AI to specifically output Linux code, and used it to reproduce a working OS. Is that fair?
But the execution went wrong... They used raw data from repositories for training, without any kind of pre-processing.
That's a little broad. There's a wide range of licenses for software that explicitly allow precisely this.
This is silly. Co pilot is not reading by itself, someone pushed buttons telling it to read and write. If I clone the entire github without the licenses I am telling a robot to do it, doesn't make it right.
You're taking the "learning" metaphor too literally. Machine learning models do not learn. They can and do encode their training material into their weights and biases, too. That's what Copilot was doing, regurgitating parts of its training data line for line.
To me, that is not much different from transforming a copyrighted piece of work with, say, compression, a lossy codec or cropping. There are plenty of people who can learn to play Metallica songs really well, but if they copied specifics aspects of their work it would be copyright infringement, as well.
A human being can literally learn. We can understand abstract principles from one copyrighted work and apply them to another without actually infringing its copyright. A ML model does not understand, it is a statistical model. It is inherently a derivative work, and it often encodes the copyrighted work into was trained on into the model itself.
https://twitter.com/mitsuhiko/status/1410886329924194309
this is clearly copyright infringement, and if it isn't: it should be
https://github.com/search?q=float+Q_rsqrt%28+float+number+%2...
The only ways this argument could be less alarming to me is if people were bothered that it was writing the same Hello World as somebody else, or that it was naming variables "foo" and "bar".
Let's wait until we have a bulletproof, egregious, and inexcusable case of it lifting code until we panic.
If those portions of code are not licensed GPL, yes, it is copyright infringement.
Plus it is not "minor infringement" but code is being lifted verbatim - e.g. as has been demonstrated by the Quake square root code.
Feel free to test this theory in court ...
This would be interesting to test with AI and pop music.
And suddenly there is a world of robots composing, writing and painting for other robots. With us humans left out.
There should be a /s at the end, but legal world sometimes produces such convolutions. See, for example, the interpretation of the Commerce Clause in Gonzales v. Reich.
If you’re doing it from an analog format you bought for your own use (format shifting), it is fair use.
Until someone trains a DNN to generate Mickey Mouse-like cartoons I assume.
Problem is, the results too closely replicate the source, as in "Suck just as much". And thus there is no demand for this kind of thing.
It should be obvious that if the robot is simply scraping web sites and reproducing their text verbatim (without permission and without giving credit) that would be an infringement.
There are a lot of shades of gray between that and the other extreme, which is where it is scraping millions of sites, learning from them, and producing something that isn't all that similar to any of them. Both ends of the spectrum, and everywhere in between, are things that humans can do, but as machines get more capable this is getting trickier and trickier to sort out.
In this case, it sounds like it might be closer to the first example, since significant parts of the code will be verbatim.
Ultimately, I am hoping that such things cause us to completely rethink copyright law. The blurriness of it all is becoming too much to make laws around. We just need better mechanisms to reward people for creating valuable IP that they allow people to freely use as they please.
Copilot is redistributing it without the license.
So wait, if I write my own AI, lets call it cp, and train it on gnu-gcc.tar.gz with the goal of creating a commercial-compiler.tar.gz then I can license the result any way I want? After all most of the work was done by the computer.
> Copyright has concluded that reading by robots doesn’t count. Infringement is for humans only; when computers do it, it’s fair use.
Surely there's a limit to this. If I use a machine to produce something that just happens to exactly match a copyrighted work, now it's not infringement because of the method I used to produce it? That seems nonsensical, but maybe there's precedent for this too? (I have no idea what I'm talking about.)
As a business it is your responsibility to determine if this code-copying is worth a risk to your business.
Based on my experience, I'm pretty sure all corporate lawyers will disallow such code copying, till it has been tested in the court. It's just a matter of who will be the guinea pig.
Until then, it's basically "GPL" (and other licences) laundering with one-sided excuses.
Many of the current Machine Learning application try to teach AI to understand the concepts behind their training data and use that to do whatever they are trained to do.
But most (all?) fail to properly reach the goal in any more complicated cases, at least the kinds of models which are used for things like Copilot (GPT-3?).
Instead what this models learn can be described as a combination of some abstract understanding and verbatim snippets of input data of varying size.
As such while they sometimes generate "new" things based on "understanding" they also sometimes just copy things they have seen before!! (Like in the Quake code example where it even copied over some of the not-so "proper" comments expressing programmers frustration).
It's like a human not understanding programming or english or Latin letters but has a photographic memory and tries to somehow create something which seems to make sense by recombining existing verbatim snippets, sometimes while tweaking them.
I.e. if the snippets are small enough and tweaked enough it's covered by fair use and similar, BUT the person doing it doesn't know about this, so if a large remembered snippet matches verbatim it will put it in effectively copying code of a size which likely doesn't fall under fair use.
Also this is a well known problem, at least it was when I covered topics including ML ~5 years ago. I.e. good examples included extracting whole sequences of paragraphs of a book out of such a network or (more brilliantly) extracting thinks like peoples contact data based on their names or credit card information (in case of systems trained on mails).
So that Copilot is basically guaranteed to sometimes copy non super smalls snippets of code and potential comments in a way not-really appropriate wrt. copyright should have been a well know fact for the ML specialist in charge of this project.
This is a ridiculous conclusion. The ultimate destination of the robot actions' product is its user, i.e. a human. It is a clear corollary of the transitive law. Therefore, all human-focused legal concepts, including infringement, are applicable in such cases.
The absurdness of the conclusion cited above can be easily illustrated, as follows. Suppose that a person owns or rents an advanced robot (say, like Boston Dynamics' Spot, but better). He/she then programs it to break into someone's house and steal something valuable. All goes by the plan, the robot delivers the stolen goods to the rendezvous point and, if rented, gets returned. Now, according to the conclusion's logic, since a robot has done the actual "work", "it's fair use". Nonsense, right?
Just to clarify: I like the concept of GitHub Copilot (even though I have not yet tried this particular product). It offers various benefits, from pedagogical to adopting software engineering best practices to improving engineering productivity. However, I think that IP and legal aspects of this approach and specific product should be carefully studied and resolved in a consistent manner (e.g., prevent the model or system to output exact source code snippets).
Reading by a robot doesn't count. But injecting a robot between copyright material and a product doesn't magically strip the copyright from whatever it produces.
Then, I'm sorry, but you seem to have done a pretty bad job of summarizing that paper ?
My own take on summarizing it's conclusion would be :
"If the program can pass the Turing Test, then it should be legally liable, just like a human would."
(Yes, emphasis on the should here, but the way that you're presenting that quote might make readers think that that paper's conclusion is the opposite one !)
----
> Nobody is really being hurt when a new tool makes it easier to copy little bits of code from the internet.
Some of the examples from that paper are A&M Records, Inc. v. Napster (no comment) and White Smith Music Publ’g Co. v. Apollo Co. (piano rolls), and in that latter case we pretty much (?) got the whole Copyright Act of 1909 the very next year, where these “mechanical reproductions” were subjected to a statutory compulsory license.
So at the very least there should be concern about how Copilot might be eventually considered by the courts to facilitate copyright infringement and at the very least have to provide the source of its "insights" ?
(Attribution being the bare minimum that most of the software licenses require.)
What could be valid is a right to not mimic collections, but that would mean you cannot clone the Copilot, as input is mapped to a non-trivial collection of outputs.
Disclaimer: IANAL, but I do dabble in IT-law.
Security is a constant issue with humans writing code. Do we really want an "AI" that understands neither code nor security spitting out snippets of code to pasted into network services?
If Copilot ever becomes truly popular it's going to be an absolute security nightmare both from the code it suggests (just bad code, GIGO as you say), but also because adversaries will be gaming it by posting bad code for it to pick up and "learn" from.
It's insanity.
I suspect Copilot won't even be up to that standard.
My objection to that term is only because being at the beginning of a learning curve isn't bad per se. Neither is writing Pseudocode.
Your conclusion is right, however.
At this point, how hard would it be to produce a structurally similar "content-aware continuation/fill" for audio producers, film makers, etc, which suggests audio snippets or film snippets, trained from copyrighted source material?
If prompted by a black screen with some white dots, the video tool could suggest a sequence of frames beginning with text streaming into the distance "A long time ago in a galaxy far far away ..." and continue from there.
Normally we don't try to train models to regurgitate their inputs, but if we actually tried, I'm sure one could be made to reproduce the White Album or Thriller or whatever else.
Maybe nobody cares about that, but the problem is that Github's automated tool is not telling you what code it shows you is actually an exact copy of existing code, or how much of that existing code is being copied, or whether the existing code is licensed, or, if it is licensed, whether your copying is in accordance with the license or not. And without that information you can't possibly know whether what you are doing is legal or ethical. Sure, you could try to guess, but that sort of thing is not supposed to rely on guessing.
Saying it is just like user, maybe they start paying taxes like individuals without access to creative accountants pay.
Leeches without morals - Micro$oft
https://news.ycombinator.com/item?id=27710287
And reading is no infringement but writing maybe is.
Of course people are hurt, namely the original creators who spent years of work and whose work is potentially laundered, depending on how good this IP grabbing AI will get.
If it gets really good, some smug and well connected loser (e.g. the type who posts pictures of himself with a microphone on GitHub) will click a button, steal other people's hard work and start a "new" project that supersedes the old one.
Will co-pilot offer royalties for auto suggestions that are committed to code bases? I’m sure our ML can track how similar the commits were.
It’s always fascinating to me how we have the tech to take, but never to give. Pay the motherfucker you stole this shit from.
The proverbial: https://youtu.be/6TLo4Z_LWu4
Now suppose it's 10 years from now and it's trivial to build a proprietary competitor.
Glad to hear this. My warez group from here on out will only release binaries written collaboratively with a neural net trained on the best proprietary software available
This is a very false equivalency. AI and humans are different. First, AI is at best a slave, and likely a slave of a capital. Second - scale makes difference.
Plenty of examples show that it didn't learn that much and copy literal parts of code. At my school that would have been ground for plagiarism which weren't treated lightly.
But ultimately the human is OK-ing the code and committing it, basically as his own work most of the time. I'm reasonably sure that this may matter to courts.
This is, imo, unfortunate, as often the legal interpretation is based on a gross misunderstanding of how the tech works, but this is the way.
I don't think copilot should be legal according to my own interpretation but in this (rare) case I feel the "IANAL" tag applies not because I lack (legal) knowledge, but rather because I have (tech) knowledge that is likely absent from actual decision making on legal outcomes (therefore leading to different legal outcomes than how I would see things working).
Like when cp does it?
This is a non-sequitur. Why should it?
> And nobody cares if my ten-line "how to invert a binary tree" snippet is the same as someone else's.
Are you going to make up a rule for every length and type of code? What about twenty line? If ten lines are fine then surely twenty would be? How about pictures? If some code is then surely a picture or two wouldn't hurt? Let's just tweak the AI slightly so it regurgitates more code verbatim -- or do courts have to examine any change made to the AI and okay them?
> Nobody is really being hurt when a new tool makes it easier to copy little bits of code from the internet.
The Windows source code can be found on the internet. As a human you're allowed to read that if you have it. Try making an AI that copies bits of that into your code and release that on the internet.
STOP READING
Quite the opposite. We all get a tiny bit better with good information like this. This is what the internet should be for, evolving, learning from past mistakes, information availability.
If the discussion was “I clicked this button and got someone’s entire chat platform” that would be different. Words and sentences aren’t copy written, books are, so when exactly are a collection of words a book?
There is nuance, and the linked page has none. But that’s fine, that guy is free to pull his content off GitHub. This seems like a useful feature for other people who want to make things first and foremost.
If that were true, then 20 people could each steal a single chapter from a book, and one of the people could combine those 20 chapters into a new copyright-free book. That's clearly false.
And for your strawman, the assembly of uncopywritable components into a copywriten work, would still be a violation.
So we agree that copywriter is somewhere between the paragraphs and chapters and the book. So why are tiny code excerpts “a problem”?
https://twitter.com/luis_in_brief/status/1410242882523459585...
And this is a longer article about how IP and AI interact:
https://ilr.law.uiowa.edu/print/volume-101-issue-2/copyright...
I am not a lawyer, but I am capable of summarizing the thoughts of lawyers, so my take is that in general, fair use allows AI to be trained on copyrighted material, and humans who use this AI are not responsible for minor copyright infringement that happens accidentally as a result. However, this has not been tested in court in detail, so the consensus could change, and if you were extremely risk-averse you might want to avoid Copilot.
A key quote from the second link:
Copyright has concluded that reading by robots doesn’t count. Infringement is for humans only; when computers do it, it’s fair use.
Personally, I think law should allow Copilot. As a human, I am allowed to read copyrighted code and learn from it. An AI should be allowed to do the same thing. And nobody cares if my ten-line "how to invert a binary tree" snippet is the same as someone else's. Nobody is really being hurt when a new tool makes it easier to copy little bits of code from the internet.