Gesproken samenvatting — druk op afspelen om mee te lezen: de gesproken regel blijft bovenaan.
De 100% interpreteerbare next-token generator
Stuur een Bericht
Lang geleden speelden mijn vrienden en ik dit spel waarbij je je telefoon pakte en een bericht naar een vriend schreef met alleen de aanbevolen volgende woorden. Misschien heb je dit ook gedaan.
Hier is een simulator die "getraind" is op wat inhoud. Probeer het!
hey weet iemand hoe je de build kunt repareren
ik denk |
de we ik
↻ opnieuw beginnen
We spraken hierover alsof het een "Mij-bot" was. We wisten dat het woorden aanbeval op basis van onze individuele gebruikspatronen, en we konden onze stemmen in onze gepersonaliseerde aanbevelingen zien.
Destijds waren we blij om het als technische magie af te doen. Ik denk niet dat we realiseerden hoe eenvoudig het algoritme zou kunnen zijn.
Lees verder als je er een met mij wilt bouwen :)
Je Model "Trainen"
Laten we trainen op een handvol berichten. Alles wat we hoeven te doen is de verbindingen tussen woorden tellen. Laten we dit bericht voor bericht doen.
\+ Voeg bericht 1 toe
De Transitiematrix
Voeg hierboven berichten toe om de matrix te beginnen bouwen.
Deze voltooide kaart van verbindingen tussen woorden wordt een frequentietabel genoemd. Normaliseer elke rij en je krijgt een waarschijnlijkheidsverdeling van wat volgt.
Het kiezen van een volgende woord op basis van wat je tot nu toe hebt, wordt sampling genoemd. We gebruiken dezelfde term voor dit proces met moderne taalmodellen zoals Claude.
Doe Wat Sampling
Gebruik dezelfde matrix op basis van 5 teksten en speel opnieuw ons spel. We laten je de waarschijnlijkheden zien.
↻ opnieuw beginnen
De gemarkeerde rij is je huidige context. Kies een woord uit de beschikbare opties om door te gaan.
Schaal het op
Vijf berichten gaven ons een kleine matrix en een handvol voorspellingen. Wat gebeurt er met meer gegevens?
\+ 1 bericht \+ 10 \+ 50 Alles 222
5berichten
17unieke woorden
13contexten
24transities
2max opties
Na :
De knoppen
Toen je aan het samplen was, kon je waarschijnlijkheden zien, maar je gebruikte ook je intuïtie over welke woorden "juist voelden".
Als je code moest schrijven om die keuzes te maken in plaats van je gevoel te gebruiken, welke gecodeerde regel denk je dat het beste resultaat zou opleveren?
Kies altijd het woord met de hoogste waarschijnlijkheid Kies semi-willekeurig, volgens waarschijnlijkheden Kies volgens waarschijnlijkheden, maar boost ook de meest waarschijnlijke keuzes Negeer alles onder een bepaalde waarschijnlijkheidsdrempel Beschouw alleen de top N opties Goblin-modus — negeer de waarschijnlijkheden en kies iets willekeurigs
Laat me de knoppen zien
Geweldig. Speel met de knoppen hieronder om te zien hoe samplingparameters de keuzes van een taalmodel beïnvloeden. Controleer vervolgens hoe je intuïties in kaart zijn gebracht.
Ontwikkelaars gebruiken parameters zoals temperature en tail trimming om sampling na de waarschijnlijkheden te verbeteren.
Na "denk":
Temperature 1. 0
gericht willekeurig
Trouw samplen uit de verdeling.
Tail trimming
Verwijder onwaarschijnlijke woorden volledig voordat je sampled.
Geen Top-k Top-p
Top woorden3
Alleen de 3 meest waarschijnlijke woorden overleven.
Waarschijnlijkheidsmassa0. 9
Behoud de kleinste set woorden waarvan de waarschijnlijkheden optellen tot 90%.
In tegenstelling tot top-k, past dit zich aan aan zekerheid — wanneer het model zeker is, overleven minder woorden. Wanneer onzeker, meer.
Genereer reset
Als je eerder een keuze hebt gemaakt, heb je intuïtief een van deze benaderingen geselecteerd.
Hoe paste mijn intuïtie bij deze parameters?
De brug
De samplingstrategieën die je zojuist hebt gebruikt, zijn min of meer dezelfde samplingbeperkingen die ontwikkelaars aan Claude doorgeven. Voor LLM's zijn er enkele verschillen.
Markov-keten
LLM
1 Lees context
laatste woord: "denk"
1 Lees context
heel het gesprek tot nu toe
2 Bereken verdeling
zoek één rij in een tabel op
2 Bereken verdeling
forward pass door miljarden parameters — attention, embeddings, feedforward layers, residual connections, layer norms...
3 Sample volgende token
de 32% de 16% ik 11%
3 Sample volgende token hetzelfde proces
de 32% de 16% ik 11%
De Markov-tabelopzoeking is een echt eenvoudige en verklaarbare operatie. Een forward pass door een neuraal netwerk is behoorlijk ingewikkelder. Maar in beide gevallen is de output hetzelfde: een waarschijnlijkheidsverdeling van waarschijnlijke volgende woorden of tokens.
Hoewel sampling hetzelfde is, is training radicaal anders. De exponentiële muur van eerder (vocabulaireN rijen) is niet van toepassing. LLM's ruilen de interpreteerbaarheid van simpelweg woorden tellen in voor veel meer context en veel grotere mogelijkheden.
100 Jaar Oude Technologie
"Is dit echte technologie? " Goeie vraag, lezer.
Markov publiceerde dit idee in 1906. Een eeuw later in 2010 waren n-gram modellen zoals dit next-word prediction op je telefoon aan het aansturen (SwiftKey, daarna Apple's QuickType). Rond 2015 begonnen neurale netwerken — eerst RNN's, daarna transformers in 2017 — de tabelopzoekaanpak te vervangen door een geleerde functie, en de rest is... nou ja, waar we nu aan werken.