Bij al onze eerdere taken trainden we een neuraal netwerk om een bepaalde taak uit te voeren met behulp van een gelabelde dataset. Met grote transformator-modellen, zoals BERT, gebruiken we taalmodellering op een zelf-superviserende manier om een taalmodel te bouwen, dat vervolgens wordt gespecialiseerd voor specifieke downstream-taken met verdere domeinspecifieke training. Het is echter aangetoond dat grote taalmodellen ook veel taken kunnen oplossen zonder ENIGE domeinspecifieke training. Een familie van modellen die daartoe in staat is, wordt GPT genoemd: Generative Pre-Trained Transformer.
Het idee dat een neuraal netwerk algemene taken kan uitvoeren zonder downstream-training wordt gepresenteerd in het artikel Language Models are Unsupervised Multitask Learners. Het belangrijkste idee is dat veel andere taken kunnen worden gemodelleerd met tekstgeneratie, omdat het begrijpen van tekst in wezen betekent dat je het kunt produceren. Omdat het model is getraind op een enorme hoeveelheid tekst die menselijke kennis omvat, wordt het ook deskundig op een breed scala aan onderwerpen.
Tekst begrijpen en kunnen produceren houdt ook in dat je iets weet over de wereld om ons heen. Mensen leren ook in grote mate door te lezen, en het GPT-netwerk is in dit opzicht vergelijkbaar.
Netwerken voor tekstgeneratie werken door de waarschijnlijkheid van het volgende woord te voorspellen
Je kunt meer lezen over waarschijnlijkheden in ons Data Science for Beginners Curriculum.
De kwaliteit van een taalgenererend model kan worden gedefinieerd met behulp van perplexity. Dit is een intrinsieke maatstaf waarmee we de kwaliteit van het model kunnen meten zonder een taak-specifieke dataset. Het is gebaseerd op het idee van de waarschijnlijkheid van een zin - het model kent een hoge waarschijnlijkheid toe aan een zin die waarschijnlijk echt is (d.w.z. het model is niet verward door de zin), en een lage waarschijnlijkheid aan zinnen die minder logisch zijn (bijv. Kan het wat doen?). Wanneer we ons model zinnen uit een echte tekstcorpus geven, verwachten we dat ze een hoge waarschijnlijkheid en een lage perplexity hebben. Wiskundig wordt dit gedefinieerd als de genormaliseerde inverse waarschijnlijkheid van de testset: $$ \mathrm{Perplexity}(W) = \sqrt[N]{1\over P(W_1,...,W_N)} $$
Je kunt experimenteren met tekstgeneratie met behulp van de GPT-aangedreven teksteditor van Hugging Face. In deze editor begin je met het schrijven van je tekst, en door op [TAB] te drukken krijg je verschillende opties voor voltooiing. Als ze te kort zijn, of je bent er niet tevreden mee - druk opnieuw op [TAB], en je krijgt meer opties, inclusief langere stukken tekst.
GPT is niet één enkel model, maar eerder een verzameling modellen die zijn ontwikkeld en getraind door OpenAI.
Onder de GPT-modellen hebben we:
| GPT-2 | GPT 3 | GPT-4 |
|---|---|---|
| Taalmodel met tot 1,5 miljard parameters. | Taalmodel met tot 175 miljard parameters | 100T parameters en accepteert zowel beeld- als tekstinvoer en geeft tekstuitvoer. |
De GPT-3 en GPT-4 modellen zijn beschikbaar als een cognitieve dienst van Microsoft Azure, en als OpenAI API.
Omdat GPT is getraind op enorme hoeveelheden data om taal en code te begrijpen, geven ze outputs als reactie op inputs (prompts). Prompts zijn GPT-inputs of queries waarbij je instructies geeft aan modellen over taken die ze vervolgens voltooien. Om een gewenst resultaat te verkrijgen, heb je de meest effectieve prompt nodig, wat inhoudt dat je de juiste woorden, formats, zinnen of zelfs symbolen selecteert. Deze aanpak wordt Prompt Engineering genoemd.
Deze documentatie biedt je meer informatie over prompt engineering.
✍️ Voorbeeld Notebook: Spelen met OpenAI-GPT
Ga verder met leren in de volgende notebooks:
Nieuwe algemene vooraf getrainde taalmodellen modelleren niet alleen de taalstructuur, maar bevatten ook een enorme hoeveelheid natuurlijke taal. Hierdoor kunnen ze effectief worden gebruikt om enkele NLP-taken op te lossen in zero-shot- of few-shot-instellingen.