Un control conocido y una promesa mal entendida
Configuramos un modelo con top-p=0,9. Es tentador interpretarlo como “conservar exactamente el 90% de posibilidades” o “descartar el peor 10% de respuestas”. Ninguna frase describe bien la regla. El parámetro trata la masa de probabilidad de candidatos al próximo token, no un porcentaje de frases ni un juicio de verdad. Importa al comparar configuraciones o reproducir generación.
¿Qué se conserva y cuánto cambia la distribución al truncarla? Usamos cinco tokens sintéticos A–E sin palabras ni etiquetas de calidad. Las fracciones exactas permiten estudiar fronteras, empates y temperatura. No consultamos un modelo: comprobamos un mecanismo matemático. Los resultados de investigación posteriores pertenecen a sus autores y no se reproducen aquí.
Probabilidad, tokens y soporte
Un token es una unidad del vocabulario: palabra, parte o fragmento. Con el texto previo, el modelo asigna probabilidades al próximo paso cuya suma es uno. Llamamos P a esa distribución; su soporte son los candidatos con probabilidad no nula. El muestreador usa la distribución suministrada, P o una transformación Q. Hay que describir tanto reducir el soporte como redistribuir la masa.
Ordenamos candidatos por probabilidad decreciente y conservamos el prefijo más corto que alcance al menos p: el núcleo. k es su tamaño y q la masa retenida, suma de probabilidades de esos tokens. p es umbral y q resultado. Fijamos explícitamente mayor o igual y orden determinista de identificadores para empates.
V es el número de candidatos, S el núcleo y Q la distribución truncada. Dividir por q devuelve la suma a uno. Las razones internas se conservan, pero cada probabilidad absoluta aumenta si q<1. Los excluidos son imposibles en ese paso. Ningún término etiqueta tokens como “correctos”.
El ejemplo de cinco candidatos
Sea P=(0,52;0,18;0,15;0,10;0,05), con acumuladas 0,52;0,70;0,85;0,95;1. Con p=0,9 los tres primeros no bastan y el cuarto supera el umbral. Conservamos cuatro de cinco tokens, el 80% de candidatos, y el 95% de masa. Descartamos 5%, no 10%. Los tokens son discretos: la regla estándar no conserva solo medio cuarto candidato.
Al dividir por 0,95, Q=(52/95;18/95;3/19;2/19;0). A sube de 0,52 a unos 0,54737 y E pasa a cero; la suma sigue siendo uno. Aún no extrajimos tokens: son probabilidades exactas calculadas, no frecuencias de muestras. El JSON conserva fracciones y el código verifica identidades sin tolerancia flotante.
| p | k | q | Masa descartada |
|---|---|---|---|
| 0.50 | 1 | 0.52 | 0.48 |
| 0.70 | 2 | 0.70 | 0.30 |
| 0.80 | 3 | 0.85 | 0.15 |
| 0.90 | 4 | 0.95 | 0.05 |
| 0.95 | 4 | 0.95 | 0.05 |
| 1.00 | 5 | 1.00 | 0.00 |
Cuánto cambia la distribución: derivación completa
Cuantificamos el corte mediante variación total, TV: mitad de la suma de diferencias absolutas de probabilidades discretas. Vale cero si coinciden y como máximo uno. Mide diferencia probabilística, no distancia semántica entre textos. Dentro de S, Q_i≥P_i; fuera, Q_i=0. Separamos las contribuciones exactamente.
La masa del núcleo sube de q a uno, aumentando 1−q, mientras fuera se pierde lo mismo. Dividir por dos evita contarlo dos veces. Aquí p=0,9 da TV=0,05, no 0,10. La identidad y cota corresponden a un paso y esta transformación Q. No implican respuestas correctas al 90% ni diferencias máximas del 10% entre palabras de textos largos.
La generación es autorregresiva: el token elegido cambia contexto y distribución siguiente. Tras elecciones distintas quizá ya no comparamos el mismo P. Convertir una propiedad local en garantía global exige analizar distribuciones de secuencias y dependencias, no una analogía con un grifo que elimina siempre el mismo porcentaje de texto.
Fronteras y empates: detalles que cambian resultados
Con p=0,70 los dos primeros suman exactamente 0,70. La regla ≥ conserva dos; la estricta > añade el tercero hasta 0,85. Ambas se entienden declarando la convención, pero generan distribuciones distintas. Fraction separa esa diferencia lógica del redondeo decimal binario. Reproducir exige revisar el código real, no solo la etiqueta top-p.
Con tres candidatos de probabilidad 1/3 y p=1/2 hacen falta dos tokens con masa 2/3. Elegir cuáles exige desempate. Probamos dos órdenes de identificadores: mismo k y q, soportes distintos. No lo llamamos bug, sino información relevante de configuración. Con p=1 nuestra convención conserva los candidatos positivos necesarios para alcanzar uno.

Temperatura y top-k responden preguntas distintas
Top-k fija cantidad de candidatos; top-p fija umbral de masa y deja variar cantidad. La temperatura T>0 modifica pesos antes de truncar: para probabilidades positivas P_T(i) es proporcional a P(i)^(1/T). Separamos esta demostración flotante del cálculo exacto anterior. Con umbral 0,9, T=0,5 conserva tres tokens, T=1 cuatro y T=2 cinco. La temperatura cambia así el soporte de un top-p posterior.
La temperatura positiva conserva orden, no acumuladas; seleccionar el núcleo antes o después puede diferir. “Cuatro candidatos” tampoco mide universalmente diversidad: probabilidades desiguales y tokens de ideas similares. Ampliar soporte no demuestra por sí solo mejoras de verdad, seguridad, creatividad o precisión.
Del origen a la investigación reciente: qué evidencia existe
La referencia fundacional es The Curious Case of Neural Text Degeneration de Ari Holtzman, Jan Buys, Li Du, Maxwell Forbes y Yejin Choi: arXiv v2 del 14 de febrero de 2020, publicado en ICLR 2020. Leímos 3.1–3.3, configuración y análisis experimental, incluido HUSE. Los experimentos de continuación con GPT-2 no evalúan todos los modelos actuales. HUSE combina estadística y juicios humanos de los autores, usando también interpolación al tratar truncamiento. No son nuestra revisión.
Como contexto reciente leímos Decoding as Optimisation on the Probability Simplex de Xiaotong Ji, Rasul Tutunov, Matthieu Zimmer y Haitham Bou-Ammar, arXiv:2602.18292v2 del 25 de febrero de 2026, tratado como preprint. La sección 3.4 interpreta top-p mediante soporte restringido y renormalización. Las tablas BoK 1–3 usan dos Qwen de 7B, MATH500, GPQA-diamond y HumanEval, temperaturas variadas, máximo 3072 y parada EOS. Comparan Base, Top-K y BoK, no prueban superioridad experimental de top-p. No reproducimos benchmarks ni recomendaciones universales.
Reproducir el mecanismo sin inventar un benchmark
El archivo contiene experiment.py, plot.py, resultados e instrucciones. Probabilidades y umbrales principales usan Fraction; sin extracciones no hace falta seed. La temperatura se declara aparte en coma flotante. Verificamos suma uno, masa, TV=1−q, ≥ frente a > y desempates. Ordenar V candidatos requiere orden V log V comparaciones y escanear orden V; las implementaciones optimizadas pueden variar. No medimos latencia ni memoria de un motor LLM.
Una aplicación empresarial requiere otro experimento: modelo y tokenizador fijos, prompts y criterios de calidad documentados, versiones, orden de transformaciones, repeticiones y presupuesto. Así se compara calidad y variabilidad, no solo tamaño del núcleo. No atribuimos a EL-AI un decoder propietario ni resultados sin documentar. Es análisis técnico del mecanismo, no investigación original revisada por pares.
Respuesta: 0,9 es un umbral, no una garantía de calidad
No: top-p=0,9 no descarta necesariamente 10% de masa ni elige el mejor 90% de respuestas. El ejemplo conserva cuatro candidatos, masa 0,95 y TV 0,05 respecto a P. Incluye el candidato necesario para alcanzar el umbral y renormaliza. Entenderlo aclara la configuración y lo pendiente: medir calidad de secuencias en el problema real con protocolo adecuado.
Bibliografía
Holtzman et al. — The Curious Case of Neural Text Degeneration, ICLR 2020, arXiv v2.
Ji et al. — Decoding as Optimisation on the Probability Simplex, 2026, preprint v2.
from fractions import Fraction as F
P=[F(52,100),F(18,100),F(15,100),F(10,100),F(5,100)]
p=F(9,10);mass=F(0);k=0
for value in P:
mass+=value;k+=1
if mass>=p:break
Q=[value/mass if j<k else F(0) for j,value in enumerate(P)]
tv=sum(abs(a-b) for a,b in zip(P,Q))/2
assert k==4 and mass==F(19,20) and tv==F(1,20)
print(k,mass,Q,tv)
Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 21 de octubre de 2026.

