- Una guía integral sobre cómo muestrean los grandes modelos de lenguaje (LLM), explicada para que incluso principiantes puedan entenderla
- Qué es un token, por qué se usa en lugar de palabras, y una explicación detallada de cómo el modelo genera texto
- El muestreo es el proceso de controlar la diversidad y naturalidad de la salida, y se presentan diversos algoritmos de muestreo como Temperature, Top-K, Top-P y DRY
- Cada técnica de muestreo se explica con una descripción conceptual junto con sus principios matemáticos y algorítmicos de funcionamiento, comparando efectos como prevención de repeticiones, mayor creatividad y ajuste de consistencia
- También se organiza información sobre el orden de combinación entre samplers, sus interacciones y casos de conflicto, por lo que es un recurso muy útil para desarrolladores que quieren controlar con precisión la calidad de la generación
Intro Knowledge
Short Glossary
- Logits son valores no normalizados que representan la puntuación de cada token
- Softmax es la función que convierte los logits en una distribución de probabilidad normalizada
- Entropy representa la incertidumbre de la predicción; cuanto más alta es, mayor es la incertidumbre sobre el siguiente token
- Perplexity es una métrica que indica que, cuanto más baja sea, mayor es la confianza del modelo
- n-gram se refiere a una secuencia continua de n tokens
- Context window es la cantidad máxima de tokens que el modelo puede procesar de una sola vez
Why tokens?
Why not letters?
- La tokenización a nivel de caracteres hace que la secuencia sea demasiado larga, lo que provoca mayor costo computacional y dificultad para conectar la información
Why not whole words?
- El enfoque basado en palabras tiene problemas como el crecimiento explosivo del vocabulario y la dificultad para representar neologismos o palabras raras
- El enfoque basado en Sub-word permite dividir y procesar prefijos, raíces y sufijos, por lo que es eficaz para entender la morfología y para el aprendizaje por transferencia multilingüe
How are the sub-words chosen?
- El vocabulario se construye encontrando los sub-word más frecuentes a partir de muestras representativas de los datos de entrenamiento
How does the model generate text?
- Durante el entrenamiento, aprende la distribución de probabilidad del siguiente token a partir de grandes volúmenes de texto
- Durante la inferencia, calcula la probabilidad de todos los tokens posibles y selecciona el siguiente token según la técnica de muestreo
From Tokens to Text
- Etapa de predicción: cálculo de la distribución de probabilidad para todos los tokens candidatos
- Etapa de selección: elección del token según una estrategia de muestreo específica
- Como elegir simplemente el token con mayor probabilidad genera texto aburrido o repetitivo, las técnicas de muestreo son importantes
Sampling
Temperature
- Los valores bajos producen resultados conservadores y repetitivos, mientras que los valores altos fomentan resultados creativos pero aumentan la posibilidad de errores
- Se divide el logit por el valor de temperatura para ajustar la nitidez (concentración) de la distribución de probabilidad
Presence Penalty
- Reduce la probabilidad de reaparición de un token que ya haya aparecido al menos una vez
- Solo considera si fue usado o no, sin tener en cuenta cuántas veces apareció
Frequency Penalty
- Se penaliza la puntuación en proporción al número de apariciones
- Cuanto más frecuente haya sido una palabra, mayor será la desventaja que recibe, lo que ayuda a aumentar la diversidad
Repetition Penalty
- Aplica una penalización asimétrica a logits positivos y negativos para tokens que ya aparecieron antes
- Es eficaz para evitar repeticiones en bucle, pero puede perjudicar la coherencia del contexto
DRY (Don't Repeat Yourself)
- Detecta la repetición de patrones n-gram y penaliza la probabilidad de los tokens que predicen repeticiones
- Cuanto más larga y más reciente sea la frase repetida, con más fuerza se suprime
- En texto creativo, destaca por reducir repeticiones manteniendo la naturalidad
Top-K
- Solo deja los K candidatos principales y excluye el resto de los tokens
- Elimina muestras extremas mientras mantiene cierto nivel de aleatoriedad
Top-P (Nucleus Sampling)
- Conserva solo los tokens hasta que la probabilidad acumulada alcance P o más, y elimina el resto
- Es adaptable porque el tamaño del conjunto candidato cambia según la confianza del modelo
Min-P
- Conserva solo los tokens que tengan al menos una proporción mínima tomando como referencia el token de mayor probabilidad
- El filtrado se ajusta dinámicamente según la confianza del modelo
Top-A
- Filtra candidatos usando un umbral proporcional al cuadrado de la probabilidad del token más probable
- Cuanta más confianza haya, más estricto será el filtrado
XTC
- Con cierta probabilidad, elimina intencionalmente a los candidatos más probables y empuja al modelo a elegir opciones menos seguras
- Es una técnica pensada para respuestas atípicas o creativas
Top-N-Sigma
- Selecciona tokens válidos según la desviación estándar de la distribución de probabilidad
- Responde con flexibilidad a distintas situaciones mediante un filtrado basado en características estadísticas
Tail-Free Sampling (TFS)
- Distingue entre candidatos significativos y candidatos de cola larga mediante el cambio de segundo orden (curvatura) de la pendiente de probabilidad
- Es un método que filtra buscando un punto de corte natural
Eta Cutoff
- Ajusta dinámicamente el criterio de filtrado según la entropía (incertidumbre) de la distribución
- Cuanto mayor es la confianza, más tokens se eliminan; cuanto menor es, más flexible se vuelve
Epsilon Cutoff
- Elimina tokens de baja probabilidad usando un umbral de probabilidad fijo
- Es simple pero predecible, y útil para eliminar colas largas innecesarias
Locally Typical Sampling
- Prefiere tokens cuya surprisal esperada (diferencia frente al valor esperado) está cerca del promedio
- En lugar de elegir el token más probable o el más extraño, induce una selección "típica"
1 comentarios
Opiniones de Hacker News
No se menciona que los samplers no pueden acceder al estado interno del modelo
Escribí una guía de muestreo para Ollama/llama.cpp
Cuando un LLM intenta producir una "idea", la selección del vector de logits debería romper la idea original
Todo está explicado de forma sencilla, así que abre oportunidades para probar cosas nuevas
¿Podría un modelo LLM realizar la tokenización de forma implícita?
Relacionado con esto, nuestro paper sobre min_p quedó en el puesto 18 entre 12000 envíos en ICLR
Me pregunto si el muestreo realmente resuelve las limitaciones del modelo o si solo tapa un problema más profundo
"Muestreo" abarca mucho más de lo que esperaba
Es un documento muy útil, con explicaciones claras y que cubre mucho contenido
No me había dado cuenta de que se hacen tantas manipulaciones después de la elección inicial de la temperatura de softmax