Volver al archivo
#ai#llm#glossary#aigen

Muestreo top-k

Al sortear el siguiente fragmento, el modelo admite muchas posibilidades muy poco probables. Quieres conservar algo de diversidad, pero eliminar la cola lejana de candidatos. Puedes admitir solo un número determinado de los mejor puntuados.

Top-k Sampling sortea el siguiente token, es decir, un fragmento de texto, entre los k candidatos con las mejores puntuaciones. Excluye a los demás y recalcula las probabilidades de los conservados para que sumen uno.

Si A tiene una probabilidad de 0,5, B de 0,3 y los demás juntos de 0,2, para k=2 quedan A y B. Tras dividir por 0,8, sus probabilidades son 0,625 y 0,375. B todavía puede ganar; el método no reparte por igual entre todos.

Un k fijo determina el número de candidatos, no su fiabilidad conjunta. Con una distribución muy plana, incluso los primeros pueden tener probabilidades pequeñas. Top-p Sampling determina el conjunto según la suma de probabilidades, y Temperature regula sus proporciones.

Mecanismo y detalles

Una implementación práctica puede filtrar los logits antes de Softmax: asigna infinito negativo a las posiciones descartadas. Así, tras la normalización, su probabilidad es cero. La documentación de Transformers: TopKLogitsWarper describe este mecanismo.

Dos candidatos no significa las mismas posibilidades

Ejemplo propio para k=2k=2:

TokenAntes del filtradoDespués del filtrado y la normalización
A0,500,625
B0,300,375
C0,150
D0,050

A y B tenían una probabilidad conjunta de 0,80. Dividimos por esa suma: 0,50/0,80=0,6250{,}50/0{,}80=0{,}625 y 0,30/0,80=0,3750{,}30/0{,}80=0{,}375. El muestreo todavía puede elegir B. Con k=1k=1 y un máximo único, siempre elegimos el token mejor puntuado.

Un kk fijo controla el número de candidatos, no su probabilidad conjunta antes del corte. Dos posiciones conservadas pueden concentrar casi toda la distribución o solo una pequeña parte de ella. El muestreo top-p determina el límite según la suma de probabilidades. La temperatura cambia las proporciones de las posibilidades; el escalado positivo por sí solo no altera el orden de los logits finitos.

Cuando hay empates, conviene comprobar la implementación. El código de Transformers 5.17.0 elimina los resultados estrictamente inferiores al del candidato k-ésimo. Por ello puede conservar también tokens adicionales con el mismo valor en el límite. El ejemplo de la tabla no contiene empates.