Live data from Hacker News

Give up GitHub: The time has come

sfconservancy.org

201–210 of 585 posts

Re: Give up GitHub: The time has come

#201

> If it is, as you claim, permissible to train the model (and allow users to generate code based on that model) on any code whatsoever and not be bound by any licensing terms, why did you choose to only train Copilot's model on FOSS? For example, why are your Microsoft Windows and Office codebases not in your training set? This is my favorite question about Copilot ever.

Github's position doesn't appear to offer any advantage with regards to Copilot's creation.

OpenAI Codex (which copilot grew out of IIRC), Amazon and Salesforce versions of Copilot exist. Huggingface Bloom was trained on a sizeable amount of public code. Tab9, now behind, was one of the earliest to combine public code repositories with Deep learning for smarter autocomplete. The data requirements for Transformer scaling mean any and all public facing repositories will be assimilated, whether Github, Gitlab, Stackoverflow or so on.

Wish more energy was spent on how to fund pretrained models that will also run efficiently on CPUs, fine-tuneable to one's language and local environment. Removing reliance on cloud services.

Curious about people's opinions on Dall-E 2 or Google Image-gen, which parallel pretty much the same thing with Renders, Illustrations and Paintings, or upcoming models doing the same for voice acting and music. Coders seem more excited about the potential of those tools.

Re: Give up GitHub: The time has come

#202

> If it is, as you claim, permissible to train the model (and allow users to generate code based on that model) on any code whatsoever and not be bound by any licensing terms, why did you choose to only train Copilot's model on FOSS? For example, why are your Microsoft Windows and Office codebases not in your training set? This is my favorite question about Copilot ever.

Perhaps because there is a (small) risk of leaking confidential information through its output.

But that's not as damning as it sounds.

First, we know Copilot, if given the right prompt and told to autocomplete repeatedly without any manual input, can regurgitate bits of code seen many times in many different repositories, like the famous Quake fast inverse square root function and the text of licenses. That doesn't mean it does so under normal prompts and normal use. Perhaps it does sometimes, and that would be a real concern. But any regurgitation that isn't under normal use, which only happens if the user is trying to make Copilot regurgitate, is not a problem when it comes to copyright violations of open source code (since anyone trying to violate an open source license can do so much more easily without using Copilot), yet it may still be a problem when it comes to leaking confidential information.

Second, whether something is a copyright violation and whether it risks leaking confidential information are somewhat orthogonal. A copyright violation usually requires at least several lines of code, and more if the copying is not verbatim, or if the code is just a series of function calls which must be written near-verbatim in order to use an API. On the other hand, `const char PRIVATE_KEY[] = ` could hypothetically complete to something dangerous in just one line of code. That said, it almost certainly wouldn't, since even if a private key was stored in source code in the first place (obviously it shouldn't be), it probably wouldn't be repeated enough to be memorized by the model. Yet…

…third, the risk tolerances are different. If, to use completely made-up numbers, 0.1% of Copilot users commit minor copyright violations and 0.001% commit major ones, that's probably not a big deal considering how many copyright violations are committed by hand – sometimes intentionally, mostly unintentionally. (When it comes to unintentional ones, consider: Did you know that if you copy snippets from Stack Overflow, you're supposed to include attribution even in any binary packages you distribute, and also the resulting code is incompatible with several versions of the GPL? Did you know that if you distribute binaries of code written in Rust, you need to include a copy of the standard library's license?) But when it comes to leaking confidential information, even one user getting it would be somewhat bad (though admittedly Microsoft does distribute much of their source code privately to some parties), and taking even a small risk would be a questionable decision when there is a ready alternative.

Re: Give up GitHub: The time has come

#203
The copilot saga hasn’t even played out yet. If it turns out when the legal fog clears that anyone using copilot is always personally responsible for making sure the code was theirs to use (which I see as the likely outcome)- then what difference does copilot make? It basically lets people copy paste FOSS code automatically. We could always do that and they we were always responsible for the consequences.

The idea that copilot can somehow “AI-wash” the copyright of large/nontrivial pieces of code seems completely crazy.

Re: Give up GitHub: The time has come

#204
post #78

Earlier quoted context omitted.

The main point is that it's a commercial service that doesn't respect other people's licences. Previously it was free and the noises that GitHub had given made it sound like it wasn't finished. Turns out it was.

If i read the code published on github and later i do not infringe on any license. If later i'm hired to implement some function chances are that i'll produce code which is similar to what i've learned from github. Or if somebody asks me on how to implement some function and i can respond: Hey that and that project on github already doing it, just use it, i'm not infringing on any license. Now, replace "I" in the abo…

But as others highlighted, sometimes it is not just similar code, it is the exact same code. And if you as a human use code from another repo, you should respect that repo's license. This is the point: as it works now, Copilot isn't taking licenses into account.

Re: Give up GitHub: The time has come

#205
post #159

Earlier quoted context omitted.

No, you're ignoring what you agreed to when you accepted the terms of service. GitHub can display your code, and YOU granted them that license by accepting their terms. I find the only people making these OSS claims haven't used copilot and tend to lack any real contributions to OSS. What you're describing is just simply not the case for 99.9 percent of the code snippets being produced/generated based on data from Gi…

Are you saying the FSF accepted github's terms of service when someone mirrored Emacs into github?

You mean when a maintainer of Emacs setup the mirror?

https://sachachua.com/blog/2015/12/2015-12-10-emacs-chat-joh...

Re: Give up GitHub: The time has come

#206

> For its part, Git was designed specifically to make software development distributed without a centralized site. Just yesterday I had to explain the basic premise/history of Git to a young intern. I had asked him if he was using Git to manage his little pet project the company gave him to play with. “No”, he replied, he didn’t know what the company’s policy was to posting code in public on GitHub. As I explained to…

Going through security certification procedure, I was asked to list all the third party SAAS things we use. I didn't include github, gitlab, or anything else, because we don't use it. The auditor was going off on a tirade about how lack of version control is not okay at all, so convinced they were that 'no github or gitlab' must therefore mean 'no version control'. The mind boggles. He barely believed me when I showe…

> If you have a policy that all code must be signed off otherwise it isn't allowed to be in the commit tree of your `main`, `deploy` or whatever you prefer to call it branch, then why not just say that a reviewer makes a commit that has no changes (git allows this with the right switches), _JUST_ a commit message that includes 'I vouch for this', signed by the reviewer? And that _IS_ the review?

Git has two levels of built-in/native commit signing support. There's "Signed-Off-By" which adds a note to the bottom of a commit. Some projects use that for CLA verification. There's also GPG signing which signs a commit hash.

If you want to use that as a level of "merge request"/"pull request" reviews there's a natural commit to sign that says you reviewed an entire branch: the merge commit itself. You can make a policy of --no-ff merges in your main and important branches. You can make a policy that they are signed (using one or both of the sign off types). You can make a policy that they are signed by someone who wasn't the author of most of the branch's commits.

> What if issue tickets are text files that show up in git, to close a ticket you make a commit that deletes it. Or even: Not text files at all, but branches where the commit messages forms the conversation about the issue, and the changes in the commits are what you're doing to address it (write a test case that reproduces the issue, then fix it, for example), and you close a ticket by removing the branch from that git repo that everybody uses as origin?

There's multiple cool approaches to this that people have tried. Search for "git distributed issue tracker" and you should find some of them. Some have okay web views. There's multiple options for storing the issues. Some use YAML files inside of the branch. The neat thing about files in the branch is that you can find things about where fixes happened using basic branch diffs. Some use git "Notes" which are indeed like git commits as a first class top-level object in git's object tree. Those do have the benefit that they form their own branches outside of your code branches.

It's neat to explore what people have already tried in that area.

Re: Give up GitHub: The time has come

#207

> What case law, if any, did you rely on in Microsoft & GitHub's public claim, stated by GitHub's (then) CEO, that: “(1) training ML systems on public data is fair use, (2) the output belongs to the operator, just like with a compiler”? In the interest of transparency and respect to the FOSS community, please also provide the community with your full legal analysis on why you believe that these statements are true. >…

CoPilot has been demonstrated to lift code verbatim (including swearing comments): https://twitter.com/mitsuhiko/status/1410886329924194309

So even if it is legal to create a commercial product which outputs GPL code as its main value-add, it still seems like it could put the user in an awkward position of auto-completing big chunks of GPL licensed code into their project.

Re: Give up GitHub: The time has come

#208

Earlier quoted context omitted.

Yeah I had to learn Assembly in college. We also had to physically print out our C++ code and turn it in to the professor. Did it make me a better programmer? Maybe but to this day I still haven't had to use it. Most of my practical skills I picked up on the job. P.S. I've seen the professor grading the printed out programs and he'd do it by flipping to the last page which was supposed to have the result output, and…

My C class had weekly written programming tests. Not multiple choice tests. We had to write a program by hand and hope to god it would compile without any errors. Horrible way to teach C imho.

If they also made you do all the calculations the program would, by hand, and record the output, then penalized you if you made any errors on that... it'd be math class.

Re: Give up GitHub: The time has come

#209
post #154

Earlier quoted context omitted.

My favorite answer is: if you included Microsoft source code the quality of suggestions drops below viable product.

The reasons that Windows is awful have nothing to do with code quality. Windows is awful because of intentional choices Microsoft made (e.g., bloatware that gets reinstalled with every update, mandatory Microsoft accounts, and mandatory telemetry).

Their code were awful about 30 years before that.

Re: Give up GitHub: The time has come

#210
post #202

> If it is, as you claim, permissible to train the model (and allow users to generate code based on that model) on any code whatsoever and not be bound by any licensing terms, why did you choose to only train Copilot's model on FOSS? For example, why are your Microsoft Windows and Office codebases not in your training set? This is my favorite question about Copilot ever.

Perhaps because there is a (small) risk of leaking confidential information through its output. But that's not as damning as it sounds. First, we know Copilot, if given the right prompt and told to autocomplete repeatedly without any manual input, can regurgitate bits of code seen many times in many different repositories, like the famous Quake fast inverse square root function and the text of licenses. That doesn't…

> Perhaps because there is a (small) risk of leaking confidential information through its output.

If Microsoft/Github ever made that argument, that also means that when Copilot is using GPL software as input, the output can only be released under the GPL.

Post reply on HN