501 karma · joined September 24, 2022
It's a bit like how non-compete clauses are unenforceable in California. The Copilot theft of intellectual property might be viewed as being too far from anyone's reasonable expectations?
We'll see how the legal battle turns out.
Microsoft Copilot is an abuse of open source. It is perhaps the greatest theft of intellectual property in human history.
We should do everything we can to defeat it.
That said, here is my Request For Comments regarding a slightly modified BSD 2-Clause License explicitly prohibiting Copilot-style use:
https://news.ycombinator.com/item?id=33458374
We need to do everything we can to defend open source software against Microsoft and the like.
What else can we do to protect ourselves from Microsoft Copilot?
My understanding is that Microsoft makes an effort to exclude all GPL software from its training. (Is this true?)
What we need is a more permissive MIT- or BSD-style license that defeats Copilot.
We just need to convince law-abiding companies that they must not use the code.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
That's word-for-word BSD license.The only change I made is adding clause 3:
3. Use in source or binary forms for the construction or operation
of predictive software generation systems is prohibited.The GPL is good for some purposes, but too restrictive for others.
I think we can constrain use with the third clause.
My question is, how should we word that clause?
3. Use in source or binary forms for the construction or operation
of predictive software generation systems is prohibited.
Hardly nonsense, but obviously you aren't equipped to judge. More about the BSD licenses: The No-AI 3-Clause Open Source Software License
Copyright (C) <YEAR> <COPYRIGHT HOLDER>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
3. Use in source or binary forms for the construction or operation
of predictive software generation systems is prohibited.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
https://bugfix-66.com/f0bb8770d4b89844d51588f57089ae5233bf67...https://bugfix-66.com/1efa93a5eb0cc12b3de7cd1dab8e471a2cc95e...
This is a generalization (and improvement on!) the typical "high-bit" varint encoding, which is simply an specialization with base 128 (used in git, for example).
See https://en.m.wikipedia.org/wiki/Variable-length_quantity
Garbage collection becomes almost a necessity when you have enormous concurrency and parallelism. I wonder whether you have experience writing such programs with pthread and malloc/free?
Go inherits from Oberon through Robert Griesemer, and from C through Ken Thompson (father of Unix) and Rob Pike (Bell Labs).
I don't bother with C anymore, except in small parts of code where every cycle counts. Just about anything you write in C can be mechanically translated to Go.
C++ shows us what NOT to do. I've used C++ for most of my professional programming career and it's simply an impediment. Huge waste of time and energy.
Without enormous training data from human victims, your "Artificial Intelligence" doesn't exist.
In the end, your "AI" is just huge interpolator, using matrix multiplications and max() or gelu() to interpolate the work of real intelligence: the human artists.
Once it's illegal, only criminals will use it. No first-world company will break the law to save money on artists. You think anyone who matters will secretly use a neural net trained in violation of copyright? Think again.
I say this as a person who writes GPU BLAS kernels professionally at a company you've heard of. I directly profit from this theft. But I also know it's wrong.
Microsoft won't legally be able to continue its abuse of GitHub. Copilot will be dead. OpenAI and Stability will not legally be able to profit from large-scale intellectual property theft. All these violations will end.
These are the most significant digits. The residual amateur piracy doesn't matter. It doesn't matter if random guy gets some leet neural net warez and uses it to make his desktop wallpaper.
It's a bit like saying we can't stop music piracy, now that Napster exists.
Remember the naive rallying cry among those who thought everyone should have the right to all music, without any compensation for the artist?
"Information wants to be free!" (https://www.theguardian.com/music/2013/feb/24/napster-music-...)
Napster was a peer-to-peer file sharing application. It originally launched on June 1, 1999, with an emphasis on digital audio file distribution. ... It ceased operations in 2001 after losing a wave of lawsuits and filed for bankruptcy in June 2002.
Use of the output of systems like Copilot or Stable Diffusion becomes a violation of copyright.
The weight tensors are illegal to possess, just like it's illegal to possess leaked Intel source code. The weights are like distilled intellectual property. You're distributing an enormous body of other people's work, to enable derivative work without attribution? Huge harm to society, make it illegal.
If you use the art in your product, on your website, etc., you risk legal action. Just like if I publish your album on my website. Illegal.
The companies that train these systems can't distribute them without risking legal action. So they won't do it. It's expensive to train these models. When it's illegal, the criminals will have to pay for the GPU time.
It will always exist in the black-market underground, but the civilized world makes it illegal.
That's where this is going, I hope. Best case scenario.
Napster was a peer-to-peer file sharing application. It originally launched on June 1, 1999, with an emphasis on digital audio file distribution. Audio songs shared on the service were typically encoded in the MP3 format. It was founded by Shawn Fanning, Sean Parker, and Hugo Sáez Contreras. As the software became popular, the company ran into legal difficulties over copyright infringement. It ceased operations in 2001 after losing a wave of lawsuits and filed for bankruptcy in June 2002.
Use of the output of systems like Copilot or Stable Diffusion becomes a violation of copyright. The weight tensors are illegal to possess, just like it's illegal to possess leaked Intel source code.
If you use the art in your product, on your website, etc., you risk legal action.
The companies that train these systems can't distribute them without risking legal action. So they won't do it. It's expensive to train these models.
It will always exist in the black-market underground, but the civilized world makes it illegal.
That's where this is going, I hope. Best case scenario.
This may appeal to naive people (students, hippies, etc.), for whom socialist/communist ideas are attractive, but it's poison in the real world because it eliminates the reward system that motivates most creative work. People work hard for credit or respect, if they're not working for money.
Ask yourself, why does the MIT License (https://opensource.org/licenses/MIT) contain the following text?
Copyright <YEAR> <COPYRIGHT HOLDER>
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
These systems are a mechanism that can regurgitate (digest, remix, emit) without attribution all of the world's open code and all of the world's art.With these systems, you're giving everyone the ability to plagiarize everything, effortlessly and unknowingly. No skill, no effort, no time required. No awareness of the sources of the derivative work.
My work is now your work. Everyone and his 10-year old brother can "write" my code (and derivatives), without ever knowing I wrote it, without ever knowing I existed. Everyone can use my hard work, regurgitated anonymously, stripped of all credit, stripped of all attribution, stripped of all identity and ancestry and citation.
It's a new kind of use not known (or imagined?) when the copyright laws were written.
Training must be opt in, not opt out.
Every artist, every creative individual, must EXPLICITLY OPT IN to having their hard work regurgitated anonymously by Copilot or Dall-E or whatever.
If you want to donate your code or your painting or your music so it can easily be "written" or "painted", in whole or in part, by everyone else, without attribution, then go ahead and opt in. Most people aren't so totally selfless.
But if an author or artist does not EXPLICITLY OPT IN, you can't use their creative work to train these systems.
All these code/art washing systems, that absorb and mix and regurgitate the hard work of creative people must be strictly opt in.
I say this as a person who writes deep-learning parallel linear algebra kernels professionally.
We've crossed a line here.
We're getting so soft and so fragile, how does it end?
“Hard times create strong men, strong men create good times, good times create weak men, and weak men create hard times." (G. Michael Hopf)
From one of the minds that brought you the Burrows-Wheeler transform. The problem is that the chosen plaintext attack is too cheap, so it's not interesting.
But XXTEA is a historical curiosity like the Finnish predictor compressor, so maybe!
Go doesn't do integer type conversions implicitly, to avoid the implicit-type-casting bugs endemic to C. Go (thankfully) doesn't allow an implicit conversion from int to byte. You must do the cast explicitly.
So you would have to say
to = append(to, byte(ctrl))
and that's correct.The site builds and executes the code you submit, and any correct solution is accepted.
The point was that being a C++ programmer is like being part of a horror movie.
I say that as a person who uses C++ in my day job. It's a nightmare.
Look at my submission history:
https://news.ycombinator.com/submitted?id=bugfix-66
Really remarkable tiny algorithms like Martin Rem's almost-forgotten Union-Find, the tiny bitwise linear string search from approximate-grep, hash treaps, Quicksearch (the fastest sublinear string search in practice), a simple state-of-the-art arithmetic coder/decoder, space-filling curves, the Shortest Path Faster algorithm, etc.
Next week I'll publish a fantastic generalization of bytewise integer encoding (like Varint or git's VLQ but better).
I'll do a Show HN for the site itself some time next year.
You can't understand a small block of code without running it in a debugger?
When you read code in a book, how do you understand it?
Some people will be better at this than others. Programming (algorithms, etc.) is not something everyone is equally good at. I wrote this puzzle after reading the x86 assembly original, which I believe was written in the 1980's. I never executed the original code, except in my mind, but I know how it works.