Top-p-sampling
Også kendt som: nucleus sampling
En regel, hvor en sprogmodel kun vælger blandt sine mest sandsynlige næste muligheder, til deres chancer tilsammen når fx 90 %.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En form for sampling, der sorterer kandidat-tokens efter chance, beholder den mindste gruppe, hvis chancer tilsammen når mindst p, og kun trækker næste token fra den gruppe, så antallet af muligheder vokser eller bliver færre alt efter, hvor sikker modellen er.
Forklaret enkelt
Som et quizhold, der kun overvejer svar, de er rimelig sikre på - når ét er oplagt, tager de det, når de er i tvivl, vejer de flere, og vilde gæt kommer aldrig på bordet.
I praksis
En udvikler i en kommunes IT-afdeling ser brevassistenten snige mærkelige, uvedkommende vendinger ind i breve; top-p står på 1, så ethvert token kan vælges, og hun sænker den til 0,9, hvorefter de skæve vendinger bliver sjældne.
Hvorfor det betyder noget
Det er et af de vigtigste værn mod de sjældne, skæve ordvalg, der får lang tekst til at glide ud i vrøvl; sat forkert giver det enten flad, gentagende tekst eller vildfarne ord i breve til rigtige mennesker.
Teknisk uddybning
Algoritmen fra Holtzman m.fl. ("The Curious Case of Neural Text Degeneration", ICLR 2020) er kort. Sortér ordforrådet efter faldende sandsynlighed, beregn den kumulative sum, behold det mindste præfiks V(p), hvis samlede sandsynlighed er mindst p, sæt alle andre sandsynligheder til nul, normalisér de overlevende igen, så de summerer til 1, og træk fra den afskårne fordeling. Den mængde, der beholdes, kaldes kernen (nucleus). Med p = 1 fjernes intet; når p nærmer sig 0, overlever kun det mest sandsynlige token, og metoden bliver til grådig afkodning.
Motivationen var en diagnose af to modsatte fejl. Afkodning, der maksimerer sandsynligheden, som beam search, giver generisk, gentagende tekst, der havner i løkker, mens ren sampling fra hele softmax-fordelingen jævnligt trækker fra den upålidelige hale - titusindvis af tokens, der hver for sig er usandsynlige, men tilsammen har betydelig sandsynlighedsmasse. Top-k-sampling skærer halen af ved et fast antal kandidater, men intet fast k passer til alle trin: Efter "Frankrigs hovedstad er" ligger næsten al massen på ét token, så k = 40 lukker vrøvl ind, mens hundredvis af tokens er rimelige i starten af en kreativ sætning, og k = 40 er for snævert. Top-p tilpasser antallet af kandidater til fordelingens form, og det er dens største fordel.
I praksis er p omkring 0,9 til 0,95 et almindeligt valg til åben tekst, mens mange API'er har 1 som standard, hvilket slår afskæringen fra og overlader variationen til temperaturen. Fordi de fleste implementeringer anvender temperaturen før top-p, påvirker de to hinanden: En højere temperatur flader fordelingen ud og gør kernen større, en lavere kan skrumpe kernen til ét token. Udbyderne anbefaler derfor at justere den ene og lade den anden stå på standardværdien, og nogle API'er afviser kald, der sætter begge. Top-p kan også kombineres med top-k som et ekstra loft og med straf for gentagelser.
Begrænsninger: Når modellen er usikker, og fordelingen er flad, kan kernen stadig rumme hundredvis af tokens, herunder dårlige, fordi top-p kun skærer efter samlet masse. Min-p-sampling (Nguyen m.fl., 2024) beholder i stedet tokens, hvis sandsynlighed er mindst en fastsat andel af det mest sandsynlige tokens, så afskæringen følger modellens sikkerhed, og den findes i flere open source-inferensmotorer. Top-p forhindrer heller ikke faktuelle fejl - et forkert svar kan ligge midt i kernen - og giver ingen determinisme; til reproducerbare pipelines er grådig afkodning eller begrænset afkodning det relevante håndtag.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
- Token
- →Top-p-sampling
Relationer
- En slags
- Sampling (udtrækning af tokens)
- Forudsætter
- Token
- Bruges sammen med
- Temperatur
Kilder og videre læsning
Lærebøger
- Jurafsky & Martin, Speech and Language Processing (3rd ed. draft), chapter on large language models
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…