ai.vostman.fi
← Tekoälysanasto

Tekoälyn tietosanakirja

Top-p: anna epävarmuuden määrätä ehdokkaiden määrä

Top-p eli ydinotanta (nucleus sampling) säilyttää pienimmän joukon todennäköisimpiä tokeneita, jonka kumulatiivinen todennäköisyys saavuttaa valitun rajan. Joukko normalisoidaan uudelleen ennen arvontaa.

Toisin kuin top-k:ssa, ehdokkaiden määrä muuttuu jakauman mukana. Keskittynyt ennuste tarvitsee vähän ehdokkaita ja tasaisempi useampia saman todennäköisyysmassan kattamiseen.

Säilytä myös rajan ylittävä token

NumPy-toteutus järjestää todennäköisyydet ja säilyttää myös rajan ylittävän tokenin, ei vain kokonaan sen alle jääviä.

import numpy as np

def nucleus(probabilities, threshold):
    order = np.argsort(-probabilities)
    cumulative = np.cumsum(probabilities[order])
    count = min(len(order), np.searchsorted(cumulative, threshold) + 1)
    keep = order[:count]
    filtered = np.zeros_like(probabilities)
    filtered[keep] = probabilities[keep]
    return filtered / filtered.sum()

peaked = nucleus(np.array([.75, .15, .05, .03, .02]), .8)
flat = nucleus(np.array([.2, .2, .2, .2, .2]), .8)

Rajalla p=0,8 keskittynyt jakauma säilyttää kaksi tokenia ja tasainen neljä. Raja koskee kumulatiivista todennäköisyyttä, ei yksittäisen tokenin arvoa.

Lämpötila voi muuttaa jakaumaa ennen suodatusta, joten sama p ei välttämättä säilytä samoja tokeneita eri lämpötiloilla. Valinta ohjaa tokeniotannan vaihtelua eikä aseta vastauksen totuuden todennäköisyyttä.

Lähteet