Hoppa till innehållet
AI-grafen
E· Universitetsprakmodeller· ca 60 min· utvecklande· verifierad 2026-09-20

Sampling: temperatur, top-k, top-p, beam

Kunna implementera dekodningsstrategier och förklara deras effekt på variation och kvalitet.

Förkunskaper

Intuition

Modellen ger en sannolikhet per möjligt nästa token. Dekodningsstrategin avgör hur ett väljs.

StrategiHurGer
Girigalltid högst sannolikhetdeterministiskt, repetitivt
Temperaturskala logits med 1/T före softmaxT<1 försiktigare, T>1 mer varierat
Top-kdra bara bland de k troligasteklipper svansen, fast k
Top-p (nucleus)dra bland de minsta som summerar till padaptivt — smalt när modellen är säker
Beam searchhåll b delsekvenser, behåll de bästabäst för översättning, tråkigt för fri text

Standardval: T ≈ 0,7 och top-p ≈ 0,9 för kreativ text; T = 0 (girig) för klassificering, extraktion och kod som ska vara reproducerbar.

Kod

import numpy as np

def softmax(z):
    z = z - z.max(); e = np.exp(z); return e / e.sum()

def sampla(logits, T=1.0, top_k=None, top_p=None, rng=np.random.default_rng(0)):
    if T <= 0:
        return int(np.argmax(logits))                 # girig
    p = softmax(logits / T)
    if top_k:
        klipp = np.argsort(p)[:-top_k]
        p[klipp] = 0
    if top_p:
        ordning = np.argsort(p)[::-1]
        kum = np.cumsum(p[ordning])
        behall = ordning[: int(np.searchsorted(kum, top_p)) + 1]
        mask = np.zeros_like(p, dtype=bool); mask[behall] = True
        p[~mask] = 0
    p = p / p.sum()
    return int(rng.choice(len(p), p=p))

logits = np.array([4.0, 3.5, 1.0, 0.5, -2.0])
print(softmax(logits).round(3))                 # [0.55 0.334 0.027 0.017 0.001]
print(sampla(logits, T=0))                      # 0  (girig)
print([sampla(logits, T=1.0, top_p=0.9) for _ in range(5)])

Beam search svaghet: den maximerar sekvensens totala sannolikhet, och den mest sannolika texten är ofta generisk och repetitiv («Jag vet inte. Jag vet inte.»). Människor skriver inte maximalt sannolika meningar — därför används sampling för fri text och beam bara där det finns ett «rätt» svar.

Behärskning innebär

  • Implementerar temperatur, top-k och top-p
  • Väljer strategi efter uppgift
  • Förklarar beam search och dess svaghet

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser