Amazon maakt CoPilot-alternatief CodeWhisperer voor AWS breed beschikbaar

Amazon maakt code-AI CodeWhisperer algemeen beschikbaar. Er komt ook een gratis tier beschikbaar voor individuele programmeurs. CodeWhisperer is de tegenhanger van GitHubs CoPilot en werkt onder meer met AWS.

De tool is volgens Amazon per donderdag breed beschikbaar voor alle gebruikers, nadat die eerst alleen als bèta te gebruiken was voor AWS-gebruikers. De tool kan nu ook worden ingezet door gebruikers die geen klant zijn van AWS. Er komt een gratis tier beschikbaar voor individuele programmeurs. Daarnaast is er een tier voor zakelijke gebruikers. Die Professional-versie onderscheidt zich deels in extra functionaliteit zoals single sign-on-beheer, maar ook met verbeterde securityscanning van code.

CodeWhisperer is Amazons tegenhanger van GitHubs CoPilot. De tool kan gekoppeld worden aan verschillende IDE's en vervolgens suggesties en verbeteringen doen voor code. CodeWhisperer kan onder andere worden ingezet in VSC en IntelliJ, maar het kan ook worden toegevoegd aan AWS-tools zoals Cloud9, Lambda en uiteraard S3.

Amazon breidt ook het aantal programmeertalen uit. In de bètaperiode werkte CodeWhisperer alleen nog met Python, Java, JavaScript, TypeScript en C#, maar nu worden daar Go, Rust, PHP, Ruby, Kotlin, C en C++ en SQL aan toegevoegd. Ook kan de tool code schrijven voor shells. CodeWhisperer scant op de tien meestvoorkomende Owasp-kwetsbaarheden. Daarnaast flagt CodeWhisperer automatisch code die lijkt op specifieke opensourcetrainingdata.

CodeWhisperer

Door Tijs Hofmans

Nieuwscoördinator

13-04-2023 • 19:58

31

Submitter: Pikkemans

Reacties (31)

31
30
22
2
0
8
Wijzig sortering
Net als de goedkope tier van copilot, zal met deze "gratis tier voor individuele developers" je code geupload worden naar hun servers en evt gebruikt als trainingsdata. Het ging ook heel goed met die Samsung medewerker die ChatGPT wilde gebruiken voor development
Je kan bij de gratis versie in de instellingen uitzetten dat ze je data gaan gebruiken voor trainingdoeleinden. Bij de gratis versie moet je dat zelf doen, bij de enterprise versie kan de beheerder dat doen.

Disclaimer: ik werk voor AWS
Vraag me af waar Amazon hier dan de training data vandaan haalt?

Voor Github Copilot was het redelijk duidelijk dat code uit github repo's gebruikt werd. Denk niet de klanten van AWS blij zijn als hun broncode gebruikt wordt in dit model.
Voor Github Copilot is alleen de code van openbare repos gebruikt.
GitHub Copilot is trained on all languages that appear in public repositories
bron
Ja, openbaar, maar geen rekening houdend met evt licenses. Openbaar betekent niet vrij om te gebruiken. Ik mag niet zomaar een foto van een 'openbaar' schilderij maken en die gaan verkopen bijvoorbeeld.
GitHub mag alle code die publiekelijk in te zien is gebruiken, ongeacht wat de license is. Dit accepteer je op het moment dat je je code open op GitHub zet. Zie ook: Analyzing the Legal Implications of GitHub Copilot
“If you look at the GitHub Terms of Service, no matter what license you use, you give GitHub the right to host your code and to use your code to improve their products and features,” Downing says. “So with respect to code that’s already on GitHub, I think the answer to the question of copyright infringement is fairly straightforward.”

[Reactie gewijzigd door langestefan op 22 juli 2024 16:07]

Maar GPL code mag natuurlijk niet geintegreerd worden in daadwerkelijke andere code. Dus er is een zeer grijs gebied waarin CoPilot je GPL suggesties gaat doen.
dat is ook precies het probleem van GPL. Sommige zaken kán je nu eenmaal niet anders implementeren dan op een bepaalde manier. Zelfs al zou je code helemaal zelf schrijven zonder de GPL code gezien te hebben, heb je al een 'probleem'. Dat staat nog los van CoPilot en consorten.
Dat probleem heb je ook met gepatenteerde code (usa only) gif, mp3 etc. Hoe ga je daar mee om?
Niet…..net als voor 99,999% van de code. Voor GPL heeft het geen zin een kleine devver aan te pakken. Voor je het weet zit je met een imagoprobleem

Voor gepatenteerde code kun je alleen grote bedrijven echt aanpakken, of kleintjes uit de markt drukken, ‘t is maar aan welke kant je staat.
Dat is een ander probleem, mijn comment gaat enkel over het trainen op code die op GH staat. Maar ja, daar moet je mee oppassen (staat ook een stuk over in de bron die ik deelde). Uiteindelijk ben jij verantwoordelijk voor jouw code, je kan GH niet aansprakelijk stellen omdat jij code met eventuele copyright problemen 1op1 overneemt zonder te checken. Dat is geheel je eigen verantwoordelijkheid. (zelfde geldt voor AWS)

[Reactie gewijzigd door langestefan op 22 juli 2024 16:07]

Uiteindelijk ben jij verantwoordelijk voor jouw code, je kan GH niet aansprakelijk stellen omdat jij code met eventuele copyright problemen 1op1 overneemt zonder te checken
Ook dat zullen we nog wel zien. Vaak is dit niet eens te te checken voor de eindgebruiker: de kennis zit in copilot, of de training daarvan.
We wachten de rechtzaken daarover ook maar af.
https://docs.github.com/e...#d-user-generated-content
We need the legal right to do things like host Your Content, publish it, and share it. You grant us and our legal successors the right to store, archive, parse, and display Your Content, and make incidental copies, as necessary to provide the Service, including improving the Service over time. This license includes the right to do things like copy it to our database and make backups; show it to you and other users; parse it into a search index or otherwise analyze it on our servers; share it with other users; and perform it, in case Your Content is something like music or video.
Zo duidelijk als gesteld is het nou ook weer niet. Dezelfde lezing van de github terms of service die mijns inziens nodig is om copilot legaal te maken zou er voor kunnen zorgen dat het github ook toegestaan is een OS uit te brengen met daarin alle public code geïntegreerd. Zonder zich aan enige licentie te houden. Ik denk niet dat dat stand zou houden.

Zeker voor code die op github geplaatst is voordat copilot een ding was is er een sterk argument dat copilot niet onder de "the Service" noemer valt. Met hoe het verwoord is, zeker het "we need" gedeelte, versta ik dat ze vooral de rechten nodig hebben die hun diensten wat betreft git hosting mogelijk maken. Copilot daaronder scharen vind ik te ver gaan, maar daar gaat een rechter vast nog wel een keer een uitspraak over doen.

Je kan beargumenteren dat copilot een soort geavanceerde zoekmachine is, zeker met hoe vaak het direct code kopieert. Wat het wel onder de tos zou doen vallen. Het probleem is dan dat het onmogelijk is om te zien wat precies de licentie is van de code die copilot genereert. Dat maakt het voor gebruikers dan weer lastig en werkt illegaal code gebruik in de hand. Dat zou ook de dienst illegaal kunnen maken. Er zijn genoeg voorbeelden van diensten die technisch gezien legaal zijn, maar doordat ze voornamelijk illegaliteit in de hand werken toch op last van de wet gesloten worden.
Zeker voor code die op github geplaatst is voordat copilot een ding was is er een sterk argument dat copilot niet onder de "the Service" noemer valt. Met hoe het verwoord is, zeker het "we need" gedeelte, versta ik dat ze vooral de rechten nodig hebben die hun diensten wat betreft git hosting mogelijk maken. Copilot daaronder scharen vind ik te ver gaan, maar daar gaat een rechter vast nog wel een keer een uitspraak over doen.
Wat mij betreft valt het trainen van een model onder 'parsing'. Ik ben geen jurist dus ik weet niet in hoeverre dat 'legaal' is. Ik ga er wel vanuit dat bij een project van deze omvang (alleen het trainen van zo'n model kost al miljoenen) dat er voldoende legale basis is om de code op deze manier te gebruiken. En dat er een team van juristen voorbereidend werk heeft gedaan in verband met verwachte rechtszaken (bijvoorbeeld deze, die al gestart is, ik verwacht er meer).
Je kan beargumenteren dat copilot een soort geavanceerde zoekmachine is, zeker met hoe vaak het direct code kopieert. Wat het wel onder de tos zou doen vallen. Het probleem is dan dat het onmogelijk is om te zien wat precies de licentie is van de code die copilot genereert. Dat maakt het voor gebruikers dan weer lastig en werkt illegaal code gebruik in de hand. Dat zou ook de dienst illegaal kunnen maken. Er zijn genoeg voorbeelden van diensten die technisch gezien legaal zijn, maar doordat ze voornamelijk illegaliteit in de hand werken toch op last van de wet gesloten worden.
Er is inmiddels zoveel code geschreven dat je je kan afvragen hoeveel nog echt uniek is én te herleiden naar een specifieke bron, met eventuele license. Het direct kopiëren is een fout in het model, in principe kan het model namelijk geen training data opslaan. Dat die data soms wel uitgespuugd wordt komt helaas door fouten in het training proces. Het model leert namelijk geen exacte code te onthouden maar leert de logica waardoor de code tot stand is gekomen. Het is een type generatief model, het is de bedoeling dat het model de functie leert die de code gegenereerd heeft. Hoe los je dat op? Ik denk dat voorkomen beter is dan genezen. Dus ten eerste moet het model voorkomen dat het exact gekopieerde code snippets uitspuugt, dat ligt voornamelijk aan het voorkomen van overfitting. Ten tweede zou het model kunnen aangeven dat eventueel gegenereerde code mogelijk veel lijkt op de training data, met specifieke license. Maar dit is technisch een erg lastig verhaal. Ten derde vind ik dat GitHub niet verantwoordelijk is voor wat gebruikers met de output van copilot doen. Uiteindelijk ben jij de auteur van jouw code en dus verantwoordelijk, als jij gegenereerde code gebruikt waar de comments er nog zelfs bij staan dan kun je je redelijkerwijs afvragen waar die code precies vandaan komt...

[Reactie gewijzigd door langestefan op 22 juli 2024 16:07]

Ik ga er wel vanuit dat bij een project van deze omvang ... dat er voldoende legale basis is
Vragen om vergeving is makkelijker dan toestemming vooraf. De potentiële baten zijn zo immens dat het wel heel duidelijk illegaal zou moeten zijn voordat github zou besluiten er niet mee door te gaan.
Dus ten eerste... Ten tweede ...
Deze dingen zouden een hele grote stap in de goede richting zijn wat betreft legaliteit/verantwoordelijkheid. Maar op dit moment doen ze dat niet.
Uiteindelijk ben jij de auteur van jouw code en dus verantwoordelijk, als jij gegenereerde code gebruikt waar de comments er nog zelfs bij staan dan kun je je redelijkerwijs afvragen waar die code precies vandaan komt...
Het probleem is dus dat het onmogelijk is voor de gebruiker om de originele licentie te achterhalen. Als er comments bijstaan(https://twitter.com/mitsuhiko/status/1410886329924194309) dan is het overduidelijk. Maar stel dat copilot alleen die functie uitspuugt zonder comments, hoe zou een gebruiker ooit kunnen weten dat ze illegaal bezig zijn als copilot dat niet vermeld? Github zal zeker aansprakelijk gehouden worden, ik denk dan ook dat die class-action bijvoorbeeld een grote kans van slagen heeft.
Maar stel dat copilot alleen die functie uitspuugt zonder comments, hoe zou een gebruiker ooit kunnen weten dat ze illegaal bezig zijn als copilot dat niet vermeld? Github zal zeker aansprakelijk gehouden worden, ik denk dan ook dat die class-action bijvoorbeeld een grote kans van slagen heeft.
Het lijkt me sterk dat een enkele functie beschermd wordt door copyright, laat staan dat er rechtszaken over gevoerd gaan worden over kleine stukjes code. Bewijs maar even dat het uit jouw project kwam en niet uit een ander. Zoals ik al eerder zei, er is inmiddels zoveel code op het internet te dat je exact dezelfde functie op verschillende plekken kan vinden, er is weinig nog echt uniek.
Sorry, maar dit is maar de interpretatie van "een" jurist. Zoals je link zelf al aangeeft loopt er intussen sinds augustus vorig jaar een aanklacht. Er zitten zeker limieten aan wat valt onder "fair use" en dat weet github zelf ook.
Ah oke, dus je hebt geen argumenten dus je valt de auteur maar aan? En dat er een aanklacht loopt bewijst niks, iedereen kan een aanklacht starten om wat voor reden dan ook. Zou eerst het oordeel maar afwachten voordat je met conclusies komt.
Valt de auteur aan? Hoe kom je daar nou weer bij? Waar doe ik dat?
Zoals het artikel zelf schrijft
To answer these questions (and to put Copilot in the appropriate legal context), we turned to Kate Downing, an IP lawyer who specializes in helping software companies navigate areas like open source compliance.
Hoe zie jij daarop wijzen als een aanval op de auteur?

Jij lijkt mij nu eerder aan te vallen met "jij hebt geen argumenten". Ik ga er toch maar even vanuit dat je bekend ben met de argumenten tegen de praktijken die github gebruikt. Er zijn immers genoeg artikelen over geschreven. Ik zou die niet allemaal aan hoeven te halen.
En die aanklacht loopt nog inderdaad. Dat zal ook nog wel een tijd duren.

Punt blijft dat jouw eerste claim (die je nu met je edit anders geformuleerd hebt) "github doet niets verkeerd" niet bepaald is een daardoor niet klopt.

[Reactie gewijzigd door MeMoRy op 22 juli 2024 16:07]

Als jij je code openbaar maakt ongeacht de licentie stem je er feitelijk mee in dat er anderen door geïnspireerd raken. Je kan als je code ziet deze niet meer niet gezien hebben. Ik meen ook dat dat de reden was van Torvalds ooit om code contributies weke komt van mensen die gestolen broncode van Windows hadden gezien niet te accepteren. Als je opensource code volgens de licentie niet zomaar mag overnemen, dan kun je die anders maar beter niet lezen. En dat defeats te purpose of open source.
geïnspireerd is één ding. Het is echter in een paar situaties al aangetoond dat copilot letterlijke code van anderen reproduceert, zonder de bron te citeren of tegen licentieovereenkomsten in.

Om dit weer even naar het kunstdomein te trekken met een voorbeeld: ja, ik mag een schilderij maken in de stijl van een Van Gogh. Maar als ik een Van Gogh letterlijk tot in alle details namaak en die verkoop als mijn eigen werk, dan mag dat niet.

Ik zou als copilot (of andere gelijke services) gebruiker op z'n minst willen weten dat code die het voorstelt onder een bepaalde licentie valt. Als ik andere namelijk die code gebruik in mijn product en de originele schrijver komt daar ooit achter, dan staat mij een rechtszaak te wachten.
CodeWhisperer heeft een referentiepaneel, je kan zien welke broncode gebruikt en wat de licentie daarvan is. Volgens mij, wat ze hebben aangekondigd is dat in de enterprise versie je ook licentiebeperkingen kan instellen.
Een heel groot gedeelte van de Github repositories zijn publiek toegankelijk, heel veel daarvan is zelfs open source. Dus...
Amazon heeft haar eigen Github tegenhanger AWS CodeCommit. Naast publieke examples van Github and Gitlab zal daar vast ook data vandaan komen.
AWS heeft eigen API's voor hun diensten en heeft ook AWS CDK met best practices ingebouwd voor alle infrastructuur code.
Ze hebben ook een transpiler tussen TypeScript en de andere genoemde script talen. Die wordt al jaren gebruikt door het CDK team.

En geven de meeste code voorbeelden voor de API al jaren in meerdere talen.

Maar uiteraard zijn ze ook de eigenaar van alle code van de Amazon webshop en alle code die de infrastructuur beheerd.

Uiteraard is AWS groot, heel groot. Mer onvoorstelbaar veel capaciteit. Het is niet ondenkbaar dat hun model ook gewoon alle openbare GitHub repo's als input heeft en mede is getraind met Github Copilot als een van de 'reviewers'.

Cool
Er zit een foutje op https://docs.github.com/e...d-features#github-copilot
De link "For enterprise users, your use of GitHub Copilot is governed by the GitHub Copilot Product Specific Terms"
verwijst naar een niet bestaande pagina.
Een jurist van AWS zou dat kunnen interpreteren dat er geen Copilot specifieke voorwaarden zijn voor enterprise users. :*)

[Reactie gewijzigd door djwice op 22 juli 2024 16:07]

Amazon breidt ook het aantal programmeertalen uit. In de bètaperiode werkte CodeWhisperer alleen nog met Python, Java, JavaScript, TypeScript en C#, maar nu worden daar Go, Rust, PHP, Ruby, Kotlin, C en C++ en SQL aan toegevoegd.
https://aws.amazon.com/bl...-now-generally-available/
Amazon CodeWhisperer is generally available today to all developers—not just those with an AWS account or working with AWS—writing code in Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell scripting, SQL, and Scala.
Ook Shell scripting en Scala zo te zien. Valt Powershell ook onder Shell scripting of bedoelen ze enkel Bash voor Linux?

[Reactie gewijzigd door Slashdotter op 22 juli 2024 16:07]

Ik heb het net eventjes getest, maar waarbij copilot echt kennis heeft van jouw repo, heeft codewhisper dat toch minder. Het genereert ook minder regels code dan copilot. Maar misschien is het nu ook beetje unfair, omdat ik een betaalde copilot account gebruikt vs de gratis codewhisperer.
Zat gisteren nog te denken hoe deze ontwikkeling een goudmijn gaat zijn voor cloud bedrijven en hoe gevaarlijk het zal zijn voor bedrijven.

Met een machine learning model die de code base voor jouw bedrijf ontwikkeld, draait en volledig in controle is weet je als bedrijf niet waar kosten op gebaseerd zijn en hoe je kosten kan reduceren. Zit al enige tijd in de DevOps hoek en door bepaalde ingrepen kunnen we kosten reduceren door iets meer risico te lopen. Creatieve oplossingen.

Enige tijd geleden zat ik in kosten en contract gesprekken voor een grote multinational met een grote cloud hoster. Uit onderzoek was gebleken dat de Enterprise korting die we kregen lager was dan de daadwerkelijke korting die was door berekend. Vanuit de cloud partij was er een totaal onbegrip en werd keihard geclaimd: nee je krijgt x procent korting en dat kan niet meer zijn. Voor een multinational is dat erg vervelend, want je budget gaat naar beneden bijgesteld worden door management omdat je meer korting gekregen hebt terwijl nergens op papier staat dat je daadwerkelijk recht hebt. Dit speelt nu al terwijl je een groot deel controle hebt, ik moet er niet aan denken hoe dit soort gesprekken gaat zijn als een model volledig in controle is. De eerste modellen heb ik al gezien die code uitrollen en draaien. Als Amazon en Microsoft zijnde snap ik helemaal dat men hier sterk op in zet.

Je kan filosoferen hoe ver dit gaat. Modellen als dit geeft je een enorme macht, nu kan je als klant nog gebruik maken van deze dienst verleners, maar door deze partijen alle bedrijfs logica te voeren in hun modellen geef je ze de mogelijkheid om directe concurrent te worden terwijl je het model zelf betaald hebt zitten voeren.
Het lijkt wel of Google zwaar achter loopt.
Wat ik me afvraag bij deze copilot systemen welke getrained zijn op andermans code. Wat als ik tijdens het programmeren een suggestie van copilot gebruik die 1op1 andermans code reflecteert.
Is dit dan plagiaat?

Op dit item kan niet meer gereageerd worden.