Top-k limita la elección de la siguiente palabra a los candidatos más probables, descartando todo lo demás. Es el recorte más simple: un número fijo de opciones sobre la mesa.
Cómo funciona
En cada paso de generación:
- Ordena todos los tokens por probabilidad.
- Conserva solo los primeros.
- Renormaliza sus probabilidades para que sumen 1.
- Muestrea la siguiente palabra dentro de ese grupo.
Si , sin importar cómo se vea la distribución, el modelo elige entre las 40 palabras más probables y nunca considera la número 41.
En código
Comparado con top-p, top-k es aún más simple: recorta un número fijo de candidatos.
import numpy as np
def top_k(probs, k=3):
idx = np.argsort(probs)[::-1][:k] # los k índices más probables
filtradas = np.zeros_like(probs)
filtradas[idx] = probs[idx]
return filtradas / filtradas.sum() # renormaliza los sobrevivientes
probs = np.array([0.5, 0.25, 0.15, 0.07, 0.03])
print(top_k(probs, k=3)) # solo quedan en juego 3 candidatos
Igual que los demás, en un LLM real se usa como argumento: top_k=40.
La diferencia clave con top-p
Ambos recortan la cola de opciones, pero con filosofías distintas:
| Top-k | Top-p | |
|---|---|---|
| Qué fija | Un número de candidatos | Una masa de probabilidad |
| Tamaño del conjunto | Constante () | Adaptativo |
| Cuando el modelo duda | Puede quedar corto | Se agranda |
| Cuando está seguro | Puede incluir basura | Se achica |
El punto débil de top-k es su rigidez. Si el modelo está segurísimo de una palabra, top-k igual arrastra otras improbables; si duda entre 100 opciones válidas, las corta en la . Top-p evita ambos extremos ajustándose al contexto, y por eso suele preferirse hoy.
Valores típicos y combinaciones
- : equivale a elegir siempre la palabra más probable (greedy): determinista.
- : un rango clásico para generación creativa.
- grande: se acerca a no filtrar nada.
En la práctica, muchos sistemas combinan los tres controles de esta serie: la temperatura reescala las probabilidades, y luego top-k y/o top-p acotan el conjunto de candidatos antes de muestrear.
Para llevar
Top-k se queda con las palabras más probables, un recorte de tamaño fijo, simple pero rígido. Junto con top-p y la temperatura forma el trío de mandos que gobierna cómo un LLM elige sus palabras: la temperatura decide cuán arriesgado es, top-k y top-p deciden entre cuántas opciones arriesga.
