|
|
||
|---|---|---|
| .. | ||
| GPT-PyTorch.ipynb | ||
| README.md | ||
README.md
Forhåndstrente store språkmodeller
I alle våre tidligere oppgaver trente vi et nevralt nettverk for å utføre en bestemt oppgave ved hjelp av et merket datasett. Med store transformer-modeller, som BERT, bruker vi språklæring i en selv-supervisert tilnærming for å bygge en språkmodell, som deretter spesialiseres for spesifikke oppgaver gjennom videre domenespesifikk trening. Det har imidlertid blitt vist at store språkmodeller også kan løse mange oppgaver uten NOEN domenespesifikk trening. En familie av modeller som kan gjøre dette kalles GPT: Generative Pre-Trained Transformer.
Quiz før forelesning
Tekstgenerering og forvirring (Perplexity)
Ideen om at et nevralt nettverk kan utføre generelle oppgaver uten videre trening presenteres i artikkelen Language Models are Unsupervised Multitask Learners. Hovedideen er at mange andre oppgaver kan modelleres ved hjelp av tekstgenerering, fordi det å forstå tekst i bunn og grunn betyr å kunne produsere den. Siden modellen er trent på en enorm mengde tekst som omfatter menneskelig kunnskap, blir den også kunnskapsrik om et bredt spekter av emner.
Å forstå og kunne produsere tekst innebærer også å vite noe om verden rundt oss. Mennesker lærer i stor grad ved å lese, og GPT-nettverket er likt på dette området.
Tekstgenereringsnettverk fungerer ved å forutsi sannsynligheten for neste ord $P(w_N). Den ubetingede sannsynligheten for neste ord tilsvarer imidlertid frekvensen av dette ordet i tekstkorpuset. GPT kan gi oss **betinget sannsynlighet** for neste ord, gitt de foregående: P(w_N | w_{n-1}, ..., w_0)$
Du kan lese mer om sannsynligheter i vårt Data Science for Beginners Curriculum
Kvaliteten på en språkmodell for tekstgenerering kan defineres ved hjelp av forvirring (perplexity). Dette er en iboende metrikk som lar oss måle modellens kvalitet uten et oppgavespesifikt datasett. Den er basert på begrepet sannsynlighet for en setning – modellen tilordner høy sannsynlighet til en setning som sannsynligvis er ekte (dvs. modellen er ikke forvirret av den), og lav sannsynlighet til setninger som gir mindre mening (f.eks. Kan det gjør hva?). Når vi gir modellen vår setninger fra et ekte tekstkorpus, forventer vi at de har høy sannsynlighet og lav forvirring. Matematisk er det definert som normalisert invers sannsynlighet for testsettet:
\mathrm{Perplexity}(W) = \sqrt[N]{1\over P(W_1,...,W_N)}
Du kan eksperimentere med tekstgenerering ved hjelp av GPT-drevet teksteditor fra Hugging Face. I denne editoren begynner du å skrive teksten din, og ved å trykke [TAB] vil du få flere fullføringsalternativer. Hvis de er for korte, eller du ikke er fornøyd med dem – trykk [TAB] igjen, og du vil få flere alternativer, inkludert lengre tekststykker.
GPT er en familie
GPT er ikke en enkelt modell, men snarere en samling av modeller utviklet og trent av OpenAI.
Blant GPT-modellene har vi:
| GPT-2 | GPT-3 | GPT-4 |
|---|---|---|
| Språkmodell med opptil 1,5 milliarder parametere. | Språkmodell med opptil 175 milliarder parametere | 100T parametere og aksepterer både bilde- og tekstinnganger og gir tekst som utdata. |
GPT-3 og GPT-4-modellene er tilgjengelige som en kognitiv tjeneste fra Microsoft Azure, og som OpenAI API.
Prompt Engineering
Siden GPT er trent på store mengder data for å forstå språk og kode, gir de svar basert på innganger (prompter). Prompter er GPT-forespørsler eller spørsmål der man gir instruksjoner til modellene om oppgavene de skal fullføre. For å oppnå ønsket resultat, trenger du den mest effektive prompten, som innebærer å velge riktige ord, formater, fraser eller til og med symboler. Denne tilnærmingen kalles Prompt Engineering.
Denne dokumentasjonen gir deg mer informasjon om prompt engineering.
✍️ Eksempelnotatbok: Leke med OpenAI-GPT
Fortsett læringen din i følgende notatbøker:
Konklusjon
Nye generelle forhåndstrente språkmodeller modellerer ikke bare språkstrukturen, men inneholder også store mengder naturlig språk. Dermed kan de effektivt brukes til å løse noen NLP-oppgaver i zero-shot- eller few-shot-innstillinger.