Gegevens worden door AI-taalmodellen opgeslagen in de vorm van kolommen met cijfers. Hoe precies dat werkt en waarom daardoor de intelligentiefunctie van mensen wordt ontcijferd? Zijn er in het AI-model na het trainen persoonlijke of zelfs auteursrechtelijk beschermd gegevens aanwezig?
Inleiding
De overwinningstoer van de huidige kunstmatige intelligentie begon in 2017, toen de Transformer- benadering werd uitgevonden. Hij werkt met een coder en decoder en maakt gebruik van zogenaamde Embeddingen als dragers van betekenis (Semantiek). Een embedding is een reeks getallen die ook vector genoemd wordt.
Bij taalmodellen is de idee, de bedeuting van een woord over zijn context te bepalen en als vector op te slaan. De context van een woord zijn vooral de andere woorden in hetzelfde zin. Betekenis ontstaat dus door analyse van het gemeenschappelijke optreden van meerdere begrippen (kookkurrenz).
Een hedendaagse AI werkt dus zo dat elke soort gegevens wordt omgezet in getallenreeksen. Gegeentypen zijn bijvoorbeeld tekst (bij taalmodellen), gesproken taal, beelden, video's, muziek, temperatuursensoren, weersvoorspellingen, aandelenkoersen, seismologische waarden, geurzintuigingsgegevens, UV-sensorwaarden en alles wat in getallen uitgedrukt kan worden, dus digitaal gemaakt kan worden.
In taalkundige modellen van het AI-systeem worden soms hele woorden opgeslagen.
Geldt ook voor recentere ChatGPT-modellen, zie artikel.
Dat komt volgens mij precies overeen met hoe het menselijke brein werkt. Het brein functioneert eerst analoog, de computer digitaal. Omdat biologische neuronen bij mensen een actiepotentiaal hebben, wordt analog snel digital.
Voor AI-taalmodellen worden dus teksten in eenheden als zinnen opgedeeld en vervolgens omgezet in semantisch geladen getallenreeksen. Dit wordt bijvoorbeeld bereikt met behulp van de algoritme genaamd Word2Vec, die voor elk woord in een context een vector berekent. Tegenwoordig zijn er betere methoden dan Word2Vec beschikbaar, die naar buiten toe eveneens op dezelfde manier werken (zie bijvoorbeeld zogenaamde Sentence Transformer).
Vectorrekenen
Twee vectoren kunnen met klassieke wiskunde onder andere worden afgetrokken van elkaar. Evenzo kan hun verschillende berekend worden. Het verschil is hier de semantische gelijkenis of ongelijkenis van twee begrippen, uitgedrukt over hun vectoren.
Voor een grote verzameling documenten kan men met Word2Vec de vectoren voor alle mogelijke, in de documentenverzameling (corpus) voorkomende begrippen berekenen. Het systeem heeft tot nu toe geen enkel begrip van de Duitse (of Engelse) grammatica. Toch "weet" het systeem door vergelijkingen van vectoren welke begrippen zich semantisch op elkaar gedragen.
Sommige populaire conclusies die met Word2Vec mogelijk gemaakt worden zijn:
- Polen verhoudt zich tot Warschau als Spanje tot Madrid (vetgedrukte term die Word2Vec zelf heeft bepaald, wanneer men de eerste drie cursieve termen invoert).
- Het Duitse woord Katze correspondeert met het Engelse woord Kattenafbeelding (met Word2Vec kunnen dus vertalingen worden gemaakt, en dat ook contextueel: "Schnecke" kan een dier zijn, maar ook een faciliteit voor de financiering).
- _Kanjer plus vrouw minus man = Kanjerin
De basis voor alles zijn maar woorden die in een context voorkomen, dus in zinnen. Precies zo kunnen mensen ook teksten begrijpen, met de nu nog aanwezige verschillen dat machines veel minder omgevingservaring hebben dan mensen. Dat zal zich binnenkort zeker veranderen en zal leiden tot het feit dat robots de intelligentste entiteiten op deze planeet (en andere planeten) zullen zijn. Behalve als de mens zichzelf in de tussentijd heeft uitgeroeid en geen robots meer kan bouwen.
Terug naar de vraag, hoe een AI-taalmodel gegevens, dus begrippen opslaat en of deze begrippen persoonsgerelateerd kunnen zijn. Een persoonsrelatie zou dan te bevestigen zijn als eigennamen of identificatoren zoals telefoonnummers, kentekens van voertuigen of fiscaal identificatienummers rekonstruierbaar in het AI-model opgeslagen zouden worden.
Voorbeeld van de gegevensopslag in het AI-model
De volgende screenshot toont een uittreksel uit het woordenboek van een Duits AI-model dat onderworpen is aan de GPT-2 architectuur van OpenAI. GPT-2 is in tegenstelling tot zijn opvolgers nog openbaar gemaakt.

In totaal bestaat het woordenschat uit exact 52.000 woorden. De reden voor deze relatief lage hoeveelheid (gemeten aan de grotere hoeveelheid bestaande Duitse woorden) volgt hieronder.
Datenparen zijn herkenbaar. De eerste helft is in de afbeelding geel gekleurd en vertegenwoordigt een begrip. De tweede helft is het indexnummer of identificator van het begrip en hier in blauwe kleur te zien.
Bij het bekijken van de begrippen valt op dat veel een storend teken voorafgaan. Dit ligt aan de desbetreffende codificatie van het vocabulair en wordt verderop opgelost.
De begrippen werden bepaald door talrijke teksten te gebruiken voor het trainen van het taalmodel. Het corpus van de teksten is opgebouwd in een bestaand voorbeeldmodel, met behulp van een aflevering van Wikipedia, het EU Bookshop corpus, Open Subtitles, CommonCrawl, ParaCrawl en News Crawl.
De teksten werden dan in woorden opgesplitst, wat een bepaalde uitdaging vormt. Dit probleem hoort bij het gebied van de NLP. NLP staat voor Natural Language Processing en betekent de verwerking van natuurlijke taalteksten (of andere modaliteiten). Zelfs breedgebruikte en goed ontwikkelde frameworks als Scipy en Spacy veroorzaken vaak fouten, die de ervaren AI-ontwikkelaar alleen maar weet te corrigeren door zijn eigen routines voor na-bewerking te gebruiken.
AI-taalmodellen kunnen hele zinnen letterlijk weer geven, die daardoor in het taalmodel opgeslagen zijn.
Het geldt ook voor ChatGPT-3.5 en ChatGPT-4, zie artikel.
Bij het bepalen van de begrippen ontstaan veel onzuivere resultaten, zoals hieronder wordt weergegeven. De begrippen worden op conventionele wijze bepaald, dus niet met behulp van nieuwe AI-methoden. Zij stellen een Preliminaire fase voor. Pas na het bepalen van de begrippen wordt de nieuwe AI-methodiek toegepast, door de begrippen te gebruiken om een AI-taalmodel te creëren, wat als Training wordt aangeduid. Geantraineerde modellen worden als vortraind aangeduid, en niet als getrainde modellen. De reden hiervoor is dat het mogelijk is om de modellen verder te trainen, wat als Finetuning wordt aangeduid. Bovendien kunnen eenmaal getrainde, dus gemaakte modellen rechtstreeks worden gebruikt. Zij zijn dus voor-konfektionerd (pre-trained).
Enkele van de begrippen lezen zich niet als geldige woorden. Hier een selectie van de net getoonde begrippen met korte commentaar (details en redenen daarvoor verderop):
- rechtspopul → Teilwort (Wortanfang). Geheel woord wordt waarschijnlijk "rechtspopulistisch" (met optionele postfixen "e" of "en") genoemd.
- Bemessungs → Mogelijk door streepje-zonder-spelwoord tot stand gekomen (bemestings-grondslag(en)).
- Memmingen → Correcte (in elk geval bestaande) aanduiding van een Duitse stad.
- Tasman → Teilwort (Wortanfang). Geheel woord heet waarschijnlijk „Tasmanië“.
- Straßenbahnen → Ä, Ö, Ü en ß worden onleesbaar gecodeerd, wat de term alleen maar vreemd laat uitzien voor een mens, niet echter voor een machine interpreterer.
- Italian → Het kan zijn dat een Duitse tekst een Engels woord bevatte. Niet per ongeluk kan ChatGPT-3 ook Duits spreken, hoewel het voor de taal Engels is getraind. Het zou ook mogelijk zijn dat ingelezen teksten in een andere taal dan Duits verkeerd als Duits zijn herkend.
De Tokenizer als woord- of woordfragmentengenerator
Woorden worden uit teksten gehaald door een zogenaamde Tokeniser te gebruiken. Een token is een semantische eenheid, hier een woord. Voor GPT2 bestaat de Tokenizer met de technische naam GPT2Tokenizer.
De tokenizer heeft niet alleen de taak om woorden te bepalen, dus woordgrenzen te vinden. Integendeel probeert de tokenizer een soort betekenis toe te kennen aan een woord, die in de vorm van een getal wordt gedefinieerd. De GPT-2 tokenizer geeft een ander soort betekenis aan een woord als het op het begin van een zin staat dan wanneer het midden in een zin of aan het einde van een zin staat.
Het leidt soms tot lachwezenslechte resultaten, zoals het officiële voorbeeld van de Tokenizer (zie link twee alinea's geleden) aantoont:
De invoer "Hallo Wereld" leidt tot de volgende uitvoer van de Tokenizer: [15496, 995]. Uit de twee woorden worden dus twee getallen berekend die de betekenis van de zin moeten vatten.
Dat moderne AI-taalmodellen woordfragmenten en hele woorden opslaan als tokens, is geen voorwaarde voor het voorkomen van persoonsgegevens in een AI-model, maar verhoogt wel de problematiek.
De bijna identieke invoer "Hallo Wereld", waarbij slechts een (zinneloos, maar voor de mens onbeduidend) spatieteken ervoor is geplaatst, geeft in tegenstelling daarmee de andere uitvoer [18435, 995]. "Hallo" krijgt dus de waarde 15496, terwijl " Hallo" met een spatieteken ervoor de andere waarde 18435 krijgt.
Het betekent hier iets fout te geven aan het taalmodel van de AI, als je voor één en "hetzelfde" woord twee verschillende getallen wilt genereren.
De GPT-2-tokenizer is een zogenaamde Byte-Pair-Encoding tokenizer of BPE-tokenizer. BPE codeert woorden in zogenaamde token. De token stellen woordfragmenten voor en hebben ook een komprimerende functie, omdat woordfragmenten in meerdere begrippen voorkomen kunnen en de begrippen dan platsparender opgeslagen kunnen worden. Een begrip kan echter ook in zijn geheel opgeslagen worden, zodat het precies één token overeenkomt.
Het is hierdoor te verklaren dat de bovenstaande woorddelen tot stand zijn gekomen. Een eenvoudige verificatie bevestigt in ieder geval op basisniveau, dat het woordfragment "bemestings" afgeleid is van het volledige woord "bemestingsgrondslag", het volledige woord "bemestings-grondslag" of het volledige woord "bemestingsgronden". Om dit duidelijker te maken, zijn hieronder enkele ingangen opgenomen uit de vocabulaire van het Duitse AI-taalmodel GPT-2:
- "Beoordelingscriteria"
- "Basisgrond"
- "Grondslag"
- "Grondslagen"
- "Basisgrondslag"
De eerste term "ĠBemessungs" heeft een wat vreemd klinkend eerste teken voorafgegaan, dat hier ter illustratie vet gedrukt is. Dit teken betekent dat het gaat om een begin van een woord.
De begrippen twee tot vier zijn geen woordbeginselen, omdat hun eerste teken geen steekwoord is. De ingang "Grondslag" in het vocabulair wijst erop dat een met streepje samengesteld woord als "Bemessings-Grondslag" in het tekstcorpus van de trainingsgegevens bestaat („Bemessings“ als woordbeginsel plus „Grondslag“ als woordeninde).
Begrip vijf is echter "basis" en wordt als woord begonnen wegens het eerste teken, dat een interpunctiemerk is. De ingangen twee en vijf uit de net getoonde opsomming zijn dus twee (minstens vanuit het perspectief van het AI-model semantisch) verschillende woordfragmenten. Aan de ene kant is het "basis" als woorden einde, aan de andere kant is het "basis" als woord begin. Alleen maar om volledigheidshalve: een woordfragment dat een woordbegin vertegenwoordigt kan inderdaad worden beschouwd als een volledig woord waarvan niet noodzakelijkerwijs een woorden einde als mogelijke aanvulling wordt toegekend. "Basis" is voor de Duitse lezer duidelijk een zelfstandig woord. Een woord als "basisopbouw" (hier iets gefabriceerd om een voorbeeld te hebben) heeft dezelfde woordbegin, maar daarnaast ook een aanvullend postfix en dus duidelijk een andere betekenis.
In het algemeen moet ervan worden uitgegaan dat AI-taalmodellen zowel persoons- als auteursrechtsrelevant gegevens bevatten.
Redenen: Zie artikel.
Analog kan deze verificatie worden uitgevoerd voor de boven genoemde en in het beeld getoonde woordfragmenten "Tasman" en "rechtspopul". "Tasman" wijst vrijwel duidelijk op "Tasmanië" aan. En inderdaad vindt men in het vocabulaire van het GPT-2-model de ingang "ien". Zou deze ingang niet bestaan, zou de bovenstaande verklaring een beetje wankelen. Dat is echter niet zo. Ook voor "rechtspopul" vinden we de verwachte afloop (woordafloop) "istisch", "istische", "istischen", "istischer" en "istisches". Alleen ontbreekt "istischem", maar dat is ok, want de trainingsTeksten van dit woord hoeven het niet noodzakelijk te bevatten.
Je minder vaak een woord in de trainingsgegevens voorkomt, des te langer wordt zijn opslag in het vocabularium. Een slechts één keer voorkomend woord zal waarschijnlijk onbeperkt worden opgeslagen. Een zeer veelvoorkomende term die uit veel letters bestaat, kan mogelijk worden opgeslagen als meerdere woordsfragmenten van twee of drie letters. Voor deze soort begrippen zou "ĠAsylpolitik" een voorbeeld kunnen zijn (het eerste teken is weer het controleteken dat aangeeft dat de term een beginwoord of een volledig woord vertegenwoordigt). In ieder geval zouden hooguit de optionele woordsfragmenten als eindvormen "er", "erin" en "erinnen" en hun vervoegingen (dus Asylpolitiker, Asylpolitikerin etc.) direct zichtbaar zijn.
De oppervlakte van OpenAI laat zien hoe uit een invoertekst tokens gegenereerd worden. Hier is een echt voorbeeld:

Uit de invoerzin "Hallo, dat is een tekst", bestaande uit 23 tekens, worden 10 tokens gegenereerd. De tokens zijn in het onderstaande beeld gekleurd gemaakt. Het gaat om zaken als "Hall", "o", ", ", ",", "d", "as" enzovoorts. In dit geval is het enige token dat een hele woord voorstelt, het token voor de term "tekst" uit de invoerzin. Een nog meer inzichtelijke webinterface stelt de mogelijkheid om bepaalde chatmodellen te selecteren en laat zien wat de verwachte kosten zijn voor een tokenisering. Let op: De totale processen van een chat bestaan uit meer stappen. Vooral bij ingevoerde documenten die worden geüpload, gaan de kosten omhoog.
Een woordfragment kan al zelf personenbezogen zijn. Dat is zwar duidelijk onwaarschijnlijker dan bij een volledig uitgeschreven begrip, dat uit meerdere woordfragmenten bestaat. Toch is het mogelijk. Bovendien worden namen met speciale tekens (zie bijvoorbeeld letters uit andere talen die niet in de standaardtekenset van het Duits voorkomen) zelden in woordfragmenten opgedeeld, omdat ze geen gemeenschappelijke lettercombinaties hebben met andere begrippen. Zij liggen dus vaak als volledig woord en daarmee in het duidelijke tekst in de vocabulaire van de AI.
Een woord of een eigen naam kan wel persoon gericht zijn. Of de (geïsoleerde, contextvrije) bestaanswijze van een naam in een verzameling van woorden is echter een probleem, kan betwijfeld worden. Anders ziet het er uit als wanneer een naam of een andere persoonsgerichte gegevenswaarde in een context wordt genoemd. Een dergelijke context heet zin. Meer hierover verderop. Voorafgaand aan de vraag hoe een AI-model woorden genereert.
Hoe worden uit woordfragmenten weer woorden gemaakt?
Zodra een gebruiker een vraag stelt aan een AI-model, wordt de ingevoerde tekst (ook wel prompt genoemd) gebruikt om een antwoord te genereren. Dit antwoord bestaat uit volledige zinnen en woorden, zoals onze ervaring met ChatGPT en andere taalmodellen aantoont. Hieruit is direct duidelijk dat het resultaat van de vraag aan een AI-model in de vorm van woorden ligt die zijn opgenomen in een context. Deze context wordt gevormd door zinnen.
Spannend is de vraag of gezegd kan worden dat een AI-model ook in rusttoestand persoonsgegevens kan bevatten. Voor woordfragmenten bestaat deze gevaar al, zoals hierboven beschreven.
Wat zijn persoonsgebonden gegevens?
Persoonsgebonden gegevens zijn ook gegevens die pseudoniem voorhanden zijn. Pseudoniem betekent dat een waarde van de gegevens eerst na ontcijfering weer persoonsgebonden is. Of de ontcijfering feitelijk wordt uitgevoerd of alleen objectief mogelijk is, speelt geen rol. Zie hiervoor Artikel 4 lid 1 GDPR of ook het Breyer-arrest van het EHRM (IP-adressen zijn persoonsgebonden gegevens, omdat de objectieve mogelijkheid bestaat om de abonnee te identificeren).
Hoe decodeert een AI-systeem getallenreeksen terug naar woorden?
Eerst worden bij het trainen van een taalmodel voor kunstmatige intelligentie uit woorden de boven beschreven woordfragmenten gegenereerd, die tokens heten. Elk token wordt vertegenwoordigd door een getal. Hierdoor kunnen computers beter werken.
Dan worden (afhankelijk van de toepassing) uit individuele zinnen, die bestaan uit tokens, getallenreeksen gegenereerd, die vektoren heten en zogenaamde (semantisch geladen) embeddingen vertegenwoordigen.
Deze embeddingen, dus vectoren, dus getallenreeksen, worden opgeslagen in een kunstmatig neuronale netwerk van een AI-model. Het model bestaat dus "alleen" uit getallenreeksen. Dit is een iets vereenvoudigde en onnauwkeurige, maar voor de beschouwing wel voldoende vertegenwoordiging. Een verzameling vectoren die in verhouding tot elkaar staat, wordt als Tensor aangeduid.
Een AI-taalmodel slaat persoonsgegevens op onder een pseudoniem. Pseudonieme gegevens zijn persoonsgegevens.
Vergeleek bijdrage en art. 4 nr. 1 GDPR.
Wanneer een gebruiker nu een vraag in de vorm van een prompt stelt aan het AI-model, wordt de gebruikersvraag ook omgezet in getallenreeksen, dus vectoren, dus embeddingen. Hiervoor wordt de bovenstaande beschreven tokenizer gebruikt.
Het AI-model vergelijkt vectoren (= gebruikersvraag) met vectoren (= "kennis" die het AI-model eerder is aangeleerd via trainingsgegevens). Het resultaat zijn weer vectoren (één of meerdere, afhankelijk van de lengte van de uitvoer van het AI-model).
Deze uitvoervectoren, dus getallenreeksen, dus semantisch geladende inbeddingen, worden met behulp van het net genoemde tokenizer weer ontcodet. Het resulteert in een verzameling woorden die we als zinnen aanduiden.
De Tokenizer codificeert en decodeert dus teksten. Hij codificeert de teksten bij het trainen van het AI-model en om een prompt om te zetten in een vorm die het AI-model begrijpt. Na het antwoord van het AI-model zijn er reeksen getallen voor, die de Tokenizer kan verstaan en op basis van de toewijzing van woordfragmenten aan getallen weer omzetten in woorden (zie hierboven).
Wat voor informatie zit er in het AI-model?
Veronderst dat de bovenstaande woordfragmenten (die ook hele woorden of namen kunnen zijn) geen of geen kritische persoonsgegevens bevatten. Onkritisch zou bijvoorbeeld een naam zijn. Wat is er mis mee om te weten dat er een persoon met de naam Maxi Musterpersoon bestaat? Ik zie hier geen probleem als er geen verdere kennis is die met dit naam is verbonden. Als het context ontbreekt, is de kennis van een naam waarschijnlijk onkritisch. Anders ziet het er bijvoorbeeld anders uit bij een telefoonnummer of e-mailadres uit, omdat deze de gevaar van oneerlijke reclame o.a. met zich meebrengen.
Kan ervan worden uitgegaan dat een AI-model gegevens opslaat, die als persoonsgegeven kunnen worden beschouwd? De korte antwoord is Yes. Hier is de bewijsvoering:
ChatGPT wordt de volgende vraag gesteld, op welke ChatGPT de genoemde antwoord geeft:
Vraag aan ChatGPT: "Citeer de eerste zin van artikel 1 van de AVG letterlijk Antwoord van ChatGPT: „Artikel 1, lid 1 van de Algemene verordening gegevensbescherming (AVG) luidt: „Deze verordening bevat voorschriften voor de bescherming van natuurlijke personen bij de verwerking van persoonsgegevens en voor het vrije verkeer van dergelijke gegevens.”
AI-taalmodellen kunnen aangeleerde teksten letterlijk weergeven. Hier een voorbeeld met ChatGPT-3.5
ChatGPT antwoordt op de vraag hier juist, namelijk met een exact citaat. Blijkbaar moet ervan uitgegaan worden dat individuele hele zinnen exact in het AI-model aanwezig zijn.
In het voorbeeld dat net werd gegeven, bevatten geen persoonsgegevens, maar die kunnen er wel altijd inzitten. Het gaat er vooral om wat de vraag is. Het voorbeeld moet laten zien dat in een taalmodel van een kunstmatige intelligentie exact opgeslagen kunnen worden. Uit woordjes worden niet alleen woorden gemaakt, maar hele zinnen. Bovendien vind je in Artikel 99 GDPR personnamen.
Een ander voorbeeld van 28 november 2023 ([1]) :
Het is duidelijk te zien dat met een onschuldig prompt personenbezige gegevens uit het taalmodel (hier: ChatGPT!) kunnen worden gehaald. Het hele proces kan ook automatisch plaatsvinden, want ChatGPT biedt een programmeertaalinterface (API) aan! De bovenstaande bron heeft dit trouwens al gedaan:
Using only $200 USD worth of queries to ChatGPT (gpt-3.5- turbo), we are able to extract over 10,000 unique verbatim- memorized training examples.
Zie hierboven.
De volgende uitspraak zou rechtelijk relevant zijn als deze door een AI-model werd herhaald, omdat deze informatie onder de privacyregels valt: „Miri Maiering-Höflacher uit Tuttlingen had op 17 april 1994 haar verjaardag en ondanks haar toen volle rode haren heeft ze nu geen haren meer, omdat ze lijdt aan kanker van soort X en ziekte Y die ze zich heeft opgelopen door haar activiteiten in de Reeperbahn.”
Technical basisprincipes
De volgende afbeelding verduidelijkt dat in een Transformator, die aan de basis ligt van elk hedendaags taalmodel, positiesgegevens van tekstinvoer worden gekodeerd.

Uit een invoertekst worden eerst Talen gemaakt, die vervolgens in woordvectoren worden omgezet. Woordvectoren zijn in wezen getallenreeksen. Bovendien wordt per woord of token de positie in de invoertekst gekodificeerd. De inbedding van een woord plus de positiekodificering van het woord resulteert dan in de uitvoer voor de volgende verwerkingsstappen in de Transformer en dus in het taalmodel.
Transformer is gebaseerd op een revolutionair artikel getiteld Attention Is All You Need uit 2017. Dit jaar kan dus als het begin van de moderne kunstmatige intelligentie worden gezien. In dit artikel staat onder andere:
Self-attention, sometimes called intra-attention, is an attention mechanism relating different positions of a single sequence in order to compute a representation of the sequence.
Aanbeveling is Alles wat je nodig hebt ([1])
De tekstpassage zegt dat met een wiskundig proces genaamd Aandacht („Aandacht“) de verschillende posities van invoerdata in acht worden genomen om deze te transformeren naar een semantisch geladen structuur. Aandacht is hier een vaardigheid die uit invoerdata de gegevens herkent die voor een gegeven context belangrijk lijken (niets anders dan dit raden met hoge slagingskans doet ook de mens).
Mehrfachköpfe worden gebruikt om de aanpak te verfijnen. Een kop („Head“) is hier een laag die een invoer (in het taalmodel is dit een tekst) ontvangt. Stefania Cristina schrijft hierover:
The idea behind multi-head attention is to allow the attention function to extract information from different representation subspaces, which would otherwise be impossible with a single attention head.
Bron: Stefania Cristina.
Dit betekent dat Multi-Head Attention wordt gebruikt om de capaciteiten van een taalmodel te verbeteren. Hieruit volgt ook dat een woordgetrouwe weergave van gegevens, die ooit aan een taalmodel zijn voorgelegd in de vorm van trainingsdata, iets onwaarschijnlijker wordt dan wanneer alleen één invoerkop gebruikt zou worden. Zoals het bovenstaande voorbeeld van ChatGPT aantoont, gaat de eigenschap van het taalmodel, geleerde teksten woordgetrouw weer te geven, hierdoor echter niet verloren.
In plaats van dat elke zin of frase in de taalmodel wordt opgeslagen, worden ze zo mogelijk uniek in het model opgeslagen. Hieronder is een afbeelding die dit duidelijk maakt. Getoond zijn de interne vertegenwoordigingen van twee zinnen:
- Technical Phrase: „to understand machine learning algorithms you need to understand concepts such as gradient of a function, Hessians of a matrix and optimization etc“.
- Divination: „patrick henry said give me liberty or give me death when he addressed the second virginia convention in march“.

Opmerking over de technische term: „Hessian“ heeft niets met Hessen, het land met de meest inactieve Duitse gegevensbeschermingsautoriteit, te maken, maar verwijst naar de Hessiaanse normvorm of Hesse-matrix.
De afbeelding laat de grafische voorstelling van de interne getallenweergaven van de twee genoemde zinnen zien. Links in het beeld is de technische zin weergegeven en rechts de wijze zin.
Beide afbeeldingen zien bij een korte blik op elkaar lijken, maar verschillen volledig van elkaar. Elke andere zin zou in het ideale geval een heel andere afbeelding hebben, zodat elke zin in een taalmodel uniek wordt opgeslagen en intern wordt weergegeven.
Bijzonder voor de vertaling van teksten worden encoder-decoder structuren gebruikt. In de encoder wordt de tekst ingevoerd die vertaald moet worden. Uit de decoder komt de vertaalde tekst naar buiten. Beide delen worden getraind met trainingsgegevens bestaande uit paren van invoer-tekst en vertaalde referentieteksten.
De volgende twee zinnen kunnen dus op elkaar afgestemd worden door de ingangs tekst in de uitgangs tekst van een AI taalmodel te vertalen.
- Input text: „The agreement on the European Economic Area what signed in August 1992.“
- Uitvoer (Vertaling): „Het akkoord over de Europese economische zone is in augustus 1992 ondertekend.”
Visueel kan de interne vertegenwoordiging van invoer naar uitvoerwoorden als volgt worden weergegeven:

Boven zijn de woorden van het te vertaalde ingevoerde tekst te zien. Links worden de woorden van de vertaalde tekst getoond. De kruispunten van twee woorden laten kleurrijk zien hoe sterk een woordpaar met elkaar correleert. Wit betekent de hoogste correlatie (wit). Zo is het woord "signé" maximaal gecorreleerd met "signed", wat juist lijkt te zijn, omdat beide woorden in de genoemde context in het Frans en Engels equivalent zijn. Anderzijds zijn de twee Franse woorden "a" en "éte" slechts matig (grijs) gecorreleerd met het Engelse woord "what", omdat beide Franse woorden samen worden vertaald naar een Engelse woord. De rood omrande gebied toont de bijbehorende kleurcoderingen.
Een ander voorbeeld laat zien hoe de positie van een woord in het AI-model wordt opgeslagen om de in een zin aan een actueel door het taalmodel verwerkt woord semantisch behorende woorden te bepalen:

Elke genoemde tekstregel laat van boven naar beneden de volgende verwerkingsstap van het ingevoerde tekst zien in het AI-model. In rood is het actueel verwerkte woord gedrukt. Met blauw zijn de door het taalmodel als relevant ten opzichte van het huidige woord herkenkende woorden aangegeven. Hoe donkerder het blauw, hoe relevanter het woord.
Wat met al deze voorbeelden van interne vertegenwoordiging van woorden in AI-taalmodellen wordt getoond, is dat niet alleen de positie van woorden in een AI-taalmodel worden opgeslagen, maar ook hele zinnen en zinnen die daardoor rekonstrueerbaar zijn als een AI-model wordt bevraagd. Zonder positionering zou een AI-model geen bruikbare resultaten opleveren, in ieder geval niet voor de gebruikelijke taalmodellen met de voorgestelde taken (in wezen: tekstgeneratie).
Een publicatie uit 2018 (daarom iets verouderd) merkt op dat Transformers geen bijzonder nauwkeurige opslag van positie-informatie biedt:
The transformer has no recurrent or convolutional structure, even with the positional encoding added to the embedding vector, the sequential order is only weakly incorporated.
Bron: Lillian Weng.
Alleszijnde lijkt dit niet echt negatief te zijn voor de capaciteit van hedendaagse taalmodellen om hele zinnen in oorspronkelijke vorm weer te geven, en daarmee relevant voor de bescherming van persoonsgegevens (als er sprake is van personenbezige gegevens). Een argument hiervoor lijkt ook te zijn dat de in het geciteerde artikel genoemde aanpak, SNAIL (Simple Neural Attention Meta-Learner), niet doorgebroken is. SNAIL zou de vermeende zwakte van Transformatoren moeten genezen, namelijk dat ze geen goede informatie over posities opslaan. Aangezien SNAIL momenteel niet meer relevant is, maar Transformatoren al wel zijn en deze laatste heel goed hele zinnen zonder fouten kunnen citeren, is de eerder geciteerde uitspraak van Weng nu vooral irrelevant.
Er moet in principe ervan uitgegaan worden dat een AI-taalmodel dat gebaseerd is op een modern proces als Transformer, gegevens uit trainingsinvoer in oorspronkelijke vorm kan opslaan, ook al gebeurt dit niet altijd.
Een paar woorden over Transformer
De Transformer-methode in zijn oorspronkelijke vorm, zoals voorgesteld in het artikel "Attention Is All You Need“, is gebaseerd op de bovenstaande encoder-decoder architectuur.

Zoals te zien is, berusten zowel Encoder als Decoder op Positionskoderingen en eveneens op Embeddings (Embeddings = Vektoren = Zahlenreihen).
Momenteel zijn er nog meer transformer-architecturen beschikbaar, namelijk:
- Encoder-decoder: Oorspronkelijke aanpak, vooral voor vertalingen of samenvattingen van tekst,
- Decoder-only: Kausale taalsystemen, zoals voor chatbots als ChatGPT, maar ook LLaMA, Bard, T5 en anderen.
- Enkelvoudig decoderen: Gemaskerde taalmodellen, zoals BERT.
De verschillen liggen in het detail en kunnen hier niet nader worden beschouwd. Essentieel is dat alle Transformer-architecturen analoog zijn wat betreft de gegevensopslag („training“) en het opvragen van de getrainde gegevens hebben.
Wat is nodig om informatie uit een kunstmatige intelligentie-model te halen?
Een AI-model alleen, zonder bijbehorende informatie, is een verzameling van cijfers als men het maar even bekijkt. Hieruit kan waarschijnlijk geen privacyprobleem ontstaan.
Niemand slaat een kunstmatig intelligent model op zonder de mogelijkheid te hebben of willen hebben om het model ook te gebruiken. De onderdelen die nodig zijn voor het gebruik van een kunstmatig intelligent model zijn:
- Tokenizer: Een programmaatje dat meestal in gestandaardiseerde vorm elke keer kan gedownload worden als het tussen twee keer is gewist.
- Woordenlijst (woordfragmenten) voor de tokenizer: Een tekstbestand of bestand met overwegend drukbare tekens.
- AI-model: Lijst van getallenreeksen (een vereenvoudigde beschrijving).
- Transformer: Een programma-code die meestal in gestandaardiseerde vorm elke keer kan gedownload worden als hij tussendoor is verwijderd.
Een echte samenstelling van de kerngegevens van een AI-model wordt hier getoond:

Deze gegevens worden aangeboden, zodat iemand het AI-model GPT2 kan downloaden en gebruiken. De kernbestand is pytorch_model.bin en heeft hier een grootte van ca. 3,7 Gigabyte. De bestand vocab.json bevat de hiervoor beschreven tokens. De README.md-bestand bevat instructies om het model te gebruiken. De andere bestanden met de extensie .json zijn heel klein en bevatten configuratiegegevens.
Met een AI-model gedraagt het zich zoals met een ZIP-bestand, waarin bestanden in gekomprimeerde vorm opgeslagen zijn. Niemand slaat absoluut ZIP-bestanden op, zonder later weer daarop toegang te kunnen krijgen. Daarvoor is een ZIP-programma nodig dat deze bestanden zowel kan aanmaken als weer kan ontgrendelen.
Analog is het met PDF-bestanden: Een PDF-bestand kan alleen worden geopend door iemand die een PDF-lezer heeft. Dergelijke lezersprogramma's kunnen iedereen op elk moment van overal downloaden. Analog gedraagt zich ook zo met de code voor Tokenizer en Transformer, evenals het vocabulaire voor een bepaald AI-model. AI-modellen worden altijd samen met alle benodigde onderdelen aangeboden, of als dat niet het geval is, dan wel met een beschrijving waar de onderdelen kunnen worden verkregen.
Technical Details
Niet in het kort kunnen hier een paar technische details genoemd worden. In een AI-model worden tokens niet alleen zo simpel opgeslagen. Daarin bevatten ze ook informatie over de posities van de tokens.
Het volgende eenvoudige standaardprogrammacode illustreert hoe een getraind GPT-model geladen kan worden en hoe zowel op de interne vertegenwoordiging van tokens als op hun positie-aanduidingen toegang verkregen kan worden:
from transformers import GPT2LMHeadModel #import library
model = GPT2LMHeadModel.from_pretrained('gpt2') # load AI LLM
Token-embeddings = model.transformator.wte gewicht # Tokens Embedding
position_embeddings = model.transformer.wpe.weight # Token Positionen Embeddings
De gebruikte Python-bibliothek genaamd transformers is absoluut standaard en kan altijd van het internet gedownload worden. Ze ligt zelfs open-source voor.
De commentaren aan het einde van de regels beginnen met een voorafgeplaatste ster en geven kort aan wat de programmeertaal doet. Hier wordt gebruik gemaakt van het GPT2-model, omdat dit in tegenstelling tot OpenAI-opvolgers nog steeds gratis beschikbaar is. Na het laden van het GPT-model kan het worden uitgewerkt. In bovengenoemd voorbeeldcode worden de gewichten gelezen als interne vertegenwoordiging van de opgeslagen tokens in het model. Eveneens worden de gewichten gelezen voor de posities van de tokens ten opzichte van elkaar.
Een prompt in een kunstmatige intelligentie-model invoeren en de reactie ontvangen kan met behulp van de volgende code worden gedaan:
# Convert question into Token-IDs input_ids = tokenizer(\["Are Cookies text files?"\], return_tensors="pt") # Convert Token-IDs into embeddings embeds = model.transformer.wte.weight\[input_ids, :\] # Retrieve answer from AI LLM outputs = model(inputs_embeds=embeds) # Convert first answer into text antwort = tokenizer.decode(outputs\[0\]) # Output the answer print(antwort) #Result would be at best: "No, cookies are not text files"
De code laat de verschillende stappen zien om een model te vragen en de antwoord in een leesbaar formaat te krijgen. Normaal gesproken wordt dit anders geprogrammeerd dan hier in het voorbeeld aangegeven.
Conclusie
AI-taalmodellen slaan potentieel persoonsgebonden gegevens op, want ze slaan hele woorden, woordonderdelen en woordcombinaties (= woordbeginnen en daarmee passende mogelijke woorduiteinden) op. In een AI-model liggen minstens pseudonieme gegevens.
Moderne taalkundige AI-modellen zoals ChatGPT en andere transformer-basierte modellen slaan trainingsgegevens op woord- of zelfs zinsniveau mogelijk in het origineel op.
Woorden worden potentieel opgeslagen in komprimierte (vaak maar ook ongecomprimeerde), leesbare vorm, zinnen in de vorm van referenties naar woorden met bijbehorende positie-informatie.
AI-taalmodellen zijn in staat gehele zinnen uit invoerdata woordgetrouw weer te geven. Deze capaciteit is weliswaar niet betrouwbaar aanwezig, maar moet bij twijfel aangenomen worden.
Uit een AI-model kunnen gegevens gehaald worden door de bijbehorende metadata en standaardbibliotheken te gebruiken. Zonder deze onderdelen is een AI-model onbruikbaar en kan het eigenlijk niet meer als AI-model worden aangemerkt.
Wanneer een AI-model lokaal op een eigen AI-server wordt uitgevoerd, kunnen veel gegevensproblemen worden verlicht. Een hoge prestatie van lokale modellen is vooral bij Vraag-Antwoord-Assistenten, maar ook bij documentzoekmachines of beeldgeneratoren mogelijk. Bij gebruik van modellen van derden zoals OpenAI, Microsoft of Google bestaat anderzijds het probleem dat invoerdata ergens landen en niemand weet waar.
Daher adviseren ze zichzelf voor specifieke taken in het bedrijf eigen taalmodellen. Deze bouwen typisch op voortrainde, openbaar beschikbare en tegelijkertijd prestatief modellen. De kwaliteit is vaak beter dan die van ChatGPT, omdat laatstgenoemde systeem alles mogelijke moet kunnen doen en dus soms als vooral onbetrouwbaar kan worden beschouwd, zoals eenvoudige onderzoeken laten zien (zie link).



My name is Klaus Meffert. I have a doctorate in computer science and have been working professionally and practically with information technology for over 30 years. I also work as an expert in IT & data protection. I achieve my results by looking at technology and law. This seems absolutely essential to me when it comes to digital data protection. My company, IT Logic GmbH, also offers consulting and development of optimized and secure AI solutions.
