GitHub experimenteert met spraakassistent in GitHub Copilot

GitHub heeft een spraakassistent geïntroduceerd voor zijn AI-gestuurde pairprogrammer Copilot. Het betreft een test waarbij gebruikers via stembediening hun code kunnen aanpassen of door de codebase kunnen navigeren.

Volgens GitHub is het via de spraakassistent ook mogelijk om code te schrijven. Gebruikers kunnen ook een samenvatting vragen van hun code als ze dat willen. De spraakassistent kan op dit moment enkel met code uit Microsoft Visual Studio overweg en een gebruiker dient Engels te spreken. De spraakassistent luistert naar het commando 'Hey, Github' om actief te worden.

De spraakassistent is ontwikkeld door Github Next, een team van onderzoekers binnen GitHub dat de toekomst van softwareontwikkeling bestudeert. Het betreft een test waarvoor Copilot-gebruikers zich kunnen aanmelden. Dat kunnen ze doen via een wachtlijst. GitHub Next hoopt de mogelijkheden van de spraakassistent op termijn te kunnen uitbreiden. GitHub Copilot kost 10 dollar per maand of 100 dollar per jaar. Studenten en medewerkers van populaire opensourceprojecten hoeven niet te betalen.

Door Jay Stout

Redacteur

10-11-2022 • 12:40

47

Reacties (47)

47
47
30
1
0
17
Wijzig sortering
Copilot helpt mij dagelijks door te assisteren bij triviale dingen zoals loopjes, gebruik van librararies en ‘hoe zat het ook alweertjes’.

Het is super fijn dat je soms met enkele ‘enters’ een hele hoop voorgekauwd krijgt.

Echter zie ik zelf niet hoe dit zou werken met een spraak assisten. Misschien de comments die je kan invoeren voor de autocomplete? Een if statement lijkt me al lastig igg
Gebruik je het dan in de IDE? Heb je een tutorial die je aan zou raden? Ik ben wel benieuwd of het mij ook zou kunnen helpen. Meestal zet ik bij voorbaat alle toeters en bellen uit.
je hebt er geen tutorial voor nodig.. het doet gewoon z'n ding.
moeilijk om er zomaar even de voordelen uit te halen.... wat ik vaak doe is complexe code laten omschrijven in comments. Het is zo makkelijk als je codeblock schrijven, een comment starten, en copilot je comment "laten schrijven", wat automatisch gebeurt.
omgekeerd kan je ook je comments laten omzettten in code. hoe beter je omschrijving, hoe beter de gegenereerde code. Dat gebruik ik bijvoorbeeld om soms lastige csv's om te zetten naar mooie json. "read complex.csv file, turn into a json object where the contract numbers are the key, and the values are the other columns in the row"
Uit nieuwsgierigheid, is dat niet veel omslachtiger?

Ik bedoel, in de tijd dat ik ""read complex.csv file, turn into a json object where the contract numbers are the key, and the values are the other columns in the row" gezegd heb, ben ik al 10 regels verder in mijn code.

Misschien anders gezegd, het omzetten van denken naar spraak, lijkt mij zeer vermoeiend.
Als jij die code die je noemt inderdaad in 10 seconden kan kloppen dan heeft het weinig toegevoegde waarde. Echter zijn er vaak zaken, design patterns waarvan je weet dat ze er zijn en dat mogelijk de meest nette manier is maar je mogelijk niet helemaal meer weet hoe het precies ging. Type de eerste twee woorden code en een grote kans dat co-pilot het verder voor je aanvult. Ik zeg amper tegen co-pilot maak dit of dit in een comment. Ik begin gewoon met typen en op een gegeven moment weet hij precies wat er nog verder nodig is. Ik kan nog steeds niet sneller typen dan lezen dus zodra co-pilot de schijnbaar goede correctie geeft is het lekker verder lezen en als het ok is enter en klaar. Of enter en nog zaken aanpassen want hij heeft het zeker niet altijd in een keer goed. :)
Daarnaast geeft Copilot ook meerdere suggesties, waardoor je soms even uit je eigen denkpatroon wordt getrokken en de mogelijkheid hebt je code te schrijven op een manier die beter is, maar nog niet in je was opgekomen.

Ik kan me indenken dat de spraakassistent op een gegeven moment zelfstandig elders in je code dingen toe kan voegen. Als je dan bijvoorbeeld in je eigen code een functie aan roept die nog niet bestaat en tegen Copilot zegt "create this function", kan je zelf doorgaan waar je bent gebleven zonder eerst die simpele functie "verifyPhoneNumber" handmatig te hoeven schrijven.
Ligt er aan, als je wat complexere dingen wilt uitwerken, is het soms ook fijn (voor jezelf) om even (in een comment) op te schrijven wat je nu precies wilt bereiken.
haha ja fair punt hoor, in sommige gevallen lijkt het omslachtiger, maar je moet het ook leren gebruiken, en dan steek ik het liever op de leercurve. Het is een hulptooltje, heb er zeker de 10dollar voor over want ondertussen bespaart het me veel werk. Zaken die je zelf vergeet onthoudt copilot gewoon en dat maakt het inpikken zoveel makkelijker als je vaak tussen projecten wisselt.
ook handig als je een library gebruikt (in mijn geval was het pandas), die je niet supervaak nodig hebt en die veel truukjes bevat om iets heel snel te doen met veel data, maar waar je zelf nooit op zou komen, dat gaat nu bijna vanzelf.
ik val steeds terug op voorbeelden, vind het echt moeilijk te omschrijven
Als je het goed beheerst is het misschien wel €10 per maand waard. Als het beter wordt en je kan twee keer zo snel werken, dan is het wel een halve FTE developer waard.

Wat je vaak ziet in andere commerciële ML-toepassingen is dat je ook zelf een model kunt trainen, of dat er gratis voorgetrainde modellen beschikbaar zijn. Die zijn vaak minder goed dan de commerciële modellen, maar vooral op grafisch gebied is er een hoop mogelijk met open source code en gratis modellen. Is er ook een open source, misschien self-hosted, alternatief voor Github Copilot met voorgetrainde modellen beschikbaar?

Ik vermoed dat Copilot is getraind op basis van de vele (open source) projecten op Github. Hoe zit dat eigenlijk met auteursrecht? Moeten de modellen van Github Copilot dan niet verplicht worden vrijgegeven?

[Reactie gewijzigd door Sando op 23 juli 2024 08:05]

Ik vermoed dat daarom bepaalde open source projecten dit gratis mogen gebruiken van Microsoft.
Echt? Zoals welke? In het artikel staat
De spraakassistent kan op dit moment enkel met code uit Microsoft Visual Studio overweg
en dat het 10 euro per maand kost. Dus niet eens hun eigen open source Atom-fork VS Code, als ik het goed begrijp.
De laatste regel van het artikel zegt:
...en medewerkers van populaire opensourceprojecten hoeven niet te betalen.
"Medewerkers" van, niet gebruikers van. Ik ging er van uit dat ze daarmee de developers van die projecten bedoelden, bijvoorbeeld de developers van (hun eigen) VSCode, als extra motivator om te ontwikkelen. Maar misschien heb ik het niet goed begrepen. Ik ben benieuwd wanneer en hoe lang je 'medewerker' bent.
Ik ben zelf zo'n developer die een gratis Copilot licentie heeft. Ik heb dat omdat ik maintainer ben van Storybook, een van de grotere open source projecten op GitHub (nummer 54 op de ranglijst).

Geen idee hoe groot een project moet zijn om mee te mogen doen, maar ik geloof dat je alleen maar schrijfrechten nodig hebt op zo'n project om eligible te zijn.
Dat is wel wetenswaardig. Moet je dan inloggen bij zo'n Copilot plugin met je Github account?
offtopic:
Wat een interessant project overigens! Ik had er wel eens eerder van gehoord, maar heb er nooit naar gekeken omdat de naam me een verkeerde indruk gaf van wat het is.
Wat jij omschrijft is ook hoe ik Github Copilot gebruik, om nog wat toe te voegen;

Ik gebruik het soms ook om rijen domme data te generen. Laatst wilde ik even snel een paar inserts doen voor basale kleuren en de hex waardes. Wat ik dan typ is 'INSERT INTO colors (name, hex) VALUES ('
En vanuit daar krijg ik al netjes aangevuld ''INSERT INTO colors (name, hex) VALUES ('Red', '#FF0000');'

Druk ik daarna op enter en CTRL + enter om een lijst aan suggesties te krijgen, krijg ik netjes een rij aan kleuren en hun hex waardes.
Ik had het natuurlijk allemaal kunnen googelen en uitschrijven, maar dit is letterlijk 10x makkelijker

Screenshot

Verder kan ik Copilot gebruiken om zonder na te denken mijn code op de juiste manier afsluiten. Ik hoef niet meer na te denken welke elementen in HTML of welke brackets ik allemaal in mijn code heb gebruikt.
De meeste gangbare IDE's zoals IntelliJ IDEA (+ webstorm, phpstorm, pycharm etc), Visual Studio en zelfs VSCode hebben gewoon een plugin hiervoor.
Zelfs vscode? Juist vscode gezien dat ook van MS is :Y)
Inderdaad geen tutorial nodig, ik gebruik oa PhpStorm waar de plugin actief is. Hij komt regelmatig met suggesties terwijl ik type (die je met CTRL+enter kan confirmeren) of je typed iets als

// Check if hexadecimal color value [variabele naam] is light or dark

Vervolgens druk je ook CTRL+enter en komen er een paar suggesties naar boven


Mijn grootste tip, het is een hulpmiddel (zoals de naam al impliceert) en kan dus ook foutieve code aanleveren of code die erg inefficient is. Ik gebruik het in ieder geval voor de eerder genoemde zaken en/of als springplank om verder uit te breiden
Ik gebruikt CoPilot ook al een tijdje en alleen al voor de auto completion van simpele regels code is het voor mij al die 10,- per maand waard.

Ook sommige suggesties zetten mij aan het denken dat sommige dingen ook anders kunnen, ook leuk om dat te zien.

Zou zelf niet meer zonder willen
Als je blind bent, een gebroken arm hebt, of wat dan ook, lijkt het me best nuttig. Voor de doorsnee gebruiker niet, maar als accessibility feature wel. Ik denk niet dat er een developer is die op kantoor de hele tijd tegen z'n computer gaat zitten praten terwijl de mensen naast hem proberen te werken.
Github Copilot klinkt misschien leuk, maar uit onderzoek is gebleken dat mensen met zulke tools vaker onveilige code schrijven:
https://arxiv.org/abs/2211.03622
Waar natuurlijk de risico's weer gemitigeerd kunnen worden door een SonarQube/Cloud met de regel-set die je meestal al hebt staan en onderdeel is van je build pipeline.

Dit lees je helaas niet terug in de recommendations van deze studie. Vond ik bijzonder.

Het is net als met Autopilot van Tesla, de bestuurder blijft eindverantwoordelijk. Zo is dat ook bij Copilot, daarnaast is er naast een static code analyse natuurlijk nog altijd de PR review door (vaak senior) collega's.

Maar hoe vaak ik een collega al eens baat hoorde hebben bij Copilot suggestions, om simpelweg een hint te hebben wat je nodig hebben.. tot het daadwerkelijke stuk code is een big game-chancer.

[Reactie gewijzigd door Falcon op 23 juli 2024 08:05]

Ehm, dus je gebruikt een AI om makkelijker code te schrijven, maar omdat die code onveilig is heb je een ander systeem nodig om de fouten eruit te halen. Waarom dan niet gewoon het AI deel eruit halen? Dan schijf je betere code en hoef je minder op het andere systeem te vertrouwen
Dit lees je helaas niet terug in de recommendations van deze studie. Vond ik bijzonder.
Vind je dat echt bijzonder? Je kan geen reden verzinnen waarom het er niet in staat?

[Reactie gewijzigd door luxebenen op 23 juli 2024 08:05]

Verkeerde luxe been uit bed gestapt? :+

Dus omdat Autopilot foute beoordelingen doet in het verkeer en moet worden gecorrigeerd, heeft het geen toegevoegde waarde? Copilot heeft net zo goed die meerwaarde. Niet alle code heeft te maken met een beveilingslaag.

Dat andere systeem doet zoveel meer, lees je maar eens in.
Klopt het zou een stap in het leerproces van de AI moeten zijn, de feedback van SonarQube en andere code inspectie tools verwerken.

Hopelijk leidt dat dan niet tot obfuscatie van het security issues op een manier dat SonarQube en de andere tools ze niet meer detecteren.
Hetzelfde merk je in de vertaalwereld met tools zoals bijv. DeepL. Het is als professionele vertaler lastiger om simpele foutjes te herkennen wanneer je een hele zin krijgt voorgekauwd dan als je 'm zelf hebt geschreven.

Ik merk bij Copilot ook gewoon dat ik sneller geneigd ben om iets te accepteren dan dat ik het zelf op die manier zou oplossen.
Onderzoek is uitgevoerd in een geisoleerde setting met voornamelijk studenten dus niet 1-op-1 door te trekken naar de praktijk. Ik geloof best dat ook in de praktijk dat verschil er tot op zekere hoogte nog wel zal zijn maar ook dan gaat het nog steeds om hoe je de tool gebruikt en dat daar ook nog bepaalde learning curve aan vastzit.
Dat zal zeker waar zijn. Al gok ik dat hetzelfde geldt voor het copy pasta-en van SO oid.
Verder ging het genoemde onderzoek specifiek over security vraagstukken: a variety of security related tasks. Dat is natuurlijk wel andere koek dan een paar simpele functies om wat uit een string te filteren of iets dergelijks te laten maken. Bij zaken die weinig security risico's met zich meebrengen, makkelijk en direct te testen zijn op correctheid is het wel fijn als er een hoop boilerplate code voor je wordt gemaakt :).
Het is dan ook een hulpmiddel om code te schrijven, en niet een oplossing om geen code te hoeven schrijven. Jij blijft de piloot, en moet in dit geval de co-piloot verbeteren indien nodig.
Het ligt er ook aan hoe je de tool gebruikt, zelf gebruik ik GitHub Co pilot voor het maken van boilerplates. Vervolgens ga ik zelf zitten aanpassen. Werk met veel talen waarvoor er geen goede language servers zijn, maar GitHub copilot snapt daarintegen wel dat als ik een jsonnet local wil hoe deze afgesloten moet worden, hoe een functie werkt.
Dan laat je copilot toch gewoon alleen in Rust schrijven ;)
Ik blijf het toch verbazend vinden dat ze hier mee doorgaan gezien de grote onduidelijkheid die er bestaat over het wel of niet legaal zijn van CoPolit in het algemeen.
https://www.theregister.c...github_copilot_copyright/

Het trainen door machine-learning is al een moeilijke voor wat betreft licenties, maar het daarna een op een uitspugen van code zonder de daarop geldende licenties en credits is vrijwel zeker gewoon hartstikke illegaal.
Zeker niet, ze gebruiken alleen code die gedeeld mag worden zonder vermelding. Genoeg licenties die dat toestaan.
Dit is dus gewoonweg een bewezen leugen. Als je dingen zo stellig zegt, check ze dan ook!
Gesteld dat dat zo zou zijn, hoe toont/bewijst Microsoft dat alleen zulke code gevoerd is aan de AI? Moeten we ze maar op hun blauwe ogen geloven?

Ik ben er vrij zeker van dat ze de Windows/Office *niet* aan het AI gevoerd hebben.
*gniffel* dan zou de AI-code ook veel meer fouten bevatten *gniffel*
Het omgekeerde is gemakkelijk te bewijzen. GitHub Copilot heeft in mijn geval een copy van GPL code van een project waar ik vroeger aan gewerkt hebt gegenereerd zonder de licentie erbij te halen.

De vraag is dus, willen mensen open source projecten beschermen met copyright of zouden we ze gewoon als publiek domein beschouwen. Linux beschouw ik reeds jaren als publiek domein, Linus en co willen de copyright niet beschermen in geval van oa Android systemen en de Linux kernel op embedded die vaak aangepast wordt zonder te delen.
Ik blijf het toch verbazend vinden dat ze hier mee doorgaan gezien de grote onduidelijkheid die er bestaat over het wel of niet legaal zijn van CoPolit in het algemeen.
https://www.theregister.c...github_copilot_copyright/
Waarom zouden ze er mee stoppen zolang er geen uitspraak is gedaan? Ik neem aan dat GitHub er vanuit gaat dat wat ze doen legaal is.
Het trainen door machine-learning is al een moeilijke voor wat betreft licenties, maar het daarna een op een uitspugen van code zonder de daarop geldende licenties en credits is vrijwel zeker gewoon hartstikke illegaal.
Er wordt ook niet 1-op-1 code uitgespuugd
Er wordt ook niet 1-op-1 code uitgespuugd
Dat is nou juist waar die rechtzaak over gaat, dat copilot dat blijkbaar dus wel doet in sommige gevallen. Bron die gebruikt is in de link van killercow: https://devclass.com/2022...s-of-my-copyrighted-code/
Het is de aard van het algoritme om kopieën te maken; het statistisch model neemt samples van de originele code met de annotaties er bij en als je nieuwe code als input geeft zoekt hij in zijn 'database' naar het stukjes code die samengesteld er statistisch gezien het meest op lijken.
Ik zit stevig in het kamp "Zeker laten doen, laten we zien wat er gebeurt". Juist omdat dit soort dingen bestaan komt de hele discussie rondom AI generated content op gang en kunnen we dat als mensen gaan vormgeven, zodat het in de toekomst hopelijk een praktisch onderdeel wordt - als het zo kan zijn.
Er van weg blijven omdat het misschien controversieel is, staat innovatie in de weg.
Ik blijf het toch verbazend vinden dat ze hier mee doorgaan gezien de grote onduidelijkheid die er bestaat over het wel of niet legaal zijn van CoPolit in het algemeen.
Welke onduidelijkheid? Je linkt een opinie artikel, geen gerechtelijke uitspraak. Als je het dan over de legale implicaties van copilot wilt hebben kunnen we beter een artikel van een jurist met domein expertise er bij pakken: https://fossa.com/blog/an...lications-github-copilot/
“I’d caution anyone using Copilot right now to help write code to pay close attention to the nature of Copilot’s suggestions,” Downing says. “To the extent you see a piece of suggested code that’s very clearly regurgitated from another source — perhaps it still has comments attached to it, for example — use your common sense and don’t use those kinds of suggestions.”
Oftewel, gebruik gewoon je koppie als je code schrijft en neem niet zomaar alles klakkeloos over. Uiteindelijk ben je zelf verantwoordelijk voor je eigen code, niet copilot.
Het trainen door machine-learning is al een moeilijke voor wat betreft licenties, maar het daarna een op een uitspugen van code zonder de daarop geldende licenties en credits is vrijwel zeker gewoon hartstikke illegaal.
Heb je een gerechtelijke uitspraak van dit 'feit'?
Hey, Github. Write a Doom clone with brighter levels and a happier theme. Use Dall-E 2 and MidJourney for artwork. Fetch upbeat CC0 royaltee free music for game music. Generate two episodes with 5 levels each.
Dat kan Copilot nou net niet, helaas of gelukkig.. Snippets gaat prima, maar hele lappen code of meerdere iteraties op basis van voorgestelde code gaat meestal niet goed.
Nouuuuuuu.. Ik heb youtube videos gezien waar ze Copilot op de proef stellen..
Natuurlijk gaat het voorbeeld van RedSandro heel ver, maar hele lappen code is zeker mogelijk.

De kerel in deze video (ietwat druk voor mijn smaak) kent, volgens mij, geen Go language, en weet eigenlijk niet 'wat hij wilt maken' en laat CoPilot het gros van het werk aan CoPilot over, zelfs de comments waarmee CoPilot zich weer laat voeden/aansturen

https://www.youtube.com/watch?v=Xw_qbJp52cY
Wat ik tot nu toe gezien hier op Universe van deze toevoegingen, werkt het best goed. Waarvan ook ook erg onder de indruk ben, zijn b.v. Copilot cli en PR bot.

Waarbij je respectievelijk Copilot kunt gebruiken om beschrijvend te vragen hoe je ook al weer geneste cli opdrachten doet zoals 'git? show me the last five commits with the file x'.

Of met prbot: vanuit issues prbot vragen hoe het de verandering van framework x naar y zou dan, dat vervolgens laat uitvoeren, de unit tests laat draaien en een PR maken.

Op dit item kan niet meer gereageerd worden.