Top-p (o nucleus sampling, muestreo del núcleo) le dice al modelo: "considera solo las palabras más probables cuya probabilidad acumulada llegue a ". Es una forma adaptativa de descartar la larga cola de opciones absurdas.
El problema que resuelve
En cada paso, un LLM asigna algo de probabilidad a miles de tokens. La mayoría son ridículos, pero si dejamos que participen, tarde o temprano el muestreo elige uno y arruina el texto. Necesitamos recortar la cola. Top-p lo hace de manera inteligente.
Cómo funciona
- Ordena los tokens de mayor a menor probabilidad.
- Ve acumulando probabilidad desde el más alto.
- Se queda con el conjunto más pequeño cuya suma alcanza el umbral (el "núcleo").
- Renormaliza ese conjunto y muestrea solo dentro de él.
Formalmente, se elige el menor conjunto tal que:
Con , por ejemplo, el modelo considera justo las palabras que juntas cubren el 90 % de la probabilidad, y descarta el 10 % restante de la cola.
En código
Los cuatro pasos (ordenar, acumular, cortar, renormalizar) se ven claros en numpy:
import numpy as np
def top_p(probs, p=0.9):
orden = np.argsort(probs)[::-1] # índices de mayor a menor probabilidad
acum = np.cumsum(probs[orden])
corte = np.searchsorted(acum, p) + 1 # tamaño del núcleo que alcanza p
nucleo = orden[:corte]
filtradas = np.zeros_like(probs)
filtradas[nucleo] = probs[nucleo]
return filtradas / filtradas.sum() # renormaliza dentro del núcleo
probs = np.array([0.5, 0.25, 0.15, 0.07, 0.03])
print(top_p(probs, 0.9)) # descarta la cola menos probable
En la práctica, este recorte también es solo un argumento: top_p=0.9.
Lo clave: es adaptativo
Aquí está la gracia frente a top-k. El tamaño del núcleo cambia según el contexto:
- Cuando el modelo está muy seguro (una palabra concentra casi toda la probabilidad), el núcleo puede ser de 1 o 2 tokens.
- Cuando está indeciso (muchas palabras plausibles), el núcleo se agranda para no cortar opciones válidas.
Así, top-p se ajusta solo a la "confianza" del modelo en cada paso.
Valores típicos
- : sin recorte, todos los tokens participan.
- : el rango habitual; elimina la cola sin ahogar la creatividad.
- bajo (0.5): muy restrictivo, texto más seguro y repetitivo.
Un consejo práctico frecuente: ajusta o temperatura o top-p, no ambos al extremo a la vez, para no perder el control del comportamiento.
Para llevar
Top-p (nucleus sampling) se queda con el conjunto mínimo de palabras que cubren una probabilidad acumulada , adaptando su tamaño a la certeza del modelo. Es hoy el método de muestreo más usado. En la próxima lección veremos su primo de tamaño fijo: top-k.
