El muestreo top-p, también conocido como muestreo por núcleo, es una estrategia de decodificación estocástica utilizada para generar secuencias a partir de modelos probabilísticos autorregresivos, como los grandes modelos de lenguaje. Fue propuesto originalmente por Ari Holtzman, Yejin Choi y sus colegas en 2019 para la generación de lenguaje natural, con el fin de abordar el problema del texto repetitivo y sin sentido producido por otros métodos de decodificación comunes, como la búsqueda de haz. Desde entonces, la técnica se ha aplicado en otros campos científicos, incluidos la ingeniería de proteínas y la geofísica.
En el muestreo top-p, se establece un umbral de probabilidad p, y el siguiente elemento de una secuencia se muestrea solo del conjunto más pequeño posible de candidatos de alta probabilidad cuya probabilidad acumulada supere p. Este método adapta el tamaño del conjunto de candidatos según la certeza del modelo, lo que lo hace más flexible que el muestreo top-k, que muestrea de un número fijo de candidatos. Debido a su efectividad, el muestreo top-p se utiliza ampliamente en muchas aplicaciones de grandes modelos de lenguaje.
Técnica
En cada paso del proceso de generación de texto, un modelo de lenguaje calcula una distribución de probabilidad sobre todo su vocabulario para el siguiente token. Aunque es posible simplemente elegir el token con mayor probabilidad (búsqueda voraz) o un conjunto limitado de secuencias de alta probabilidad (búsqueda de haz), estos métodos deterministas a menudo producen texto aburrido, repetitivo o sin sentido. El muestreo top-p introduce aleatoriedad para evitar estos problemas mientras mantiene la calidad.
La idea central es muestrear de un conjunto más pequeño y más creíble de tokens en cada paso, llamado núcleo. Este núcleo contiene los tokens siguientes más probables cuya probabilidad combinada, o acumulada, apenas supera el umbral p. Al muestrear solo de este grupo de tamaño dinámico, el modelo puede adaptarse a diferentes situaciones. Cuando el modelo está seguro sobre el siguiente token (por ejemplo, un token tiene una probabilidad muy alta), el núcleo será pequeño. Cuando el modelo es incierto (las probabilidades están más distribuidas de manera uniforme), el núcleo será más grande, lo que permite una mayor diversidad.
El proceso en cada paso es el siguiente:
- El modelo calcula las probabilidades para todos los posibles tokens siguientes.
- Los tokens se ordenan por su probabilidad en orden descendente.
- El núcleo se forma seleccionando tokens desde la parte superior de la lista hasta que su probabilidad acumulada supere el umbral predefinido, p.
- Las probabilidades de los tokens dentro de este núcleo se reescalan para que sumen 1. Todos los tokens fuera del núcleo se descartan (se les asigna una probabilidad de 0).
- El token final siguiente se muestrea aleatoriamente de esta nueva distribución más pequeña.
Formalmente, el núcleo, V^(p) ⊆ V, se define como el conjunto más pequeño de tokens que satisface:
∑_{x ∈ V^(p)} P(x | x_1, …, x_{t-1}) ≥ p
En esta fórmula, P(x | x_1, …, x_{t-1}) representa la probabilidad de un token x dado los tokens precedentes x_1, …, x_{t-1}.
Ejemplo
Imagina que en un cierto paso, un modelo de lenguaje tiene un vocabulario de cinco palabras: [the, a, cat, dog, eats] y produce las siguientes probabilidades:
- the: 0.5
- a: 0.2
- cat: 0.1
- dog: 0.1
- eats: 0.1
Si establecemos p = 0.8:
- Los tokens se ordenan por probabilidad: [the, a, cat, dog, eats].
- Se calcula la probabilidad acumulada:
- the: 0.5
- the + a: 0.5 + 0.2 = 0.7
- the + a + cat: 0.7 + 0.1 = 0.8
- El núcleo es el conjunto más pequeño con probabilidad acumulada ≥ 0.8, que es V^(0.8) = {the, a, cat}.
- Las probabilidades para este conjunto se reescalan para sumar 1:
- P(the) = 0.5 / 0.8 = 0.625
- P(a) = 0.2 / 0.8 = 0.25
- P(cat) = 0.1 / 0.8 = 0.125
- El siguiente token se muestrea entonces de esta nueva distribución, lo que significa que dog y eats tienen una probabilidad del 0% de ser elegidos.
Muestreo top-k
El muestreo top-k es una técnica similar donde el conjunto de tokens candidatos se restringe a los k tokens más probables. La principal ventaja de top-p es su adaptabilidad. Cuando el modelo está muy seguro sobre el siguiente token (una distribución con un pico pronunciado), el núcleo V^(p) puede ser muy pequeño. Cuando el modelo es incierto (una distribución plana), el núcleo puede ser mucho más grande, lo que permite una mayor diversidad. En contraste, top-k siempre muestrea de un número fijo de tokens, lo que puede ser demasiado restrictivo o demasiado amplio según el contexto.
Aplicaciones
Aunque el muestreo top-p es más famoso por su uso como estrategia de decodificación para grandes modelos de lenguaje, la técnica también se ha adaptado para su uso en otros dominios científicos que implican generar o analizar datos secuenciales a partir de modelos probabilísticos.
Generación de lenguaje natural
En su dominio original de generación de lenguaje natural, el muestreo top-p se valora por su capacidad para producir texto más diverso y coherente en comparación con métodos deterministas. Se ha demostrado que es beneficioso en tareas como la generación automática de preguntas, donde la diversidad de muestras es importante para crear datos de entrenamiento efectivos para modelos de respuesta a preguntas.
Diseño de fármacos y proteínas
El muestreo top-p se utiliza en biología computacional para generar nuevas secuencias moleculares y de proteínas a partir de modelos de lenguaje especializados. En el diseño de fármacos de novo, los modelos de lenguaje químico entrenados en estructuras moleculares utilizan el muestreo por núcleo para generar bibliotecas enfocadas de nuevos candidatos a fármacos válidos. De manera similar, en la ingeniería de proteínas, el muestreo top-p ayuda a explorar el espacio de secuencias mientras mantiene la probabilidad de producir proteínas funcionales.
Geofísica
En geofísica, el muestreo top-p se ha aplicado para generar formas de onda sísmicas u otros datos secuenciales a partir de modelos probabilísticos, ayudando en tareas como la simulación de terremotos o la imagen del subsuelo. La naturaleza adaptativa del núcleo permite una variabilidad realista en los datos generados, lo cual es crucial para modelar fenómenos naturales complejos.
Relación con otras estrategias de decodificación
El muestreo top-p es uno de varios métodos de decodificación estocástica utilizados en modelos generativos. A menudo se combina con el ajuste de temperatura para controlar aún más la aleatoriedad de la salida. Mientras que el ajuste de temperatura modifica la nitidez de la distribución de probabilidad antes del muestreo, el muestreo top-p trunca la distribución a un subconjunto de tokens. Estas técnicas pueden usarse juntas para lograr un equilibrio entre diversidad y coherencia.
En comparación con métodos deterministas como la búsqueda voraz o la búsqueda de haz, el muestreo top-p introduce estocasticidad, lo que puede prevenir bucles repetitivos y producir salidas más variadas. Sin embargo, esta aleatoriedad también puede llevar a una incoherencia ocasional, y la elección de p es crítica. Un valor bajo de p (por ejemplo, 0.5) hace que la salida sea más enfocada y determinista, mientras que un valor alto de p (por ejemplo, 0.95) aumenta la diversidad pero puede reducir la calidad.
Consideraciones de implementación
En la práctica, el muestreo top-p está implementado en la mayoría de los marcos de aprendizaje profundo modernos y es un parámetro estándar en las API para grandes modelos de lenguaje, como las de OpenAI, Anthropic y Google DeepMind. El umbral p se establece típicamente entre 0.9 y 0.95 para tareas generales de generación de texto, pero el valor óptimo depende de la aplicación específica y del equilibrio deseado entre creatividad y precisión.
Un desafío en la implementación es asegurar que el cálculo de la probabilidad acumulada sea eficiente, especialmente para vocabularios grandes. Sin embargo, dado que el núcleo suele ser pequeño, la sobrecarga computacional es mínima. Además, el muestreo top-p puede combinarse con otras técnicas como RLHF (aprendizaje por refuerzo a partir de retroalimentación humana) para alinear el texto generado con las preferencias humanas.
Limitaciones y extensiones
A pesar de sus ventajas, el muestreo top-p tiene limitaciones. El umbral p es estático y no se adapta al contexto, lo que puede llevar a un rendimiento subóptimo en algunos escenarios. Los investigadores han explorado extensiones como valores dinámicos de p basados en la entropía de la distribución, pero estas aún no están ampliamente adoptadas. Además, el muestreo top-p no garantiza coherencia global, ya que solo considera probabilidades locales en cada paso.
Otra limitación es que el muestreo top-p aún puede producir texto repetitivo si la distribución del modelo está fuertemente concentrada en unos pocos tokens. En tales casos, puede ser necesario combinar top-p con otras estrategias como top-k o ajustes de temperatura. A pesar de estos desafíos, el muestreo top-p sigue siendo una herramienta fundamental en el arsenal de la IA generativa, ampliamente utilizada tanto en sistemas de investigación como de producción.