Citat:
Ursprungligen postat av
Ola Schubert
Fast att modellen ändå kan "förstå" mycket har väl att göra med att den har en massa tokens, ord, meningar och koncept kopplade till varandra i många olika dimensioner. Jag testade, på ChatGPT-4:s förslag att försöka utforska modellens menings"rymd". Det gick till så att jag fick skriva ett ord. Modellen kom sedan med några associationer och jag fick välja en av dem och modellen kom med ett antal nya associationer, osv. Jag vet inte om jag hann få någon uppfattning om hur dess menings"rymd" var organiserat. För trots att inget tak för inlägg fanns angivet för tillfället så kom det ganska snart ett meddelande om att ett sådant var nått, dessutom var det sent på kvällen för mig.
Jag ska försöka förklara så klart och tydligt om min uppfattning och förståelse här, (sen som sagt säger jag vare sig den är fullständig eller korrekt, utan baseras på min förståelse och uppfattning och till stor del baserad på just neurala nätverk snarare än transformers- attention mekaniken är den jag förstår klart minst av detta, även om jag tror mig ha en hyfsad förståelse på ett konceptuellt plan men det är hela magin bakom stora språkmodeller)
Det icke kontroversiella är typ (och i huvudsak gemensamt för all ANN träning, dock kraftigt förenklat här).
1. Text data läses från ett lagringsutrymme - säg en text fil som säger "Masken är ett djur som lever i jorden"
2. Datan kodas sedan om till token- för enkelhetens skull kan vi säga att en token motsvarar ett ord men det behöver inte göra detta, det är ett val man gör baserat på hur stort vokabulär osv som man vill tillägna vikter osv, (Låt oss säga att vi bara sekventiellt räknar upp för varje ord nu, så 1 betyder Masken och 4 betyder djur tex)
3. Modellen kan sedan matas med tex sekvensen "1 2 3", man förväntar sig nu att den ska förutsäga token 4 5 6 7 8 utifrån denna insekvens.
4. Beroende på svar här så justeras vikterna i nätverket (man räknar ut hur långt i från förväntat svar man var och beroende på denna "felmarginal" justeras vikter mer eller mindre över hela nätverket)
5. Man repeterar från steg 1 tills all tillgänglig träningsdata har behandlats och man anser att genomsnitts felmarginal är på en förväntad nivå. (Det är det här som är det knepiga med träning för tränar du för länge kan du få en felmarginal som är för låg och nätverket blir en papegoja för just det indata du matar den med, det man vill ha fram är att in sekvens 6333 2 3 ska kunna "följa" ungefär samma kurva som "1 2 3" gjorde.
När man gjort detta så har du egentligen en variant av en autokomplete nu påbörjas fine tuning som tar modellen från att vara autocomplete till att kunna förstå "fråga - svar".
Det går är egentligen samma procedur som från steg 1 men du i stället för rena och unika faktoider har data som följer ett visst mönster tex frågor i fallet med en chatbot "Fråga: Jag ser spöken på nätterna, vad ska jag göra? Svar: Det låter som du kanske borde kontakta ett medium.", du kan ha hundratals om inte tusentals sådana.
Det gör att nätverket lär sig autocompleta ett Fråga/Svar mönster, när nätverket ska användas så matar du det alltså underytan med en liknande mall, alltså säg att användaren skrivit "Jag undrar hur regn bildas." detta blir alltså skickat till modellen som "Fråga: Jag undrar hur regn bildas. Svar:" var på modellen nu kommer komplettera det av saknade svaret baserat på sannolikheten i token sekvensen sedan tidigare (vilket nu alltså innehåller den ifyllda mallen med det tomma svaret).
Så långt är inget egentligen märkligt annat än det redan där fungerar fascinerande väl för att ge intrycket av att man konverserar med något intelligent, men som sagt det bygger på statistik från träningsdatan och inget som modellen "hittat på eller kommit underfund med själv", den har ingen aning om vad enskilda ord betyder än mindre vad den förväntas göra om du ger direktiv om något annat det har ju enbart tränats på statisk data och det har "belönats" (alltså vikt justeringen) ju mer likt exempel datan som den betett sig.
Sen som sagt spelar attention mekaniken väldigt stor roll här för det påverkar "värdet" på specifika ord och denna del är jag inte helt införstådd med varför den fungerar ännu men det har uppenbarligen visat sig fungera väldigt bra med den inneboende strukturen i mänskligt språk.
Så detta är grunden och inte jättekonstigt egentligen men självklart mer avancerat i praktiken än beskrivits här, men detta är i stora penseldrag vad som sker vid träning och användande av nätverket.
Så därför är det väldigt besynnerligt att modellen verkar få en förståelse för vad tex "Kan du ersätta alla ord som börjar med K med choklad?" för den inte bara stoppar in chocklad lite slumpartat (bara det i sig är intressant) men den förstår vad "ersätt" betyder. Så jag är helt med på de som påstår att nätverket bildar en förståelse och hur detta går till och varför är underligt speciellt eftersom denna förståelse sker efter träningen är slutförd. (Om det nu inte är så att OpenAI som sagt "fuskar")