[ML News] GitHub Copilot - Copyright, GPL, Patents & more | Brickit LEGO app | Distill goes on break
deep learning machine learning arxiv explained neural networks ai artificial intelligence paper copilot github copilot github copilot copyright github gpl github copilot gpl copilot copyright copilot gpl openai gpl openai copilot openai codex github copilot codex github automatic code copilot public data copilot code generation distill pub ml news machine learning news deep learning news github copilot news brickit lego brickit brickit app
#copilot #copyright #gpl

GitHub and OpenAI release Copilot, an AI-powered code autocomplete system that can generate entire functions, classes, and modules from mere definitions and docstrings. Copilot was trained on all public GitHub repositories, and this has a lot of people upset about questions on copyright, code licenses, social obligations, and how much you can profit from other people's work. I give my opinions on the issue in relation to copyright law, the GPL license, and terms of service. Further, we discuss the Brickit app to organize your LEGOs, Distill going on a break, and much more.

OUTLINE:
0:00 - Intro
0:20 - GitHub Copilot
6:55 - My opinion on Copilot & Copyright
17:25 - Facebook AI image similarity challenge
18:00 - Brickit app scans your LEGOs and suggests builds
18:40 - Distill journal goes on break
19:50 - Amazon uses algorithms to hire & fire Flex drivers
23:20 - Helpful Libraries: TF Decision Forests, Habitat, Falken, Brax
24:20 - AI-generated papers give science a hard time

References:
GitHub Copilot: AI pair programmer
https://twitter.com/gdb/status/1409890354132750336
https://twitter.com/rickhanlonii/status/1410020702028193798
https://copilot.github.com/
https://docs.github.com/en/github/copilot/research-recitation
https://docs.github.com/en/github/site-policy/github-terms-of-service#d-user-generated-content
https://tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3)#fulltext
https://www.gnu.org/licenses/gpl-faq.en.html#CanIUseGPLToolsForNF
https://www.legalzoom.com/knowledge/copyright/topic/copyright-protection-scope
https://en.wikipedia.org/wiki/Derivative_work
https://twitter.com/giffmana/status/1410320795222654981
https://twitter.com/search?q=copilot&src=typed_query&f=image

Facebook AI launches image similarity challenge
https://www.drivendata.org/competitions/79/competition-image-similarity-1-dev/

Brickit app sorts your LEGOs
https://brickit.app/?ref=producthunt&s=09
https://petapixel.com/2021/07/01/brickits-ai-camera-scans-your-lego-to-suggest-things-you-can-build/

Distill goes on break
https://distill.pub/2021/distill-hiatus/

Amazon uses Algorithms to fire Flex drivers
https://www.engadget.com/amazon-algorithms-fire-flex-delivery-drivers-055959081.html?guccounter=1

TensorFlow decision forests
https://blog.tensorflow.org/2021/05/introducing-tensorflow-decision-forests.html

Facebook AI habitat 2.0
https://ai.facebook.com/blog/habitat-20-training-home-assistant-robots-with-faster-simulation-and-new-benchmarks/

Google Falken trains game-playing agents
https://ai.googleblog.com/2021/06/quickly-training-game-playing-agents.html
https://github.com/google-research/falken

Google Brax: differentiable physics simulator
https://github.com/google/brax
https://arxiv.org/pdf/2106.13281.pdf

Fake science is getting faker
https://thenextweb.com/news/fake-science-faker-thanks-ai-syndication

Links:
TabNine Code Completion (Referral): http://bit.ly/tabnine-yannick
YouTube: https://www.youtube.com/c/yannickilcher
Twitter: https://twitter.com/ykilcher
Discord: https://discord.gg/4H8xxDF
BitChute: https://www.bitchute.com/channel/yannic-kilcher
Minds: https://www.minds.com/ykilcher
Parler: https://parler.com/profile/YannicKilcher
LinkedIn: https://www.linkedin.com/in/yannic-kilcher-488534136/
BiliBili: https://space.bilibili.com/1824646584

If you want to support me, the best thing to do is to share out the content :)

If you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):
SubscribeStar: https://www.subscribestar.com/yannickilcher
Patreon: https://www.patreon.com/yannickilcher
Bitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq
Ethereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2
Litecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m
Monero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n
 An open door. An open window. An open bottle. Open AI and GitHub invent Copilot and everyone freaks out about copyright. Welcome to ML News. Greg Brockman writes an AI pair programmer in your editor. It's powered by OpenAI Codex, a new AI system which can convert from natural language to code with increasing reliability. He's talking about GitHub Copilot. So Copilot is this system that's developed by Open AI and GitHub to be a super duper autocomplete. Basically, what you do is you write the name of a function or some kind of a class or actually anything you want, maybe along with a little bit of a doc string, and the system will complete code for you. Now, other than classical autocomplete systems, which are rule based and basically suggest to you what's possible, which variables fit here, which ones are in scope, this system goes much beyond this. It will try to guess what you're trying to do, and it will write this code for you or it will at least suggest it. So they have a bunch of examples here. For example, this parse expenses statement, the user writes the function name and then a few examples in the doc string as you would write if you were to program it and then Copilot implements the function itself. Now I've been using tab nine for a while, and I'm pretty happy with its suggestions, especially if you pair it up with a classic autocomplete, you get the classic autocomplete, which tells you what you are allowed to do essentially, and you get the AI autocomplete, which is trying to guess what you want to do. This enables things like if I catch an error that's called password error, it will already provide a log message for me that says password wrong. And there are many more examples where it just kind of infers what you want to do. And that's super helpful at times. Copilot by GitHub is this on steroid, it will implement entire functions, entire classes from a description or even just from a name of a function. Now it's not going to be perfect, of course, whether it actually helps or hurts and who does it help? Does it help the experienced programmer because they can write faster and just have to check for errors because there definitely are errors. If you see right here, in this expense function, the money is held as a floating point number, which is a big no no when you handle currency. On the other hand, does it help novice programmers because they see the implementations of functions they wouldn't know how to implement. However, they're probably going to not catch the mistakes there are. There's a lot of debate around this, but I'm pretty excited to see this honestly. Now the issue comes when you talk about the following. They say it's trained on billions of lines of public code. GitHub Copilot puts the knowledge you need at your fingertips saving you yada yada marketing. However, trained on billions of lines of public code. That means they essentially went to all of GitHub or the public repo and trained a giant language model on it. It's nothing more than this. It's essentially something like GPT-3 on code, probably augmented by a bit of syntaxing and whatnot. But it's not much more. It's just lots of data, lots of compute gives you a model of what people usually do when prompted with some sort of strings. So safe to say this won't replace programmers exactly anytime soon, as you can maybe see from this is even function implemented to extreme precision, of course, actually, I don't know if that's even real or a fake, because people have definitely been making fakes about Copilot. This is not going to happen anytime soon. What's more worrisome is, for example, OpenAI Copilot emitting personal information such as this open SSH private key, which someone left in their repository and now Copilot is just regurgitating it. In fact, on the FAQ page, GitHub Copilot says, yes, they sometimes output personal data, not because they do anything wrong, but because people left that personal data in their repositories. And the system is trained on those repositories. And sometimes it will decide that the most likely output is that training sample. And that gets us into an interesting topic. So the topic is does GitHub Copilot recite code from the training set? Now we've been having this discussion for a long time. Do these large language models actually understand what they're doing? Or are they simply kind of reproducing the training set? And if they reproduce the training set, by which degree do they integrate maybe multiple training set samples, combine them or do they just take one and kind of reformulate it a little bit? Who knows GitHub did an extensive study in which they found that only about 0.1% of the outputs are in some way reproductions from the training set. However, there is a big dispute about what exactly counts as a copy as a recitation and how different is different enough. And that gets us into the biggest issue, which is copyright. So the issue here is that GitHub and OpenAI essentially take all of this code, train their system with it, and they don't give you the copilot for free. Of course not. I mean, how are you going to live up to that name OpenAI? They're of course going to sell this. Now fair enough, they did something cool, they want to make money. However, the code they used in order to train the system isn't always freely available. At least that's what people think. Now, how would you feel if you wrote some code, you are the legal owner of the copyright to that code and GitHub simply trains a model on your code and then sells that model for other people to produce their code and they don't have to give you anything for it. Also, there is the issue of GPL license code, which requires that any modifications to it again become GPL license. The question is, if the model outputs code that was a result of training on GPL code, does the output of the system also become GPL licensed or not? And there is even more of an issue when it comes to patents on code. Patents are yet another category of intellectual property protection. And we've seen example of copilot reciting patent protected code. With all of this, I've been reading into software copyright and whatnot a little bit. And I want to give the disclaimer, I'm not a lawyer, this is not legal advice. This is entertainment purposes only if you want some actual opinion, go to an actual lawyer and pay them. But also what one can say is what Lucas Byer here says, with everybody hypothesizing about copilot and GPL license, let me add another perspective. Nobody knows and nothing whatsoever will happen until someone sues someone. Now I'm not going to hold my breath, which is true. Ultimately, a judge is going to have to decide case law has to be established and we'll take it from there. So what follows is my personal opinion on the matter trying to analyze this a little bit. Here's a bit of a diagram of what's happening currently in this system. You have the copilot system as a piece of software that contains maybe a neural network that has been trained on some stuff. How did this copilot come to be the copilot is built upon library such as pytorch, which are usually fairly openly licensed like an MIT license or something like this. So there's no problem there, then copilot of course needs copilot.py, the thing that you actually run to do the training and the inference, which also is authored by the copilot authors and therefore not an issue in our case. But then one of the inputs to copilot is of course the giant data set. Before we even get into licensing of that data, we have to talk about copyright itself. Everybody's talking about GPL license and whatnot. But GPL being a copy left license only pulls if copyright law even applies. So first we have to see does copyright law even say anything about using this code in this way. Copyright law works differently in different countries, but in general, it protects creative outputs of people. So if you do something, if you express yourself in some creative way, you obtain automatically copyright on that artistic expression. So if I write a song, then I am the owner of copyright for that song, I don't have to register it anywhere. I have it by default. Now as an owner of copyright, I get certain benefits. For example, I can decide whether or how my work is reproduced, which derivative works can be made and how they are treated, how it is distributed to the public, how it is performed, and so on. I have certain rights to the dissemination, reproduction and modification of my work. Now notice what's not on this list, enjoying the work, reading the book, reading the code. So as a copyright owner, once I've decided to display my work publicly, I can't actually prevent anyone from looking at it in the public space that I chose to display it. So one place we actually have to go is the Terms of Service of GitHub. So under user generated content, GitHub says you own content you create, but you allow us certain rights to it. And at some point, they say we need the legal right to do things like host your content, publish it and share it. This license includes the right to do things like copy it to our database, make backups, show it to you and other users, parse it into search index or otherwise analyze it. Now you can debate whether or not otherwise analyze it means they can run machine learning model on top of it given that they say this is in order to fulfill their service. But certainly you allow GitHub to display your code and anyone can go on GitHub and you cannot prevent them from reading your code. You cannot prevent them from actually downloading your code to a private hard drive. In fact, the ideas and algorithms behind code are not copyrightable. What's copyrightable is only your expression of those ideas. So I can't copy your code, but I can look at your code, learn from it and then express the same idea in my own code. If you want to protect an idea, that's the terms of patents. And that's a whole other game, you actually have to register for a patent, whereas copyright you obtain automatically. So if I can look at your code, learn from it and then reproduce it in my own way, why shouldn't machine be able to and that brings us to the second important point right here, which is the right to prepare derivative works based upon the work. Now, according to Wikipedia, a derivative work is an expressive creation that includes major copyrightable elements of an original previously created first work. Now the article here is mainly concerned with what copyright exists on the derivative work. But for our purposes, if something is a derivative work of something else, it is potentially in violation of the copyright of that first work. And when is something a derivative work if it contains major copyrightable elements of that original? Now, is this all a bit fuzzy? Yes, absolutely. And there is a giant gray area, of course. So if I look at an algorithm, and I implement that in my own code, what counts as containing major copyrightable elements of the original, if I use the same kind of indentations, if I use the same variable names, if I use the same structure, this isn't really an exact science. It is for judges to decide. But safe to say, there is a way where I can learn from other people's code, no matter the copyright situation, and I can then write something based upon that. And it is not a copyright violation. There is also many situations where the exact same thing is a copyright violation. And that all depends on how much of the copyrightable elements so not the ideas but the expression of the original work is contained in the derivative work. And that of course brings us all the way back to the discussion, do large language models simply recite the training data and change it a tiny bit or do they integrate the training data, learn from the training data, learn the patterns behind the training data and then come up with their own way of expressing those patterns. The truth is probably somewhere in between they're not exactly copying the training data, but it's also not the fact that they understand what's behind the training data. But safe to say there is a way where copyright might not even apply and then there is actually no problem right here. But let's assume for a moment that copyright does apply and things are actually in the realm of derivative works. Well, then there are still multiple questions right here. For example, here you see that there are multiple elements in the system, one is co pilot itself as a software. Now if you argue that somehow the copyright elements of the input data end up in the weights of the neural network and therefore the neural networks are essentially a derivative work of the input data, then co pilot itself might be in violation of copyright law. But even if co pilot isn't a violation of copyright law, still the output of co pilot might be in violation of copyright law. And that's going to probably have to be decided on a case by case basis. And it might even be that open AI might not be responsible for this, but the person actually using the co pilot tool to generate output, it's all a bit of a messy situation. Notice what we haven't talked about so far, GPL, because GPL, as I said, only applies when copyright applies. Now let's assume copyright applies. So here is where we get into licenses of code. In general, the training data contains broad categories of how code is licensed. And I've listed four of them here, there is the boring code, which is so boring that copyright doesn't apply literally, it's no expression of creativity. It's just formulaic code writing, maybe even auto generative code. Maybe even auto generated, not copyrightable, not a problem there. There is also the open category, which is so openly licensed that it's usable in any format like an MIT license. As long as you keep the disclaimers there, you're fine. Then there is the bunch of code that does not have a license at all. If there is no license, that essentially means that copyright owner simply gives GitHub the right to publish but retains all other copyright and everything we said so far. So either copilot or the output copilot generates or actually both might be a violation of the copyright of the unlicensed code. And then there is GPL code. So the GPL, the GNU general public license, in this case version three, but they're all kind of similar. I know an OT authorization, they are generally known as copy left licenses, because if a piece of code is licensed under the GPL, it means that if you were to modify this code, then your modifications also have to be licensed under the GPL. And being licensed under the GPL means things like if someone obtains a copy of the software, then also you have to provide a copy of the source code with that software. So the GPL is a bit like a virus that if it initially applies to a piece of software, someone else uses that software, maybe modifies it a little bit or includes it into their system, the whole system has to be under the GPL or they are in violation of the license. Of course, if copilot is found to be a derivative work of GPL licensed data, that will mean copilot itself would fall under the GPL and therefore OpenAI would have to give us its source. Now what source code is is a bit of a tricky business in the legal scene, but GPL defines it as the preferred form of the work for making modifications to it. Now, what is that exactly for OpenAI pilot, maybe it's not the weights of the neural network itself, because like, how can I modify them? Maybe it's the training set plus copilot.pi. Maybe it's even not even the training set, but it's actually the scraper for the training set as well as the training code, who knows? Now, GitHub and OpenAI can save themselves from having to release the source code of copilot if they only make it available over the network. In which case, you don't have to give out the source code license that would only be in the case of the A GPL. Regardless of that, the bigger question is what if the output of copilot is a derivative work of GPL licensed code? In that case, the output of copilot in a case by case basis would also have to be GPL licensed. And who's responsible for that? Probably you as a user of copilot, if you ask copilot for code, you get an output, I don't think it matters whether or not you know that it's a derivative work of some GPL licensed code, if you then use that code and build upon it and maybe sell software based on it, that software technically is under the GPL. So this was my little take on the copyright situation around OpenAI copilot. I think it's a great tool, but you can also see it brings a lot of difficulties with it, not necessarily technical difficulties, but difficulties from the human environment. So let me know in the comments what you think about the situation about copyright and whether I completely butchered some of the things. Thanks. Next news, speaking of copyright, Facebook AI launches a image similarity challenge where they want you to figure out where all the memes came from. So the challenge is essentially figuring out if someone took some photo and modified it in some way. And of course, the reason behind all of this is going to be to find the original creator of every meme so we can give them proper credit and glory they deserve. Nothing else, no one else. Image matching, very limited applications. Don't even worry about it. Next news, Brickit is a new app that scans your Legos and tells what you can build from them. Peter pixel has a good article about it and shows this demo video. The app will scan your collection of Legos and then tell you what you can do with it. So you can see it gives you a bunch of suggestions of what to do. Pretty neat. Now this is a really really cool app, though I wonder the things it proposes are often made out of maybe 20 parts and this pile has at least 500 or so. In any case, if you do have an iOS device, which I don't give it a try. It looks like a lot of fun. Next news in a more sad news, the Distill Pub website is going on a break. So you might know Distill as an online journal which publishes in a non traditional way they want very interactive articles, they want very visual articles explaining something they also publish commentaries threads, but also peer reviewed science, the frequency of publication hasn't been too high from them. But the things they have published generally were super well received. So one reason they cite is volunteer burnout, which given the high quality standards that they have, I can totally believe this is an enormous effort to keep this going to keep the quality high and you know, respect for doing it this long. The article makes another point, namely that self publication seems like the future in most cases, and I think the field generally agrees today scientific progress is more made through sharing archive publications and discussing them on social media, than it is through the peer review system of conferences. So even though it's sad to still will take a break what they're advocating for is a better future for science and that's a great thing. Okay, next news and gadget rights, Amazon is reportedly using algorithms to fire flex delivery drivers to Amazon being Amazon has this huge fleet of drivers that they don't necessarily hire it's kind of like an Uber model where the driver has an app and they get essentially subcontracted for driving stuff somewhere and these aren't few drivers, they are apparently millions of drivers doing this. Now keeping up some sort of HR department on some sort of human contact with millions of people is a challenge. So Amazon opted to just not do it. Instead, they use algorithms to track the performance of their drivers and if the performance sinks too low, they fire the drivers algorithmically. So the article states the frustration of some of these drivers saying the system can often fire workers seemingly without good cause according to the report, one worker said her rating fell after she was forced to halt deliveries due to a nail in her tire. She succeeded in boosting it to great over the next several weeks, but her account was eventually terminated for violating Amazon's terms of service. She contested the firing but the company wouldn't reinstate her. Another driver was unable to deliver packages to an apartment complex because it was closed with the gate locked and the residents wouldn't answer their phones. In another building an Amazon locker failed to open. So their own system failed and they punished their drivers for it. His rating also dropped and he spent six weeks trying to raise it only to be fired for falling below a prescribed level. If a driver feels they're wrongly terminated, some feel there's not much recourse either. Driver must spend $200 to dispute any termination and many have said it's not worth the effort. Whenever there's an issue, there is no support said Koch who is 29. It's you against the machine so you don't even try. Now here you could try to make a nuanced point that these people aren't employees, that it's simply not a practical solution to manage these as employees, that overall the system might be better off, that a lot of drivers are having good experiences, that this is just a necessity of managing so many people. But, but, see, not so long ago I wanted to get some Amazon gift cards for my Discord admins. They're doing a good job. I wanted to give them some thanks so I tried to buy some gift cards and Amazon locked me out of my account security reasons. So I verified my identity. All good. Tried to buy the gift cards again. They locked me out again. Verified my identity. Tried a third time. Now they locked me out permanently. So I'm trying to contact support. Guess what you have to do to contact support. Log in. Oh great. Guess what you have to do to get a support contact number. Log in. Oh great. Tried emailing them. Nothing happened. Tried calling them. They say they'll fix it. They haven't fixed it. For months now. They said I should make a new account. Great. Verified phone number of the new account. Your phone is already associated with an account. My old account has all my collection of audiobooks and ebooks on it and this is just splendid. So I definitely feel with these drivers if it's you against the machine. Amazon ranks just about second to PayPal when it comes to actual customer support. So I'm not going to make the nuance point here. Screw you Amazon. Screw you. You deserve every bit of negative press that you're getting here. At least when there's an issue have some support for your drivers who get a nail stuck in their tire. Yes I'm using a journalistic medium to settle a personal dispute. What are you going to do about it? Get me my account back. Okay next we're going to look at some helpful libraries. We should make this a segment. Helpful libraries. Helpful libraries. Okay. TensorFlow introduces decision forests. New algorithm. Never heard of it before. Give it a try. Decision forests in TensorFlow. Facebook. Habitat. 3D environment to train your autonomous robot to get you something from the fridge when you're just too lazy. Have fun with your diabetes. Try it out. Google research falcon trains your game playing agent. You give it a little bit of a demonstration. It learns how to play your game and test it for you and find bugs. So now you don't even have to play your game while you don't walk to the fridge. Good job. And lastly did you ever want to figure out what the gradient is of your face smashing against the wall. Well now you can with Google AIs, BRACs, you can simulate physics in a differentiable way on a TPU really fast. And in our last news, TNW writes fake science is getting faker thanks AI. Journals are retracting more and more papers because they're not by the authors they claim to be. Now of course you always know it's a serious article when there is a very futuristic robot on the picture in the front. But the article is actually a good article talking about the rise of AI generated papers and how there is a massive upsurge in retractions among scientific publications. But besides that I like the intro they say. They say of course sometimes papers get retracted because of the authors made an honest mistake in the research. In more than half the cases however it's because of academic misconduct or fraud. Up until a decade ago this sort of behavior was more or less limited to researchers falsifying experimental data or skewing results to favor their theory. The more sophisticated technology has become however the more things have gotten a lot more complicated. So the rest of the article talks about how people add big names to their papers, how people generate fake authors even how people generate even fake papers and so on. You know that's a whole big problem but I still think that people being shady with the results of their research is still the biggest problem. There's just not too many retractions of it in machine learning because you can never reproduce someone else's paper. If you didn't get my numbers you just did it wrong. So what is the real solution against fake science? It's probably hard to know but I guess an approach to a solution would be to have some sort of a distributed checking mechanism where you can aggregate opinions from all around the world about a given topic and then sort of look at everything and evaluate for yourself rather than relying on a centralized committee to do it for you. Be that for fake news or fake science or fake anything I think that's the only way forward because any centralized institutions will eventually get either corrupted or gained because they have some sort of scoring system. But I'm interested in what you have to say. All of this is a problem. It's not exactly clear how we go about making this better. Can we even make it better or can we just find better ways to ignore the fake things? All right that was it from me for this week's ML news. I hope you had fun. I hope you don't get replaced by a machine anytime soon and most of all I hope I don't get replaced by a machine anytime soon. So wish you a happy day and goodbye.
 An open door.
 An open window.
 An open bottle.
 Open AI and GitHub invent Copilot and everyone freaks out about copyright.
 Welcome to ML News.
 Greg Brockman writes an AI pair programmer in your editor.
 It's powered by OpenAI Codex, a new AI system which can convert from natural language to code with increasing reliability.
 He's talking about GitHub Copilot.
 So Copilot is this system that's developed by Open AI and GitHub to be a super duper autocomplete.
 Basically, what you do is you write the name of a function or some kind of a class or actually anything you want, maybe along with a little bit of a doc string, and the system will complete code for you.
 Now, other than classical autocomplete systems, which are rule based and basically suggest to you what's possible, which variables fit here, which ones are in scope, this system goes much beyond this.
 It will try to guess what you're trying to do, and it will write this code for you or it will at least suggest it.
 So they have a bunch of examples here.
 For example, this parse expenses statement, the user writes the function name and then a few examples in the doc string as you would write if you were to program it and then Copilot implements the function itself.
 Now I've been using tab nine for a while, and I'm pretty happy with its suggestions, especially if you pair it up with a classic autocomplete, you get the classic autocomplete, which tells you what you are allowed to do essentially, and you get the AI autocomplete, which is trying to guess what you want to do.
 This enables things like if I catch an error that's called password error, it will already provide a log message for me that says password wrong.
 And there are many more examples where it just kind of infers what you want to do.
 And that's super helpful at times. Copilot by GitHub is this on steroid, it will implement entire functions, entire classes from a description or even just from a name of a function.
 Now it's not going to be perfect, of course, whether it actually helps or hurts and who does it help? Does it help the experienced programmer because they can write faster and just have to check for errors because there definitely are errors.
 If you see right here, in this expense function, the money is held as a floating point number, which is a big no no when you handle currency.
 On the other hand, does it help novice programmers because they see the implementations of functions they wouldn't know how to implement. However, they're probably going to not catch the mistakes there are.
 There's a lot of debate around this, but I'm pretty excited to see this honestly.
 Now the issue comes when you talk about the following. They say it's trained on billions of lines of public code.
 GitHub Copilot puts the knowledge you need at your fingertips saving you yada yada marketing.
 However, trained on billions of lines of public code. That means they essentially went to all of GitHub or the public repo and trained a giant language model on it.
 It's nothing more than this. It's essentially something like GPT-3 on code, probably augmented by a bit of syntaxing and whatnot.
 But it's not much more. It's just lots of data, lots of compute gives you a model of what people usually do when prompted with some sort of strings.
 So safe to say this won't replace programmers exactly anytime soon, as you can maybe see from this is even function implemented to extreme precision, of course, actually, I don't know if that's even real or a fake, because people have definitely been making fakes about Copilot.
 This is not going to happen anytime soon. What's more worrisome is, for example, OpenAI Copilot emitting personal information such as this open SSH private key, which someone left in their repository
 and now Copilot is just regurgitating it. In fact, on the FAQ page, GitHub Copilot says, yes, they sometimes output personal data, not because they do anything wrong, but because people left that personal data in their repositories.
 And the system is trained on those repositories. And sometimes it will decide that the most likely output is that training sample.
 And that gets us into an interesting topic. So the topic is does GitHub Copilot recite code from the training set? Now we've been having this discussion for a long time.
 Do these large language models actually understand what they're doing? Or are they simply kind of reproducing the training set? And if they reproduce the training set, by which degree do they integrate maybe multiple training set samples, combine them or do they just take one and kind of reformulate it a little bit?
 Who knows GitHub did an extensive study in which they found that only about 0.1% of the outputs are in some way reproductions from the training set.
 However, there is a big dispute about what exactly counts as a copy as a recitation and how different is different enough. And that gets us into the biggest issue, which is copyright.
 So the issue here is that GitHub and OpenAI essentially take all of this code, train their system with it, and they don't give you the copilot for free. Of course not. I mean, how are you going to live up to that name OpenAI?
 They're of course going to sell this. Now fair enough, they did something cool, they want to make money. However, the code they used in order to train the system isn't always freely available. At least that's what people think.
 Now, how would you feel if you wrote some code, you are the legal owner of the copyright to that code and GitHub simply trains a model on your code and then sells that model for other people to produce their code and they don't have to give you anything for it.
 Also, there is the issue of GPL license code, which requires that any modifications to it again become GPL license. The question is, if the model outputs code that was a result of training on GPL code, does the output of the system also become GPL licensed or not?
 And there is even more of an issue when it comes to patents on code. Patents are yet another category of intellectual property protection. And we've seen example of copilot reciting patent protected code. With all of this, I've been reading into software copyright and whatnot a little bit.
 And I want to give the disclaimer, I'm not a lawyer, this is not legal advice. This is entertainment purposes only if you want some actual opinion, go to an actual lawyer and pay them. But also what one can say is what Lucas Byer here says, with everybody hypothesizing about copilot and GPL license, let me add another perspective.
 Nobody knows and nothing whatsoever will happen until someone sues someone. Now I'm not going to hold my breath, which is true. Ultimately, a judge is going to have to decide case law has to be established and we'll take it from there.
 So what follows is my personal opinion on the matter trying to analyze this a little bit. Here's a bit of a diagram of what's happening currently in this system.
 You have the copilot system as a piece of software that contains maybe a neural network that has been trained on some stuff. How did this copilot come to be the copilot is built upon library such as pytorch, which are usually fairly openly licensed like an MIT license or something like this.
 So there's no problem there, then copilot of course needs copilot.py, the thing that you actually run to do the training and the inference, which also is authored by the copilot authors and therefore not an issue in our case.
 But then one of the inputs to copilot is of course the giant data set. Before we even get into licensing of that data, we have to talk about copyright itself. Everybody's talking about GPL license and whatnot.
 But GPL being a copy left license only pulls if copyright law even applies. So first we have to see does copyright law even say anything about using this code in this way. Copyright law works differently in different countries, but in general, it protects creative outputs of people.
 So if you do something, if you express yourself in some creative way, you obtain automatically copyright on that artistic expression. So if I write a song, then I am the owner of copyright for that song, I don't have to register it anywhere.
 I have it by default. Now as an owner of copyright, I get certain benefits. For example, I can decide whether or how my work is reproduced, which derivative works can be made and how they are treated, how it is distributed to the public, how it is performed, and so on.
 I have certain rights to the dissemination, reproduction and modification of my work. Now notice what's not on this list, enjoying the work, reading the book, reading the code.
 So as a copyright owner, once I've decided to display my work publicly, I can't actually prevent anyone from looking at it in the public space that I chose to display it. So one place we actually have to go is the Terms of Service of GitHub.
 So under user generated content, GitHub says you own content you create, but you allow us certain rights to it. And at some point, they say we need the legal right to do things like host your content, publish it and share it. This license includes the right to do things like copy it to our database, make backups, show it to you and other users, parse it into search index or otherwise analyze it.
 Now you can debate whether or not otherwise analyze it means they can run machine learning model on top of it given that they say this is in order to fulfill their service. But certainly you allow GitHub to display your code and anyone can go on GitHub and you cannot prevent them from reading your code.
 You cannot prevent them from actually downloading your code to a private hard drive. In fact, the ideas and algorithms behind code are not copyrightable. What's copyrightable is only your expression of those ideas. So I can't copy your code, but I can look at your code, learn from it and then express the same idea in my own code.
 If you want to protect an idea, that's the terms of patents. And that's a whole other game, you actually have to register for a patent, whereas copyright you obtain automatically. So if I can look at your code, learn from it and then reproduce it in my own way, why shouldn't machine be able to and that brings us to the second important point right here, which is the right to prepare derivative works based upon the work.
 Now, according to Wikipedia, a derivative work is an expressive creation that includes major copyrightable elements of an original previously created first work. Now the article here is mainly concerned with what copyright exists on the derivative work. But for our purposes, if something is a derivative work of something else, it is potentially in violation of the copyright of that first work.
 And when is something a derivative work if it contains major copyrightable elements of that original? Now, is this all a bit fuzzy? Yes, absolutely. And there is a giant gray area, of course. So if I look at an algorithm, and I implement that in my own code, what counts as containing major copyrightable elements of the original, if I use the same kind of indentations, if I use the same variable names, if I use the same structure, this isn't really an exact science.
 It is for judges to decide. But safe to say, there is a way where I can learn from other people's code, no matter the copyright situation, and I can then write something based upon that. And it is not a copyright violation. There is also many situations where the exact same thing is a copyright violation. And that all depends on how much of the copyrightable elements so not the ideas but the expression of the original work is contained in the derivative work.
 And that of course brings us all the way back to the discussion, do large language models simply recite the training data and change it a tiny bit or do they integrate the training data, learn from the training data, learn the patterns behind the training data and then come up with their own way of expressing those patterns.
 The truth is probably somewhere in between they're not exactly copying the training data, but it's also not the fact that they understand what's behind the training data. But safe to say there is a way where copyright might not even apply and then there is actually no problem right here.
 But let's assume for a moment that copyright does apply and things are actually in the realm of derivative works. Well, then there are still multiple questions right here. For example, here you see that there are multiple elements in the system, one is co pilot itself as a software.
 Now if you argue that somehow the copyright elements of the input data end up in the weights of the neural network and therefore the neural networks are essentially a derivative work of the input data, then co pilot itself might be in violation of copyright law.
 But even if co pilot isn't a violation of copyright law, still the output of co pilot might be in violation of copyright law. And that's going to probably have to be decided on a case by case basis. And it might even be that open AI might not be responsible for this, but the person actually using the co pilot tool to generate output, it's all a bit of a messy situation.
 Notice what we haven't talked about so far, GPL, because GPL, as I said, only applies when copyright applies. Now let's assume copyright applies. So here is where we get into licenses of code. In general, the training data contains broad categories of how code is licensed. And I've listed four of them here, there is the boring code, which is so boring that copyright doesn't apply literally, it's no expression of creativity. It's just formulaic code writing, maybe even auto generative code.
 Maybe even auto generated, not copyrightable, not a problem there. There is also the open category, which is so openly licensed that it's usable in any format like an MIT license. As long as you keep the disclaimers there, you're fine. Then there is the bunch of code that does not have a license at all. If there is no license, that essentially means that copyright owner simply gives GitHub the right to publish but retains all other copyright and everything we said so far.
 So either copilot or the output copilot generates or actually both might be a violation of the copyright of the unlicensed code. And then there is GPL code. So the GPL, the GNU general public license, in this case version three, but they're all kind of similar. I know an OT
 authorization, they are generally known as copy left licenses, because if a piece of code is licensed under the GPL, it means that if you were to modify this code, then your modifications also have to be licensed under the GPL. And being licensed under the GPL means things like if someone obtains a copy of the software, then also you have to provide a copy of the source code with that software. So the GPL is a bit like a virus that if it initially applies to a
 piece of software, someone else uses that software, maybe modifies it a little bit or includes it into their system, the whole system has to be under the GPL or they are in violation of the license. Of course, if copilot is found to be a derivative work of GPL licensed data, that will mean copilot itself would fall under the GPL and therefore OpenAI would have to give us its source. Now what source code is is a bit of a tricky business in the legal scene, but GPL defines it as the preferred
 form of the work for making modifications to it. Now, what is that exactly for OpenAI pilot, maybe it's not the weights of the neural network itself, because like, how can I modify them? Maybe it's the training set plus copilot.pi. Maybe it's even not even the training set, but it's actually the scraper for the training set as well as the training code, who knows? Now, GitHub and OpenAI can save themselves from having to release the source code of copilot if they only make it available over the network.
 In which case, you don't have to give out the source code license that would only be in the case of the A GPL. Regardless of that, the bigger question is what if the output of copilot is a derivative work of GPL licensed code? In that case, the output of copilot in a case by case basis would also have to be GPL licensed.
 And who's responsible for that? Probably you as a user of copilot, if you ask copilot for code, you get an output, I don't think it matters whether or not you know that it's a derivative work of some GPL licensed code, if you then use that code and build upon it and maybe sell software based on it, that software technically is under the GPL.
 So this was my little take on the copyright situation around OpenAI copilot. I think it's a great tool, but you can also see it brings a lot of difficulties with it, not necessarily technical difficulties, but difficulties from the human environment. So let me know in the comments what you think about the situation about copyright and whether I completely butchered some of the things. Thanks.
 Next news, speaking of copyright, Facebook AI launches a image similarity challenge where they want you to figure out where all the memes came from. So the challenge is essentially figuring out if someone took some photo and modified it in some way. And of course, the reason behind all of this is going to be to find the original creator of every meme so we can give them proper credit and glory they deserve.
 Nothing else, no one else. Image matching, very limited applications. Don't even worry about it.
 Next news, Brickit is a new app that scans your Legos and tells what you can build from them. Peter pixel has a good article about it and shows this demo video. The app will scan your collection of Legos and then tell you what you can do with it. So you can see it gives you a bunch of suggestions of what to do. Pretty neat.
 Now this is a really really cool app, though I wonder the things it proposes are often made out of maybe 20 parts and this pile has at least 500 or so. In any case, if you do have an iOS device, which I don't give it a try. It looks like a lot of fun.
 Next news in a more sad news, the Distill Pub website is going on a break. So you might know Distill as an online journal which publishes in a non traditional way they want very interactive articles, they want very visual articles explaining something they also publish
 commentaries threads, but also peer reviewed science, the frequency of publication hasn't been too high from them. But the things they have published generally were super well received. So one reason they cite is volunteer burnout, which given the high quality standards that they have, I can totally believe this is an enormous effort to keep this going to keep the quality high and you know, respect for doing it this long.
 The article makes another point, namely that self publication seems like the future in most cases, and I think the field generally agrees today scientific progress is more made through sharing archive publications and discussing them on social media, than it is through the peer review system
 of conferences. So even though it's sad to still will take a break what they're advocating for is a better future for science and that's a great thing.
 Okay, next news and gadget rights, Amazon is reportedly using algorithms to fire flex delivery drivers to Amazon being Amazon has this huge fleet of drivers that they don't necessarily hire it's kind of like an Uber model where the driver has an app and they get
 essentially subcontracted for driving stuff somewhere and these aren't few drivers, they are apparently millions of drivers doing this. Now keeping up some sort of HR department on some sort of human contact with millions of people is a challenge.
 So Amazon opted to just not do it. Instead, they use algorithms to track the performance of their drivers and if the performance sinks too low, they fire the drivers algorithmically. So the article states the frustration of some of these drivers saying the system can often
 fire workers seemingly without good cause according to the report, one worker said her rating fell after she was forced to halt deliveries due to a nail in her tire. She succeeded in boosting it to great over the next several weeks, but her account was eventually terminated for violating Amazon's terms of service.
 She contested the firing but the company wouldn't reinstate her. Another driver was unable to deliver packages to an apartment complex because it was closed with the gate locked and the residents wouldn't answer their phones. In another building an Amazon locker failed to open.
 So their own system failed and they punished their drivers for it. His rating also dropped and he spent six weeks trying to raise it only to be fired for falling below a prescribed level. If a driver feels they're wrongly terminated, some feel there's not much recourse either.
 Driver must spend $200 to dispute any termination and many have said it's not worth the effort. Whenever there's an issue, there is no support said Koch who is 29. It's you against the machine so you don't even try.
 Now here you could try to make a nuanced point that these people aren't employees, that it's simply not a practical solution to manage these as employees, that overall the system might be better off, that a lot of drivers are having good experiences, that this is just a necessity of managing so many people.
 But, but, see, not so long ago I wanted to get some Amazon gift cards for my Discord admins. They're doing a good job. I wanted to give them some thanks so I tried to buy some gift cards and Amazon locked me out of my account security reasons.
 So I verified my identity. All good. Tried to buy the gift cards again. They locked me out again. Verified my identity. Tried a third time. Now they locked me out permanently.
 So I'm trying to contact support. Guess what you have to do to contact support. Log in. Oh great. Guess what you have to do to get a support contact number. Log in. Oh great. Tried emailing them. Nothing happened. Tried calling them. They say they'll fix it. They haven't fixed it.
 For months now. They said I should make a new account. Great. Verified phone number of the new account. Your phone is already associated with an account. My old account has all my collection of audiobooks and ebooks on it and this is just splendid. So I definitely feel with these drivers if it's you against the machine.
 Amazon ranks just about second to PayPal when it comes to actual customer support. So I'm not going to make the nuance point here. Screw you Amazon. Screw you. You deserve every bit of negative press that you're getting here. At least when there's an issue have some support for your drivers who get a nail stuck in their tire.
 Yes I'm using a journalistic medium to settle a personal dispute. What are you going to do about it? Get me my account back.
 Okay next we're going to look at some helpful libraries. We should make this a segment. Helpful libraries. Helpful libraries. Okay. TensorFlow introduces decision forests. New algorithm. Never heard of it before. Give it a try. Decision forests in TensorFlow.
 Facebook. Habitat. 3D environment to train your autonomous robot to get you something from the fridge when you're just too lazy. Have fun with your diabetes. Try it out. Google research falcon trains your game playing agent. You give it a little bit of a demonstration. It learns how to play your game and test it for you and find bugs.
 So now you don't even have to play your game while you don't walk to the fridge. Good job. And lastly did you ever want to figure out what the gradient is of your face smashing against the wall. Well now you can with Google AIs, BRACs, you can simulate physics in a differentiable way on a TPU really fast.
 And in our last news, TNW writes fake science is getting faker thanks AI. Journals are retracting more and more papers because they're not by the authors they claim to be. Now of course you always know it's a serious article when there is a very futuristic robot on the picture in the front.
 But the article is actually a good article talking about the rise of AI generated papers and how there is a massive upsurge in retractions among scientific publications. But besides that I like the intro they say. They say of course sometimes papers get retracted because of the authors made an honest mistake in the research.
 In more than half the cases however it's because of academic misconduct or fraud. Up until a decade ago this sort of behavior was more or less limited to researchers falsifying experimental data or skewing results to favor their theory.
 The more sophisticated technology has become however the more things have gotten a lot more complicated. So the rest of the article talks about how people add big names to their papers, how people generate fake authors even how people generate even fake papers and so on.
 You know that's a whole big problem but I still think that people being shady with the results of their research is still the biggest problem. There's just not too many retractions of it in machine learning because you can never reproduce someone else's paper.
 If you didn't get my numbers you just did it wrong. So what is the real solution against fake science? It's probably hard to know but I guess an approach to a solution would be to have some sort of a distributed checking mechanism where you can aggregate opinions from
 all around the world about a given topic and then sort of look at everything and evaluate for yourself rather than relying on a centralized committee to do it for you. Be that for fake news or fake science or fake anything I think that's the only way forward because any centralized institutions will eventually get either corrupted or gained because they have some sort of scoring system.
 But I'm interested in what you have to say. All of this is a problem. It's not exactly clear how we go about making this better. Can we even make it better or can we just find better ways to ignore the fake things?
 All right that was it from me for this week's ML news. I hope you had fun. I hope you don't get replaced by a machine anytime soon and most of all I hope I don't get replaced by a machine anytime soon. So wish you a happy day and goodbye.