Top-k sampling (ES)

From Systems analysis wiki
Jump to navigation Jump to search

Muestreo Top-k (del inglés Top-k sampling) es un método de decodificación estocástico utilizado en los grandes modelos de lenguaje (LLM) para la generación de texto. Su objetivo principal es limitar la selección del siguiente token a un número fijo (k) de los candidatos más probables, lo que permite evitar la generación de palabras poco probables y a menudo irrelevantes. Este método fue una de las primeras mejoras sobre el muestreo aleatorio simple y durante mucho tiempo fue una forma popular de mejorar la coherencia del texto generado.

Concepto y matemática

En cada paso de la generación de texto, un modelo de lenguaje estándar produce una distribución de probabilidad P(x|x1:i1) sobre todo el vocabulario V. El muestreo Top-k modifica este proceso de la siguiente manera:

1. Selección de candidatos: De todo el vocabulario, se selecciona un subconjunto V(k) que consta de los k tokens con las probabilidades más altas.

2. Truncamiento: Las probabilidades de todos los tokens que no están en V(k) se establecen en cero.

3. Redistribución (normalización): Las probabilidades de los k tokens restantes se reescalan para que su nueva suma sea igual a 1.

4. Muestreo: El siguiente token se selecciona aleatoriamente de esta nueva distribución truncada.

Así, Top-k introduce un umbral estricto en el número de candidatos: las palabras con un rango de probabilidad inferior a k nunca serán seleccionadas.

Influencia del parámetro k

  • k pequeño (por ejemplo, k=510): Hace que la generación sea más conservadora y predecible. El modelo elige solo de un conjunto muy limitado de las palabras más probables. Esto aumenta la coherencia, pero puede llevar a un texto repetitivo y aburrido.
  • k grande (por ejemplo, k=50100): Aumenta la diversidad y creatividad del texto, ya que se incluyen más opciones en la muestra. Sin embargo, esto también aumenta el riesgo de incluir tokens menos relevantes o inapropiados.
  • Casos límite:
    • k=1: Equivalente a la decodificación voraz (greedy decoding). El modelo siempre elige el token más probable.
    • k = tamaño del vocabulario: Equivalente al muestreo estándar de la distribución completa, sin truncamiento.

Importancia histórica

El método Top-k fue propuesto formalmente en 2018 por Angela Fan y sus colegas como una solución eficaz al problema de la degradación de la calidad del texto al utilizar un muestreo aleatorio completo. Demostraron que limitar la selección a un pequeño número de candidatos mejoraba significativamente la coherencia y el sentido de las historias generadas.

Por ejemplo, en las primeras versiones de GPT-2 se utilizaba un parámetro `top_k=40`, lo que permitía al modelo generar textos largos y coherentes que eran inalcanzables con métodos anteriores.

Comparación con otros métodos de decodificación

Top-k vs. Top-p

Top-k ha sido en gran medida reemplazado por un método más avanzado: el muestreo Top-p (nucleus).

  • La principal desventaja de Top-k es su falta de adaptabilidad. Un valor fijo de k no tiene en cuenta la forma de la distribución de probabilidad:
    • Cuando la distribución es pronunciada (el modelo está seguro de unos pocos tokens), Top-k puede ampliar artificialmente la selección, incluyendo candidatos poco probables.
    • Cuando la distribución es plana (el modelo no está seguro y muchos tokens tienen una probabilidad similar), Top-k puede truncar prematuramente muchas opciones adecuadas.
  • Top-p, por el contrario, adapta dinámicamente el tamaño de la muestra, seleccionando tokens en función de su probabilidad acumulada. Esto lo hace más flexible y fiable.

Top-k vs. Temperatura

  • La temperatura cambia la forma de toda la distribución de probabilidad, pero no trunca los tokens. Afecta a las probabilidades relativas de todos los candidatos.
  • Top-k introduce un truncamiento estricto, excluyendo por completo los tokens fuera del top-k.

En la práctica, Top-k puede usarse junto con la temperatura: primero, la temperatura modifica la distribución y, luego, Top-k trunca los candidatos.

Aplicación práctica

Aunque el muestreo Top-p se considera hoy en día preferible, Top-k todavía se utiliza en algunos casos, especialmente cuando se requiere un control simple e intuitivo sobre el tamaño de la muestra.

  • Valores típicos: En la práctica, se utilizan valores de k entre 20 y 100, dependiendo del equilibrio deseado entre coherencia y diversidad.
  • Recomendaciones: Para la mayoría de las tareas, se recomienda usar Top-p. Si aun así se utiliza Top-k, debe combinarse con una temperatura moderada y seleccionar cuidadosamente el valor de k para la tarea específica.

Bibliografía

  • Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
  • Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
  • Holtzman, A. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o.
  • Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
  • Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
  • O’Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
  • Finlayson, M. et al. (2024). Basis-Aware Truncation Sampling for Neural Text Generation. arXiv:2412.14352.
  • Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
  • Yu, S. et al. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
  • Chen, S. J. et al. (2025). Decoding Game: On Minimax Optimality of Heuristic Text Generation Methods. arXiv:2410.03968.
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.

Véase también