Transformatoren en langetermijngeheugen
Transformator
Het verwerken van natuurlijke taal noemen we "natural language processing" of NLP.
Je schrijft een verhaal, niet uit je hoofd, maar een verhaal zoals een fictieschrijver een verhaal schrijft. Je schrijft zin voor zin. Terwijl je verder schrijft, onthoud je vrij goed wat je al geschreven hebt. Als iemand je verhaal later leest, klopt het. Je springt niet (in het beste geval toch) van de hak op de tak. Hoe langer het verhaal of je boek is, hoe moeilijker het wordt om jezelf niet te herhalen. Heb ik je dit niet eerder verteld? Maar over het algemeen onthouden we het voorgaande wel. Een transformatormodel heeft, net als wij, een langetermijngeheugen. Wanneer je een zin of korte tekst maakt, onthoudt het systeem alle voorgaande woorden en zinnen. Het model voorspelt het volgende woord en voegt het toe aan het langetermijngeheugen. Terwijl het model de tekst woord voor woord genereert, kan het zich ook richten op alle voorgaande woorden. Op deze manier schrijft (of vertaalt) het model een samenhangende tekst. Door toegang te krijgen tot een berg gegevens (big data), heeft het een gigantische hoeveelheid referenties.
Een transformator wordt een transformator genoemd omdat hij het ene ding in het andere "transformeert". In dit geval zet het woorden en zinnen om in getallen die een computer kan begrijpen.
Aandacht is alles wat je nodig hebt
Dus, als je tegen een transformator praat, "tokeniseert" hij eerst je woorden, wat betekent dat hij ze opdeelt in kleine stukjes, tokens genaamd. Daarna gebruikt hij een proces dat "aandacht" heet om uit te zoeken welke tokens met elkaar te maken hebben en hoe ze bij elkaar passen.
Het aandachtsproces werkt een beetje zoals je aandacht schenkt in een gesprek. Als iemand tegen je praat, concentreer je je op wat hij zegt en probeer je te begrijpen hoe zijn woorden met elkaar in verband staan. Op dezelfde manier concentreert de transformator zich op de tokens die je hem hebt gegeven en probeert te begrijpen hoe ze zich tot elkaar verhouden om betekenis te geven aan wat je zegt.
Als de transformator eenmaal doorheeft hoe de tokens zich tot elkaar verhouden, kan hij ze omzetten in getallen die een computer kan begrijpen. Deze getallen kunnen worden gebruikt om allerlei dingen te doen, zoals het vertalen van talen, het beantwoorden van vragen of het samenvatten van tekst.
Stappenplan van een transformator:
-
Tokenisatie: Wanneer je met een transformer praat of tekst invoert, wordt deze tekst eerst opgesplitst in kleinere stukjes, bekend als tokens. Dit kunnen woorden zijn, maar ook delen van woorden of zelfs individuele karakters, afhankelijk van de gebruikte tokenisatiemethode. Dit proces is vergelijkbaar met het opdelen van een zin in begrijpelijke stukjes.
-
Aandachtsmechanisme: Nadat de tekst is opgesplitst in tokens, gebruikt de transformer een proces genaamd 'aandacht' om te bepalen hoe deze tokens zich tot elkaar verhouden. Dit is een beetje zoals wanneer je aandacht besteedt aan iemand die tegen je praat; je focust op bepaalde woorden of zinnen om de betekenis te begrijpen. In het geval van een transformer beoordeelt het model de relaties tussen verschillende tokens om te begrijpen hoe ze samenhangen en invloed op elkaar hebben. Dit helpt het model om de context van elk woord of token beter te begrijpen.
-
Omzetten naar getallen: Zodra de transformer begrijpt hoe de tokens met elkaar verbonden zijn, zet hij deze tokens om in getallen. Dit is omdat computers niet direct met tekst kunnen werken, maar wel met numerieke waarden. Deze getallen vertegenwoordigen de betekenis en relaties van de tokens op een manier die een computer kan verwerken.
-
Toepassingen: De transformer kan nu deze numerieke representaties gebruiken voor verschillende taken zoals vertalen tussen talen, beantwoorden van vragen, genereren van tekst, samenvatten van tekst, en meer. Dit wordt mogelijk gemaakt door het vermogen van het model om complexe taalpatronen en contexten te begrijpen.
Het transformer model is dus in staat complexe taalstructuren te begrijpen door tekst op te delen, de relaties tussen de delen te analyseren, en deze vervolgens om te zetten in een vorm die door computers gebruikt kan worden voor diverse taalgerelateerde taken.
Al met al is een transformator een hele slimme manier om computers te helpen menselijke taal te begrijpen door deze om te zetten in iets waar ze mee kunnen werken.
Langetermijngeheugen
Het belang van een "langetermijngeheugen" werd uitvoerig beschreven in het artikel " Attention Is All You Need" (Vaswani et all, 2017). Daarbij introduceerden de auteurs een nieuw neuraal netwerk, het transformatormodel. Een 'encoder' ontvangt alle voorgaande tekst als 'input', een 'decoder' genereert stap voor stap een output(het volgende woord), terwijl hij gevoed wordt met de voorgaande 'output'. Door het aandachtsmechanisme en het langetermijngeheugen kunnen 'transformatoren' betere voorspellingen doen. Eerdere soorten neurale netwerken probeerden iets soortgelijks, maar hadden een kortetermijngeheugen. Dankzij de transformatorarchitectuur behaalt natuurlijke taalverwerking ongekende resultaten.
Lees aandacht is alles wat je nodig hebt - https://arxiv.org/pdf/1706.03762.pdf
' Diep leren' heeft een revolutie teweeggebracht in het landschap van NLP, al eerder besproken. OpenAI, mede opgericht door Elon Musk, lanceerde het GPT3(Generative Pre-trained Transformer) model in 2020. Met zijn 175 miljard parameters is het het grootste getrainde taalmodel ter wereld. Andere taalmodellen, zoals Microsoft's Turing NLG, zijn tien keer minder krachtig. Het GPT3-model is in staat om samenhangende teksten te schrijven op basis van een vraag of een korte tekst. Let op: dit wil niet zeggen dat het model echte, wetenschappelijke of politiek correcte informatie typt.
GPT vormt de basis voor het succesvolle ChatGPT.
Word2Vec - Woordinsluitingen
Word2vec is een type algoritme voor natuurlijke taalverwerking (NLP) dat wordt gebruikt om woorden weer te geven als numerieke vectoren, of "woordinsluitingen". Het werd voor het eerst geïntroduceerd in een onderzoeksartikel door Tomas Mikolov et al. in 2013.
Word2vec analyseert grote hoeveelheden tekstgegevens, zoals een corpus van boeken, en gebruikt statistische modellen om de relaties tussen woorden te leren. Het algoritme creëert vervolgens vectorrepresentaties van elk woord op basis van zijn context in de tekst.
Deze vectorvoorstellingen kunnen worden gebruikt voor verschillende NLP-taken, zoals tekstclassificatie, sentimentanalyse en automatische vertaling. Bij tekstclassificatie kunnen de woordinsluitingen bijvoorbeeld worden gebruikt om een machine-learningmodel te trainen dat documenten nauwkeurig kan classificeren op basis van hun inhoud.
Word2vec is gebruikt in verschillende AI-toepassingen, zoals chatbots, aanbevelingssystemen en zoekmachines. Het is ook gebruikt om de nauwkeurigheid van automatische vertaalsystemen te verbeteren en om meer geavanceerde taalmodellen te ontwikkelen.