GitHub brengt AI-programmer uit die helpt bij het schrijven van code, mag dat van de GPL?

GitHub heeft een technische preview uitgebracht van Copilot, een AI-gedreven pair programmer die ontwikkelaars helpt bij het schrijven van code. Dat las ik bij Tweakers. Copilot stelt contextgebonden code en functies voor, en helpt acties bij het oplossen van problemen door te leren van de code die iemand schrijft. De AI is getraind op een grote dataset van publieke broncode, en dat zal vast grotendeels open source zijn onder de GPL want dat is nu eenmaal de bulk van de “publieke” software. Maar de GPL vindt daar iets van, van hergebruik.

Copilot kan automatisch opmerkingen omzetten in code, repetitieve code aanvullen en een functie testen tijdens het schrijven. Het systeem leert en verbetert zichzelf. Het klinkt als een hele goede ontwikkeling, maar als je even doordenkt dan besef je dat dit alleen kan door een héle berg broncode door te akkeren en tot een machine learning model om te zetten. Dat zegt men zelf ook:

Trained on billions of lines of public code, GitHub Copilot puts the knowledge you need at your fingertips, saving you time and helping you stay focused.

Er is die merkwaardige gedachte dat als iets “publiek” is, dat je er dan wat mee mag. Misschien moeten we naast “data is niets” nog een juridisch mantra invoeren: “dat het publiek is, is geen argument”. Want het gaat hier om software, en die is zonder twijfel auteursrechtelijk beschermd. En wanneer die “publiek” online staat, dan weet ik vrij zeker dat het om open source gaat. En dan krijg je dus te maken met de licentie. Of niet?

Interessant genoeg zegt men in de FAQ dan:

GitHub Copilot is a code synthesizer, not a search engine: the vast majority of the code that it suggests is uniquely generated and has never been seen before. We found that about 0.1% of the time, the suggestion may contain some snippets that are verbatim from the training set. Here is an in-depth study on the model’s behavior.
Er is natuurlijk een ontzettend groot verschil tussen een lap code copypasten en heel goed kijken naar “billions of lines of code” om jezelf te trainen. Wie zei dat ook weer, kopiëren uit één bron is diefstal en kopiëren uit honderd is inspiratie? Dat lijkt me hier ook van toepassing.

Het komt neer op de algemene vraag of het maken van een machine learning model een kopie is van alle brondocumenten of -data. Als dat zo is, dan krijg je met de licentie te maken en daar zou dan in dit geval de GPL op van toepassing kunnen zijn. Dan zou alle code die Copilot suggereert, onder de GPL vallen, want dan is al die code afgeleid van de GPL code die erin ging. En dan is dus ook elk door Copilot mede geschreven project GPL.

Bewijstechnisch valt daar nog wel wat op aan te merken: de GPL auteur zal moeten bewijzen dat deze suggestie gedaan is op basis van haar code, want zonder kopie geen inbreuk. En dat zal niet meevallen. Maar dat terzijde.

Is een machine learning model inbreuk op de rechten van de brondocumenten? In de VS waarschijnlijk niet. In 2019 oordeelde de Second Ciruit (de hogerberoepsrechter voor New York, Connecticut en Vermont) dat het verwerken van stukjes uit boeken om een boekenzoekalgoritme te trainen géén inbreuk op auteursrechten is. De dataset die daarmee ontstaat, is dus niet onderworpen aan toestemming (of licentie) van de boekenrechthebbenden.

In Europa zijn er geen vergelijkbare zaken. We hebben wel de Infopaq-zaak, waarin werd bepaald dat het overnemen en verspreiden van 11 woorden (een snippet in zoekresultaten) onderworpen kan zijn aan auteursrechten, maar het ging daar om het publiceren van zoekresultaten in een nieuwsbrief. Dat is toch echt wat anders dan een statistisch model maken waarin staat dat codestukje X vaak samengaat met Y, of dat constructie A goed aansluit bij aanhef B. Ik volg dan ook de conclusie van professors Gotzen en Janssens:

Vooral de overwegingen in de arresten Infopaq I, in verband met bepaalde handelingen van ‘data capturing’ die onder het toepassingsgebied van de uitzondering kunnen vallen, verdienen aandacht. Maar de vijf voorwaarden die de uitzondering … oplegt, zijn cumulatief en, mede in het licht van de regel van de strikte interpretatie, zijn we niet geneigd om te concluderen dat alle gebruikshandelingen voor het trainen van AI-systemen die gebruik maken van beschermd materiaal, door deze uitzondering zullen worden afgedekt.
Die vijf voorwaarden zijn als volgt:
  1. deze handeling is tijdelijk;
  2. deze handeling is van voorbijgaande of incidentele aard;
  3. deze handeling vormt een integraal en essentieel onderdeel van een technisch procedé;
  4. dit procedé wordt toegepast met als enig doel de doorgifte in een netwerk tussen derden door een tussenpersoon of een rechtmatig gebruik van een werk of beschermd materiaal mogelijk te maken, en
  5. deze handeling bezit geen zelfstandige economische waarde.
Een machine learning dataset maken is een tijdelijke handeling, die essentieel en integraal nodig is om het neuraal netwerk mee te maken. Dat trainen is niet op zichzelf economisch waardevol (de exploitatie van het resultaat natuurlijk wel, maar dat bedoelt men hier niet). Punt 4 zou je dan naar analogie moeten interpreteren, wat het Hof van Justitie doet in punt 64 van het arrest:
wanneer de levensduur ervan is beperkt tot hetgeen noodzakelijk is voor de goede werking van het betrokken technische procedé, waarbij dit procedé geautomatiseerd moet zijn zodat deze handeling automatisch, zonder menselijke interventie, wordt gewist zodra de functie ervan om dit procedé mogelijk te maken is vervuld.
Oftewel in gewone taal “ik extraheer even de essentiële kenmerken om een statistisch model te maken, daarna gooi ik het weer weg” en dat zou dan mogen.

Arnoud

10 reacties

  1. Ben je het nu wel of niet eens met de heren Gotzen en Janssens?

    we [zijn] niet geneigd om te concluderen dat alle gebruikshandelingen voor het trainen van AI-systemen die gebruik maken van beschermd materiaal, door deze uitzondering zullen worden afgedekt.
    lijkt in tegenspraak met
    Oftewel in gewone taal “ik extraheer even de essentiële kenmerken om een statistisch model te maken, daarna gooi ik het weer weg” en dat zou dan mogen.

  2. Er kan m.i. een beroep gedaan worden op art. 45j Aw. Het werk is door de auteur online gezet. Een beoogd gebruik is dat anderen het lezen. Voor het lezen moet je een kopie maken. Hier gebeurt het lezen door een NN.

  3. Mag je hierbij niet de analogie maken naar het menselijke leren? En hoe zit het met Google Translate?

    Als een persoon GPL code bestudeert om daar van te leren en daarna zelf code klopt op basis van wat diegene daarvan geleerd heeft, dan is er geen sprake van een afgeleid werk. Waarom dan wel met AI? GPL code mag vrij gekopieerd en bekeken worden. Dus daar zit het hem niet in lijkt me.

  4. Is toch net zo iets als een voorspellend toetsenbord op je phone? Die is ook getrained. Maar als ik ‘deu’ intik en hij stelt ‘deur’ voor is dat echt niet meer terug te leiden naar een beschermd werk. Dat model onthoudt gewoon ‘na deu komt vaak een r’ en onthoudt verder niets van het oorspronkelijke werk.

    Datzelfe. Alleen dan in Java. En met versienummer 2.0.

  5. Of de AI de code mag gebruiken is mij niet helemaal duidelijk, maar als de code een afgeleide is van GPL moet dat toch gewoon onder de GPL? Het is lastig om dat aan te tonen, maar het grote verschil tussen mensen-leren en computer-leren is dat mensen concepten achter het programmeren gebruiken, de computer doet een “lijkt op”, dat lijkt me dan sowieso een afgeleid werk.

    Leuke extra vraag dan nog wat er gebeurt als de AI een licentie voor gaat stellen die niet klopt. Deze code komt geloof ik uit Quake, dus niet uit 2015 zoals de copyright suggereert:

    https://twitter.com/mitsuhiko/status/1410886329924194309

    1. De vraag voor mij blijft wat de computer doet. Is dat copypaste, copypaste-met-aanpassingen, een op statistische gelijkenis gebaseerd gemiddelde van jouw en andermans code of nog weer iets anders?

      De GPL geldt alleen op code die “afgeleid” is van het originele werk. Een herimplementatie van hetzelfde idee is geen afgeleide, ook al lijkt het.

    2. ‘Concept’ is een abstract begrip wat alleen in de beleving van mensen bestaat, maar niet in de wereld. Iets wat wij mensen hebben verzonnen dus en daarom nooit echt te bewijzen.

      Het is in ieder geval niet het verschil tussen hoe mensen leren en hoe computers leren. Stel we nemen als uitgangspunt de definitie van leren van Shuel: ‘een actief, constructief, cumulatief, zelfregulerend en doelgericht proces waarin de lerende zelf de regie voert.’ Ai leren is sowieso actief(cpu doet het werk), constructief(het statistische model wordt aangepast) en cumulatief(de ai leert steeds dingen bij). Zelfregulerend… maybe… soort van… maar vastgelegd in het algorithme. Doelgericht is het ook wel, de programmeur bepaalt het doel… Zelf de regie voeren, niet… Dat is het belangrijkste verschil: een computer zal nooit zelf bedenken: Laat ik het eens zus of zo proberen te leren. Of: dit lijkt me interessant om te leren! Geen eigen wil dus.

      Maar maakt dat het verschil tussen een afgeleid werk of een werk ontstaan op basis van concepten of inzicht.

  6. Het gaat allemaal om de training data. Sociale netwerken hebben je sociale netwerk, je berichten, je fotos, je likes. Je krijgt uiteindelijk die advertentie, omdat iemand met soortgelijke karakteristieken ooit op die advertentie heeft geklikt. Nu staat code generatie in de kinderschoenen, maar binnen een aantal jaar zal dat ook verbeteren. Dan wordt Github dus gekocht, omdat al die code dan training data is.

    In Amerika en China is het een ongeschreven regel dat je gewoon de zoekmachine gebruikt om gelabelde plaatjes te verzamelen. Zit je als PhD student copyright te schenden van Flickr fotograven, want alles gaat er gewoon in. Eigenlijk kan dat eigenlijk niet. Er is geen idee of die functie nu van mij is overgeschreven. Het kan goed.

    Voor de syntax is het duidelijk: je mag niet originele tekst letter voor letter overnemen, zonder bronvermelding. Maar voor de meer abstracte boodschap weer niet. Stel ik pak 3 paragraven met argumenten van 3 verschillende reageerders hier. En herschrijf ze, zonder weinig eigen creatieve inbreng. Is toch netjes dat ik dan een referentie maak? Maar het algoritme doet dat niet, want kan dit niet. Het heeft geen idee waar alle data vandaan komt, het snapt de data niet eens, het is als een alien die een mens probeert na te doen.

    Zie het dan maar als een database. Jouw invoer is het zoekwoord. En random van de top 3 resultaten kiezen als uitvoer. Dat is wat deze netwerken kunnen doen, aangezien ze artikelen en code functies compleet kunnen memoriseren. Dat is dan toch de Uber van de auteursrechtenschending? We hebben het niet geweten?

    Misschien moeten dataset makers de robots.txt accepteren, of een nieuwe dataset.txt, als de verouderde copyrights en auteursrechten niet meer werken. Ik doe MIT licentie, of CC attribution, dan wil ik die licentie op vervolgwerk, en attributie.

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.