Z3 approach to discover that “q_rsqrt” is in Copilot's slur list
twitter.com
twitter.com
[1]: https://twitter.com/mitsuhiko/status/1410886329924194309
(I make no claim that this is actually what is happening, it's just not incompatible with behavior in the generous case).
That's the real problem. The issue is that Microsoft looks bad. The problem was solved by making Microsoft not look as bad. Verbatim output of inputs is not a problem, it's an understood property of the model.
So wait, was the obvious copyright elephant in the room solved somehow?
> The issue is that Microsoft looks bad. The problem was solved by making Microsoft not look as bad.
Depending on who you ask, adding a hack like this in an attempt to make them not look as bad just makes it look worse. Especially when the hack is discovered.
The direct analogy would be trying to stop it from outputting The Lord of the Rings by blocking the phrase "a long-expected party" (the title of its first chapter).
Copilot's FAQ says this (under heading Who owns the code GitHub Copilot helps me write?): "GitHub Copilot is a tool, like a compiler or a pen. The suggestions GitHub Copilot generates, and the code you write with its help, belong to you, and you are responsible for it."
They are essentially affirming that the output is not covered by someone else's copyright, but that is far from clear.
And I think it is precisely the copyright issue that turned this into a PR issue. Verbatim copies are just a very obvious demonstration of the copyright issue. The issue isn't gone when they filter out this specific snippet; the people who are concerned about copyright issues are going to remain concerned.
> GitHub has the rights to use your code for training.
Sure, but that's not at all the same as saying that the output produced by the AI free of copyright issues. That's kind of orthogonal.
That said, at the very least it seems like it would be rude to include code in the training data if the developer has expressly said they don't want that.
[1] From their FAQ: "Training machine learning models on publicly available data is considered fair use across the machine learning community."
You could easily make the case that training is fair use, but that doesn't have to imply the model's output is non-infringing.
For example, it seems reasonable to train a model by feeding copyrighted texts and images, and that model could be useful for analyzing the content, finding facts, or detecting features. But we're in murky waters when the model also starts outputting the original content (be it verbatim or "derived").
Not all that different from human learning: you can study and learn from publicly available books but that doesn't grant you the right to recite their contents and claim it as your own, original work.
Put another way, copyright only applies to creative expressions, not functional expressions. It does not matter how creative the idea is. If the work of authorship is software that embodies the function (and no other expression), it is not copyrightable.
So where is the line between creative and functional expression in software? The law does not provide clear guidance. Ultimately, it’s up to a judge.
the problem is that their AI is insufficiently creative
Google ‘fixed’ its racist algorithm by removing gorillas from its image-labeling tech - https://www.theverge.com/2018/1/12/16882408/google-racist-go...
[1]
if (version.StartsWith(“Windows 9”))
{ /* 95 and 98 */
} else {
http://www.reddit.com/r/technology/comments/2hwlrk/new_windo...Isn't it typical Microsoft, in some 90s and 2000s sense?
1. Start at the bottom of the posts by the author (just above the "More Tweets" section).
2. Find the post that mentions q_rsqrt.
3. work you're way up the page, and though the "Show this thread" buttons to try and gleam some semi-chorological sense of context
Anyone got a better method?
The incessant quote-tweeting in a thread does make it unnecessarily complicated though.
But ThreadReaderApp is also a good alternative to just bypass the bad UI entirely.
Unfortunately I don't really have time for dedicated blogging any more, so I just post small bits to twitter as I go. Which is why putting together the full story required a bunch of QTs of threads from the past week...
Twitter's readability is really hit and miss, depending on client and logged in or not etc.
Also worth noting that this kind of analysis only really works if the list is checked client-side. If it’s checked on the server then you can’t guess nearly as fast.
Interesting. Is it only a warning, or does OpenAI actively prevent people from using GPT3 to generate erotica?
> Completion may contain sensitive content
> Consider adjusting your prompt to keep completions appropriate. To turn off content warnings, update your preferences.
They have some details about the content filter here; it seems to be much more sophisticated than just a bad word list:
https://beta.openai.com/docs/engines/content-filter
I also like that they distinguish between "sensitive" (talks about something potentially controversial) and "unsafe" (profanity, hate speech, etc.). This seems a lot more nuanced than what Copilot is doing.
However, I wanted to use GPT-3 as a writing assistant. You know, to build a tool similar to what e.g. NovelAI has. Whatever dark magic they've done to GPT-J-6B is, well, hard to credit -- but GPT-3 is still better.
There appears to be no way to do so while obeying the ToS. Not just because of sensitive content (e.g. fiction often contains violence), but there are even rules about how much of the output can be written by humans vs. the AI.
I decided it wasn't worth the effort building a writing tool just for myself; I'd wanted to build something potentially profitable, and... this isn't it. GPT-3 isn't great at most things, but it's really good at being a writing aid for fiction, so it's a real pity they're doing their apparent best to prevent that.
NovelAI is almost as good, so nowadays I'm just using that.
1. The banned word list doesn't affect what gets put into the model's training data at all, or even what gets returned as a suggestion by the server. It only affects whether the IDE will actually suggest the completion to you.
2. Some people have suggested using one of the collisions instead of a real word from the list, but this will break as soon as they change the hash function.
3. They can always take things off the word list! And the likelihood that something remains on the list is probably correlated with how actually offensive it is, which means you may not want it in your code.
The other ponts are valid, but if your use of the word is for a technical reason (i.e. to block Copilot) and well documented then why should it be a problem that it could be offensive to some in another context?
20 years ago, I prided myself with keeping on top of almost everything in CS. Now, I can barely keep up with the names of all the cool tools out there.
(IMHO it wasn't until AFL that this stopped being the repeated history of the entire field).
20 years ago CS was smaller in scope, simpler, because there was less of it. We have more systems, more complex systems, and in some point the body of knowledge grew so large that one human cannot know all of it.
This all goes double for industries like this one that are all about self-promotion and trying to wow investors and employers by displaying technology-indistinguishable-from-magic.
Even if you did have an objective and rigorous measure of programming acumen, the fact that someone scored better than you should hardly be surprising, let alone disappointing. There's plenty of room for mediocre coders in the industry, I work with many. In fact I outshine them in mediocrity every day, but I still get paid and have a good time.
In conclusion: there is no time to feel sorry for yourself, there are too many cool new technologies to learn and use.
Some things just disappear
Especially given the number of reactions to Copilot centered around poisoning OSS repos.
> Since Codex is evaluated on natural language prompts, we hypothesized that it would be beneficial to fine-tune from the GPT-3 (Brown et al., 2020) model family, which already contains strong natural language representations. Surprisingly, we did not observe improvements when starting from a pre-trained language model, possibly because the finetuning dataset is so large. Nevertheless, models fine-tuned from GPT converge more quickly, so we apply this strategy for all subsequent experiments.
It's not completely clear exactly what relationship the Codex models and Copilot have to one another, but given that the Copilot model is internally named "Cushman" (going by the API URL), which is the same name as the faster of OpenAI's two Codex models, they're probably trained the same way.
Those lists will sometimes end up with surprising content because they are populated by a predictive model with an optimization function around "When this word shows up in conversation, is it going to lead to someone having to step in to moderate the chat?"
I guess they don't like UNIX-style documentation.
"Copilot accused of antisemitism after it treats Israel as invisible"
"Indy Mech game developers for 'Tank man' confused why Copilot refuses to help"
https://arstechnica.com/information-technology/2016/03/micro...
https://arstechnica.com/information-technology/2016/03/tay-t...
Per Gwern[0]:
> (...) There appear to be several similar AI-related leprechauns: the infamous Tay bot, which was supposedly educated by 4chan into being evil, appears to have been mostly a simple ‘echo’ function (common in chatbots or IRC bots) and the non-“repeat after me” Tay texts are generally short, generic, and cherrypicked out of tens or hundreds of thousands of responses, and it’s highly unclear if Tay ‘learned’ anything at all in the short time that it was operational;
[0] https://www.gwern.net/Leprechauns, self-recommending
http://hastebin.com/raw/usisabijax
zigabo zipper heads zipper head suckmyass suckmytit ethnicities lesbians lovejuice slopeheads bumsuckers junglebunny freakyfucker gangbanger gangbanged pricktease niggerhead niggerhole dunecoons dickforbrains eyeties slavery sliteye queefing vagina wetback velcro heads velcro head arselick hairpie whores asslover wigger ladyboys woolly woofter woolly woofters woofta asslicks womenn sniggered murderers wanker wazzak doggiestyle asslickers asslicking pisswhacker burrheads q rsqrt cockcowboy xrated numbnuts lickmydik lickmydic shemale carpetmuncher assblaster cocklicker qrsqrt queefs facefuck reffos retard rapist terrorists dickweeds chickslick gangbang slopehead slutty dickbrain fuckingbitch souties jiggaboos soutie skanks skanky skanck fuckfriend snigger spicks spaffs muffdives muffdiver titjob socialists honkies tranny skankier twaats sluttishness murder muzzie gangbanging gangbangers shortfuck master race macaca faggiest negroes faggoted faggotry faggotly moolie mofoes hiscock velcroheads minges neonazi skankee skankey negroe negros cuntsucker niiger niguro niglet nignog nigguh niggur niggle niggaz niggas niggah niggor nigger nigg4h nigg3r nigerz nigers nlggor nlgger skumbag feltcher whorehouse slutwhore sluttiest felching prickteaser prickteases n1gg4h n1gg3r pogger polack motherlovebone pikeys pillow biters pillow biter niggling niggards packie dumbass israel nancyboy iblowu injuns indian givers indian giver l3itch jungle bunny jungle bunnies nignogs nigguhs nigguhz niggles niggled niggard niggers rodgered masterbaiter fingerfucker fingerfucked holocaust enculeur jewboy bungholes homosexual towelheads jizzum jizzim jigger jiggas wuzzocks anklespankers kaffer kaffir kafirs fuckmonkey fuckmehard lubras terrorism terrorist lesbos lezbos lezzes lezzer lezzie skinhead dickwad dicking camwhores dycktrickles pisswhackers cumbuckets eyetie ethnic socialist wuzzock chuffers assklown fuckin fister flydie flydye fatass spaffing faggit faggot fagg0t fagg1t rodgering female feltch gyppie bumblefuck ghetto monkey ghetto monkeys cockteasers azzhole gippos ginzos godamn goatse crackpipe arselickers arselicking gender twatting mastrabator tasmaniacs hymies pornographic honkie honkey hitler assman antifa fingerfuckers fingerfucking footfucker muffindiver milfhunter genocide buggerise buggerize buggeries buggering buceta bugger blacks biatch boston pancakes boston pancake feltching beaver cleavers beaver cleaver banana bender banana benders buttfuckers nutfucker cunntt cummer cucked clunge battyboys clitoris chuffs chinky chinks choads chodes coolie commie asskissers asseater carpet munchers carpet muncher w00se whoar whore yamyams wh0re wh00r willy woofter willy woofters woggs woman women sniggers asskickers jewboys quims queef reffo races slant eye slant eyes sluts slutt slutz smack tards smack heads smack head smack tard skank sexes seppo schit spics spick spiks spaff towel heads towel head taigs trans twots twats twaat mutha fukker mutha fukkah mutha fucker mutha fuker mutha fukah males malee mofos milfs minge nastt nazis nancy boy nancy boys negro niigr nigur nigre nigra niggz niggs nigga nooky ofays n1g3r polak polac porch monkey porch monkies porch monkeys porno povvy phuck pikey penis pedos pakie pakis packi packy dumass injun jesus sauce jesus krispies jesus milk jebus jizim jisim jiggy jigga kykes kafir kikes lubra lesbo lezes lezbo lezzy diaper heads diaper head cumbucket cumbubble eatme fudge packer fudge packers fucka fucck faigs fag1t fagot faggy fagit faget felch gyppo gyppy gheys gunts girls gippo ginzo goyim gooks darkies hussy hymie hebes hoore honky homos ankle spankers ankle spanker bungs black people black peoplee bints batty bwoys batty boy batty men batty man batty boys batty bwoy donkey shows donkey show cunny cunts cuntz cucks clits crack whore chuff chink choad chode coons camel jockey camel humper camel humpers camel jockeys dykes dirsa dinks darkie darky dagos derka derka death to dagoes gollywoggs sandmonkeys asswipe asslick asshore asskiss assfuck assface bumsucker diaperheads chinawomen chinawoman homosexuals doggystyle zipperheads mastrbater japcrap skankbitch asspirate asspacker transgendered skankwhore buttlicked buttlicker buttlickin cunnies cumfest cumshot cucking assclown asswipes asswiped titlicker snownigger ladyboy clunges assranger asswhore dycktrickle genders spermherder faggoting assmonkey titfuckin titfucker sonofbitch hussies asslicker asslicked asslickin raghead whigger lesboes lesbian lezboes lezzers lezzies rapists chuffed chuffer facefucker butthurt buttlick buttbang buttface buttfuck skinheads bogtrotters cocknob transsexual cojones coolies cohones commies towelhead smackheads moolies pickaninny burrhead lovepistol smacktards arselicker arselicked tasmaniac buggered asskisser asskicker liberal mingita minging cocksmoker assjockey loverocket makwerekwere pickaninnie cocksucker cocksucked cocksuckin asseating asseaters bogirish bigbastard fascists neonazis dickweed dickwads dickless dicklick fastfuck camelhumpers balllicker assfucker wooftas woofter pimpjuic buttfucker cumqueen sniggering lovegoo lovegun ragheads gangbangs nutsack arseeating homobangers asscowboy timbernigger apartheid cuckservative woollywoofters nancyboys freakfuck asswiping assbagger nationality lovebone niggaracci niggarding dicklicker wankstain cockteases cockteaser wankshaft yamyam fistfucked fistfucker assmunch wazzaks wazzack wazzock fuckfreak bananabenders shitfucker smacktard smackhead junglebunnies fistfuck beatyourmeat wankshafts diaperhead wankstains felcher cockblock femalee females cocklover cocktease cockrider cockqueen dumbasses dumbbitch prickteasers cocksmith buggers buggery williewanker headfuck bumfuck faggotings shiteater mingebags buggerizes buggerized buggerises buggerised anklespanker faggoty faggots fagging faggies faggier candyasses fascist fatfuck sliteyes bog irish bog trotters bog trotter boy blm bum sucker bum suckers gay god damned goy fag fur pie fur pies leb lez kkk jap jew jui ch nig nog nig nogs neo nazis neo nazi men man sex she males she male rag heads rag head wet backs wet back wog yid yam yam yam yams nastyslut fuckknob fucktard fuckhead fuckable fuckfest mingitas mingebag pornography slanteyes muffdive muffdove muzzies bulldykes bulldikes jailbaits buttlicks buttmunch immigrant tarbaby chinkies chinaman chinamen crackwhore wazzocks wazzacks palestine whiskeydick bogtrotter kumbubble girlcam pedophile spaghettinigger golliwog gollywog immigrants slanteye jailbait genocides golliwoggs buttmuncher cuntlicking beefcurtains limpdick hotpussy fuckpig fuckher fuckbag liberals titfuck funfuck mufflikcer chankoro poofters poofthas kissasses cockblocker eatpussy eatballs jigaboo jiggabo hairpies easyslut sandnigger cuntlicker buggeration goddamns goddamit sandmonkey godammit buggerizing buggerising fudgepackers fistfucking whorefucker cherrypopper jijjiboo suckoff suicide fingerfuck cumjockey spermhearder analannie muffdivers muffdiving likmydic likmydik spaffed ethnicity camwhore datnigga assmuncher bunghole be killed be shot cuntfucker goddamnit goddamned goddamnes goddammit fudgepacker arselicks sonofabitch goddamnmuthafucker cocksucking cocksuckers transgender <haqrpbqrq:272617466> cumguzzler candyass arschloch whitetrash zipperhead cuntlick cuntfuck cunteyed carpetmunchers woollywoofter pickaninnies wetbacks kissass badfuck bazooms trailertrash shitfuck shitdick gaymuthafuckinwhore pimpjuice bulldyke bulldike lovemuscle fatfucker suckdick whitenigger communist bearded clams bearded clam beatoff pedophiles pedophilia holestuffer cleveland steamer cleveland steamers goddamn footfuck twatted twinkie asspuppies murderer dunecoon boiolas skankybitch skankiest skankfuck skankywhore suckmydick fannyfucker ballsack cumguzzlers cocksuck cocksman niggardliness dink dune coons dune coon dyke coon cock sucker coño clit cuck cunt beef curtains beat off boys bint burr heads burr head butt licker butt licked butt lickin butt fucker butt licks butt lickers butt licking butt fuckers butt bang butt fuck butt lick bung hoer hoar homo hoor hore hair pie hair pies head job head jobs hebe gang banger gang banged gang bangs gang banging gang bangers gang bang gays gaza gook gizz give head girl gunt ghey fags fagz faig h0re h0ar h00r g00k lebs lady boy lady boys kike kill someone kill you kill yourself knob jockey koon kawk klan kyke jiss jism jizz jizm jail baits jail bait japs jews paky paki pedo pink tacos pink oboe pink taco phuq porn n1gr ofay nigg nigr nigs nigz nazi milf mofo meat wallet meat wallets male twat twot taig spik spic sand monkey sand monkeys skum skin colors skin color shat slut slit eye slit eyes rape race quim cameljockeys wazz wank wogs wogg kaffirs kaffers golliwogs golliwogg yids buttlicking buttlickers gollywogg gollywogs givehead velcrohead communists niggarded niggardly nigglings woofters cybersex trannie porchmonkeys porchmonkies bananabender dixiedyke dixiedike jizjuice whiskydick unfuckable girlcams sluttier slutting sluttish slutwear <haqrpbqrq:867567715> jigaboos camelhumper jiggaboo shemales bazongas cameljockey porchmonkey givemehead povvies queefed polacks poofter pooftha poonani nastywhore fuckwhore nastybitch battyboy battymen battyman immigration poorwhitetrash fuckbuddy
Seems like you're going to get issues with code or comments describing race conditions, if race is a slur.
Unknown as of the posting of the Twitter thread.
rot13("<undecoded:867567715>")Edit: mah3sh noted the weird '<haqrpbqrq:867567715>' just before me.
I am actually hoping that they will change the hash function as that would give me an easy way to detect which ones are real and which are collisions ;)
no "head" will be unfortunate for data structures