temperatursampling
Temperatursampling er en afkodningsstrategi, hvor logitterne fra en sprogmodel skaleres med en temperaturparameter inden softmax, hvilket styrer fordelingens skarphed.
Kort fortalt
Kort fortalt: Temperatursampling bestemmer, hvor tilfældig en sprogmodels output skal være ved at justere sandsynlighederne – lav temperatur giver mere forudsigelige svar, høj temperatur giver mere kreativitet.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /tɛmpəʁaˈtuːɐ̯samplɪŋ/
Betydninger
1- 1
En afkodningsteknik for sprogmodeller, hvor logitterne divideres med en temperaturparameter T før softmax, således at T > 1 udjævner fordelingen (mere tilfældighed) og T < 1 skærper den (mindre tilfældighed).
- Ved at sætte temperaturen til 0,7 opnås en god balance mellem kreativitet og sammenhæng i den genererede tekst. — Eksempel fra praksis
Hvornår bruges det
Temperatursampling bruges typisk i tekstgenerering med sprogmodeller (f.eks. GPT) for at balancere kreativitet og sammenhæng. En lav temperatur (f.eks. 0,1) gør teksten mere deterministisk og fokuseret, mens en høj temperatur (f.eks. 1,5) øger diversiteten, men kan føre til meningsløs output.
Formel
p_i = exp(z_i / T) / sum_j exp(z_j / T), hvor z_i er logit for token i, T er temperaturen.Kodeeksempel
def temperature_sampling(logits, temperature):
logits = logits / temperature
probs = torch.softmax(logits, dim=-1)
return torch.multinomial(probs, num_samples=1)Eksempel på temperatur-sampling i PyTorch. Logitter divideres med temperaturen, softmax anvendes, og der samples fra den resulterende fordeling.
Oprindelse
Termen er overtaget fra fysikken, hvor temperatur beskriver den termiske energi; i maskinlæring refererer den til graden af tilfældighed i sampling.