- Los LLM calculan la distribución de probabilidad del siguiente token y luego eligen uno; el sampling añade aleatoriedad controlada al enfoque greedy para ajustar la diversidad de la salida
- temperature, penalizaciones por repetición, DRY y Top-K/Top-P/Min-P modifican los logits o la distribución de probabilidad antes o después de elegir tokens, reconfigurando el rango de candidatos y sus probabilidades relativas
- Cada sampler conserva o excluye tokens según criterios distintos, como una cantidad fija, probabilidad acumulada, proporción frente a la probabilidad máxima, entropía, repetición de n-grams o surprisal
- En un pipeline real, el orden de aplicación de filtros, penalizaciones, temperature y ajustes de distribución cambia mucho el resultado; según la combinación, los efectos pueden complementarse o sobrescribirse
- El tamaño del vocabulario y el método de segmentación del tokenizer cambian las unidades a las que el modelo asigna probabilidades y los patrones que detectan samplers basados en n-grams como DRY
Estructura básica de la generación y el sampling en LLM
- Un LLM recibe texto, como un prompt de usuario, y calcula el token correspondiente a la siguiente palabra
- El modelo tiene un vocabulario compuesto por tokens válidos, y lo consulta durante el entrenamiento y la inferencia
- Durante el entrenamiento, observa grandes cantidades de texto y construye un mapa interno de probabilidades de tokens; durante la inferencia, decide el siguiente token con base en las probabilidades aprendidas
- El proceso de generación se divide en dos etapas
- Predicción: calcula una distribución de probabilidad sobre todos los posibles siguientes tokens en cada posición
- Selección: elige un token de esa distribución y lo agrega a la salida
- El enfoque greedy siempre elige el token más probable, por lo que tiende a producir texto repetitivo y determinista
- El sampling introduce aleatoriedad controlada en la etapa de selección para que la salida sea más diversa
Por qué tokens, y no palabras o caracteres
- La tokenización a nivel de caracteres convierte el mismo texto en una secuencia mucho más larga, y
tokenizationpodría convertirse en 12 tokens en vez de 2 o 3 con un método de subpalabras - Las secuencias largas requieren más cómputo en self-attention, y el modelo debe conectar información de varias posiciones, como
t-h-e, en un solo concepto - La tokenización a nivel de palabras tendría que incluir palabras completas del inglés y de muchos idiomas, lo que hace que la matriz de embeddings sea muy grande y costosa
- Cuando aparece una palabra nueva o poco común, los métodos a nivel de palabras suelen reemplazarla por un token
"unknown", perdiendo información semántica - La tokenización por subpalabras puede representar una palabra nueva como
grompuficiousmediante combinaciones de subpalabras existentes - Un modelo de lenguaje que usa un tokenizer nuevo entrena el tokenizer para encontrar subpalabras frecuentes en una muestra representativa de los datos de entrenamiento, y define de antemano el tamaño del vocabulario
Valores clave que manejan los samplers
- logits: puntajes sin normalizar que el modelo emite para cada token del vocabulario; cuanto mayor el valor, más probable que sea el siguiente token
- softmax: convierte los logits en valores entre 0 y 1 y en una distribución de probabilidad cuya suma total es 1
- entropy: representa la incertidumbre o aleatoriedad de la distribución de probabilidad; cuanto más alta, menos seguro está el modelo sobre el siguiente token
- perplexity: representa cuánto “sorprende” un texto al modelo; cuanto más baja, mayor confianza
- n-gram: secuencia de n tokens consecutivos;
"once upon a"es un 3-gram - context window: cantidad máxima de tokens que un LLM puede procesar a la vez, incluyendo el prompt y la salida generada
Samplers básicos que ajustan directamente la distribución de probabilidad
- Temperature funciona como una “perilla de creatividad” del LLM
- Una temperature baja hace más probable el token con mayor puntaje, aumentando la predictibilidad
- Una temperature alta, como 0.7~1.0, permite elegir también el tercer o cuarto candidato, aumentando la diversidad pero también la probabilidad de errores
- Una temperature muy alta, por encima de 1.0, puede producir salidas ásperas e impredecibles si no se usa junto con otro sampling como Min-P
- Técnicamente, divide los logits por el valor de temperature y luego aplica softmax
- Presence Penalty aplica una penalización fija a los tokens que ya aparecieron al menos una vez
- Resta el valor de la penalización de los logits de los tokens usados antes, sin importar cuántas veces aparecieron
- Por lo general no se recomienda, porque existen mejores estrategias de penalización
- Frequency Penalty aumenta la penalización en proporción al número de apariciones del token
- Si un token apareció tres veces, sus logits se reducen en
3 × frequency penalty - Cuanto más se repite el mismo token, más disminuye gradualmente la probabilidad de que vuelva a elegirse
- Si un token apareció tres veces, sus logits se reducen en
- Repetition Penalty apunta a tokens que aparecen tanto en el prompt como en la salida generada
- Los logits positivos se dividen por la penalización, y los logits negativos se multiplican por ella para volverlos más negativos
- Es útil para cortar bucles de repetición, pero con valores agresivos tiene un costo en coherencia
DRY para evitar patrones repetitivos
- DRY(Don't Repeat Yourself) detecta patrones repetitivos más amplios que la simple repetición de palabras
- Busca repeticiones de n-grams en la secuencia de tokens generada y penaliza los tokens que continuarían ese patrón
- Si un patrón como
"the cat sat on the"apareció antes y el mismo flujo vuelve a empezar, hace que sea menos probable elegir el token que lo siguió anteriormente - Cuanto más largo sea el patrón repetido, más fuerte es la penalización aplicada
- Los parámetros principales son multiplier, que controla la fuerza de la penalización; base, que es la tasa de aumento según la longitud del n-gram; longitudes mínima y máxima de n-gram; sequence breaker; range limit, etc.
- Los sequence breaker como punctuation pueden reiniciar la coincidencia de patrones, y también hay límites de rango que consideran solo el texto reciente por eficiencia
- Es especialmente útil en áreas como escritura creativa, donde las frases repetidas resultan poco naturales
Samplers de filtrado que recortan candidatos
- Top-K conserva solo los K tokens principales en vez de todo el vocabulario
- Si K es 40, solo elige entre los 40 candidatos más probables
- El resto de los logits se establece en
-∞, por lo que su probabilidad queda prácticamente en 0 después de softmax
- Top-P(Nucleus) conserva el conjunto mínimo de candidatos cuya probabilidad acumulada supera el umbral P, en vez de una cantidad fija
- Si P es 0.9, incluye candidatos principales hasta que su probabilidad acumulada alcanza 90%
- Cuando el modelo está seguro, quedan pocos candidatos; cuando está incierto, quedan más
- Siempre conserva el token de mayor probabilidad para que quede al menos un token
- Min-P establece un piso de calidad como proporción respecto del token de mayor probabilidad
- Si la probabilidad máxima es 0.6 y Min-P es 0.1, el umbral es 0.06
- Excluye los tokens cuya probabilidad es demasiado baja frente al candidato principal
- Suele usarse con valores altos de temperature, como 1.0~1.2, y con un valor de Min-P muy bajo, alrededor de 0.1
- Es más eficiente porque no requiere ordenar todo el vocabulario como Top-K o Top-P
- Top-A usa un umbral proporcional al cuadrado de la probabilidad máxima
- Cuanto más seguro está el modelo, más sube el umbral por el efecto cuadrático y mucho más se reducen los candidatos
- Es un método anterior a Min-P; técnicamente, Min-P es lineal, mientras que Top-A está basado en cuadrados
- Epsilon Cutoff elimina los tokens por debajo de un umbral fijo de probabilidad
- Aplica el mismo criterio independientemente de las características de la distribución
- Es simple y predecible, pero no es adaptativo como Eta Cutoff
Samplers que usan la forma de la distribución y la incertidumbre
- Top-N-Sigma crea un umbral estadístico usando el valor máximo y la desviación estándar de los logits
- El criterio es
logit máximo - N × desviación estándar - Refleja no solo los valores absolutos de la distribución, sino también la dispersión general de los puntajes
- El criterio es
- Tail-Free Sampling(TFS) mira la curvatura de la distribución de probabilidad para encontrar el punto donde empieza la cola larga
- Ordena los logits de mayor a menor, los convierte en probabilidades y luego calcula el valor absoluto de la segunda diferencia
- Elimina los tokens después del punto donde la distribución acumulada de la curvatura supera el umbral
- Se enfoca en la forma de la distribución más que en los valores absolutos de probabilidad
- Eta Cutoff usa tanto la probabilidad individual como la entropía total
- En situaciones de baja entropy, cuando el modelo está seguro, se aplica un cutoff más estricto
- En situaciones de alta entropy, cuando el modelo está incierto, se aplica un cutoff más permisivo
- El umbral se define como el mínimo entre
etaysqrt(eta) * exp(neg_entropy)
- Locally Typical Sampling mira qué tan cerca está un token del surprisal promedio, no la probabilidad en sí
- Considera menos “typical” tanto a los tokens demasiado predecibles como a los demasiado sorprendentes
- Ordena los tokens por menor desviación de surprisal y define con
typical-pla cantidad de probabilidad acumulada que se conservará
- Quadratic Sampling no filtra, sino que transforma de forma no lineal toda la distribución de logits
- Ajusta la diferencia entre el token con mayor puntaje y los demás logits mediante términos quadratic y cubic
- smoothing factor controla la fuerza del ajuste, y smoothing curve controla la forma de la transformación
- Si
ses positivo, la distribución se vuelve más puntiaguda; sikes positivo, actúa en dirección de aplanar la distribución
Métodos avanzados para controlar predictibilidad y diversidad
- XTC(eXclude Top Choices) se activa de forma probabilística y excluye deliberadamente las opciones más predecibles
- Usa como parámetros la probabilidad de activación y el umbral de exclusión
- Entre los candidatos principales que superan el umbral, excluye uno de menor puntaje y elimina el resto de candidatos de alta probabilidad
- A diferencia de los filtros comunes que recortan candidatos de baja probabilidad, apunta a las opciones más obvias
- Mirostat es un método de feedback que se ajusta dinámicamente para mantener un surprisal objetivo
- Filtra los tokens demasiado sorprendentes con el threshold
muactual - Después de elegir el token, calcula el surprisal real y lo compara con el valor objetivo
tau etaes el learning rate que decide qué tan rápido se ajustamu- La fórmula de actualización es
mu_{t+1} = mu_t - η × (surprisal_t - τ) - Es un método de autorregulación que intenta mantener constante la perplexity de la generación de texto
- Filtra los tokens demasiado sorprendentes con el threshold
- Dynamic Temperature Sampling cambia la temperature según la entropy de la distribución actual
- Con baja entropy, usa una temperature más alta para introducir diversidad
- Con alta entropy, usa una temperature más baja para enfocar la salida
- El usuario define temperature mínima, temperature máxima y exponent
- La fórmula es
temperature = min_temp + (max_temp - min_temp) * (normalized_entropy ^ exponent)
Beam Search y Contrastive Search
- Beam Search mantiene varias secuencias candidatas en paralelo y busca la ruta con mayor probabilidad total
- Mantiene tantas secuencias candidatas como indique el beam width, expande los candidatos en cada decoding step y conserva solo los mejores
- Normalmente samplea
2kcandidatos en cada paso para que queden suficientes candidatos incluso después de excluir secuencias completadas, etc. - El puntaje es la suma de las logprob de todos los tokens incluidos en la secuencia
- Para una misma entrada produce determinísticamente la misma salida; es costoso y hoy se usa menos porque existen mejores métodos de sampling
- Contrastive Search optimiza en conjunto una alta probabilidad adecuada al contexto y la evasión de patrones repetitivos
- Primero elige candidatos Top-K
- Compara la hidden representation del context existente y de la continuation candidata para calcular una degeneration penalty basada en similarity
- El puntaje final es
score(x) = α * P(x) - (1-α) * sim(x, context) αajusta el equilibrio entre probabilidad y diversidad- Es un método que, al igual que Beam Search, no se usa de forma muy extendida
Cómo el orden de aplicación de los samplers cambia el resultado
- En implementaciones reales de LLM, las técnicas de sampling suelen aplicarse en secuencia; algunas bibliotecas permiten cambiar el orden por solicitud, pero la mayoría no
- Un pipeline típico sigue este orden
- El modelo genera raw logits
- Filtra o prohíbe tokens que no deben considerarse
- Aplica penalizaciones por repetition, frequency y presence
- Aplica técnicas basadas en patrones como DRY
- Aplica temperature scaling
- Aplica técnicas de ajuste de distribución como Top-K, Top-P y Min-P
- Samplea un token de la distribución de probabilidad final
- Según la implementación, Temperature se aplica al inicio o al final, por fuera de las penalizaciones y los samplers post-softmax
- En la mayoría de las tareas, temperature se aplica primero
- En escritura creativa, normalmente se aplica al final
- Cada sampler cambia el terreno de probabilidades que verá el siguiente sampler
- Las penalizaciones reducen los picos de tokens ya usados y elevan relativamente otros candidatos
- Una temperature baja vuelve la distribución más afilada, y una temperature alta la vuelve más plana
- Los filtros como Top-K/P eliminan tokens de baja probabilidad y renormalizan las probabilidades restantes
Interacciones dependientes del orden y combinaciones
- El orden Temperature → Filtering primero reconfigura toda la distribución y luego filtra
- Una temperature baja concentra la masa de probabilidad en pocos tokens incluso antes del filtro
- Una temperature alta dispersa la masa de probabilidad más ampliamente antes de que se filtre
- El orden Filtering → Temperature primero recorta candidatos, y luego temperature solo ajusta las probabilidades relativas entre los tokens restantes
- Aunque se use una temperature alta, los tokens eliminados por el filtro original no vuelven
- Con Top-K 40 y temperature 1.5, si se aplica primero el filtro, solo quedan los 40 principales originales
- Penalties → Temperature primero reduce la probabilidad de tokens repetidos, y luego temperature amplifica o reduce ese ajuste
- Con una temperature alta, el efecto de la penalización puede prácticamente borrarse
- Con una temperature baja, la penalización puede amplificarse en exceso
- Temperature → Penalties hace que las penalizaciones actúen sobre una distribución reconfigurada por temperature, lo que puede producir un efecto de penalización más equilibrado y predecible
- DRY es sensible a su posición
- Si se aplica temprano en el pipeline, el efecto antirrepetición es fuerte, pero samplers posteriores pueden volver a elevar tokens penalizados
- Si se aplica tarde, puede debilitarse porque samplers anteriores ya eliminaron algunos candidatos, pero se convierte en la última línea de defensa contra la repetición antes de elegir el token
- También hay combinaciones complementarias
- Top-K + Top-P: Top-K ofrece un límite duro y Top-P se adapta al nivel de confianza del modelo
- Temperature + Min-P: una temperature alta aplana la distribución y Min-P establece un piso de calidad relativo al candidato principal
- También hay combinaciones que chocan
- High Temperature + Low Top-K: un Top-K bajo limita fuertemente los candidatos y tapa gran parte del efecto de temperature
- Uso simultáneo de varios métodos de filtrado: si se usan juntos Top-K, Top-P, Min-P y TFS, el método más restrictivo domina y los demás pueden volverse redundantes
- XTC + Top-A: ambos intentan excluir opciones superiores de formas distintas, por lo que pueden estrechar demasiado el espacio de sampling
Cómo el tokenizer crea el espacio de sampling
- El tokenizer determina sobre qué predice probabilidades el modelo y qué candidatos maneja el sampler
- Los algoritmos de subpalabras equilibran el problema de las secuencias largas a nivel de caracteres y el problema del vocabulario enorme y los unknown a nivel de palabras
- BPE(Byte Pair Encoding) empieza con un vocabulario basado en caracteres o bytes y fusiona repetidamente los pares de symbols adyacentes más frecuentes del corpus de entrenamiento
- Repite las fusiones hasta alcanzar el tamaño de vocabulario deseado
- Se mencionan como ejemplos tamaños de vocabulario de 32000 o 128256 units
- El BPE estándar puede requerir pre-tokenization basada en espacios y puntuación, y el manejo de whitespace puede no ser consistente entre implementaciones
- SentencePiece trata el texto directamente como una secuencia de caracteres Unicode, sin dividirlo previamente
- Puede codificar los espacios como parte del token
- Como funciona sobre raw Unicode, puede codificar explícitamente whitespace como
U+2581para hacer que tokenization y de-tokenization sean reversibles y lossless - Internamente puede implementar BPE o un método de unigram language model
- Es popular en los LLM modernos por su independencia del idioma y reversibilidad
Impacto del tamaño del vocabulario, los límites de tokens y las palabras raras
- Un tokenizer tiene un tamaño de vocabulario fijo; un vocabulario grande contiene más palabras completas, mientras que uno pequeño depende más de subpalabras
- Si
"sampling"o"probability"son un solo token, el modelo predice de una vez la posibilidad del concepto completo- En frases comunes, esto permite una salida más directa y predecible
- En palabras raras, pueden aparecer problemas de
<UNK>o combinaciones incómodas de subpalabras
- Si
"sampling"se divide comosampl+ing, el modelo predice en pasos más granulares- Si samplers como temperature lo permiten, puede cambiar de
samplingasampler - Puede construir palabras raras a partir de fragmentos
- Si se queda fijado en un common sub-word prefix, puede producir salidas menos coherentes o trabadas
- Penalizaciones como DRY deben rastrear secuencias más cortas y semánticamente menos claras
- Si samplers como temperature lo permiten, puede cambiar de
- La misma frase se divide de forma distinta según el tokenizer
"State-of-the-art"podría convertirse enState+-+of+-+the+-+art, o en estilo SentencePiece comoState+_of+_the+_art- Si apareció con frecuencia, también podría ser un único token
- Los límites de token afectan directamente a samplers basados en n-grams como DRY
- Si
"once upon a time"son 4 tokens, DRY puede detectar fácilmente el 4-gram - Si es un solo token, es difícil penalizarlo de la misma manera a menos que se haga rollback de la salida
- Si
- Las palabras raras o nuevas pueden descomponerse en fragmentos conocidos en BPE y SentencePiece
- Si se crea
<UNK>, el sampler pierde una opción significativa que considerar - Los métodos de subpalabras pueden combinar fragmentos de forma creativa, pero crear una palabra rara requiere varios pasos de sampling, por lo que es más probable desviarse a mitad de camino que con un único known token
- Si se crea
1 comentarios
Opiniones en Hacker News
Relacionado con esto, nuestro paper sobre min_p quedó en el puesto 18 entre 12,000 envíos a ICLR y fue seleccionado para presentación oral
https://iclr.cc/virtual/2025/oral/31888
El póster también fue popular: https://iclr.cc/media/PosterPDFs/ICLR%202025/30358.png?t=174...
La presentación oral se puede ver aquí. Hay una parte en la que critican a Yoshua Bengio por este tema, y él resulta ser quien hace la primera pregunta. El segundo presentador empieza alrededor de 19:30, también están las diapositivas de la presentación, y es bastante gracioso: https://iclr.cc/virtual/2025/session/31936
Paper: https://arxiv.org/abs/2407.01082
Como uno de los autores de min_p, puedo confirmar que, hoy, el mejor sampler de propósito general por mucho es Top N sigma. Además, la temperature puede y debe ajustarse mucho más alta de lo que se hace ahora. Si se usan técnicas como min_p o top N sigma, una temperature de 100 está totalmente bien
Otra cosa: la combinación de top_k = 2 y una temperature extremadamente alta, que los autores no recomiendan al final del paper, también es muy interesante por sí misma. Produce errores ortográficos cada unas 10 palabras, pero al mismo tiempo parece generar una creatividad bastante interesante
Sé que el factor de ramificación es absurdamente grande y que expandir nodos también es costoso, pero siempre me pareció raro que en realidad no se haga búsqueda
Algo que falta aquí es que el sampler no tiene acceso al estado interno del modelo. El sampler solo aplica matemáticas básicas a la distribución de salida, y aunque técnicamente esa distribución contiene algo de semántica, no puede descifrarla a menos que sea tan inteligente como el modelo
Lo mismo pasa con samplers como la penalización por repetición o DRY que se explican aquí. El modelo puede repetirse de innumerables maneras, y la única forma de impedirlas todas es con mejor entrenamiento, no con búsquedas de n-gramas ni con enfoques clásicos de procesamiento de lenguaje natural. Es como intentar tapar todos los agujeros con los dedos: ¿cuántos dedos tienes?
Hackear el proceso autorregresivo puede permitir mejoras o trucos ingeniosos con fruta al alcance de la mano como Min-P, pero si el objetivo es convertir un mal modelo en uno bueno, el enfoque está equivocado
Top n sigma existe desde mediados de 2024, y min_p desde 2023, pero fuera del open source, es decir fuera de HF/vllm, seguimos esperando que estas innovaciones se integren. Los proveedores de API van lento a propósito porque no quieren asumir el riesgo de que los modelos se vuelvan demasiado creativos, y además es muy probable que una temperature alta rompa el watermarking
Otra cosa: es muy fácil hacer que el modelo conozca su propia configuración de sampling. Basta con volver a pasarle esa configuración al modelo en cada token o en cada generación. Por ejemplo, se puede hacer con generación estructurada. El modelo puede controlar su propia configuración de sampling y, con apenas un poco de programación adicional, puede “acceder al estado interno”. Ahora ese código incluso puede escribirlo el propio modelo
Hace poco también escribí una guía de sampling para Ollama/llama.cpp, y son bienvenidos los comentarios o propuestas de corrección: https://smcleod.net/2025/04/comprehensive-guide-to-llm-sampl...
Me gusta que todo esté bien organizado y explicado de forma sencilla, porque abre la puerta a ver dónde se podrían probar cosas nuevas con eficacia
Por ejemplo, ¿por qué no usar palabras completas como tokens? Podríamos crear un “robot” con un “dialecto robótico” limitado. No tendría la capacidad de manejar palabras nuevas o raras, pero se podrían modificar los datos de entrenamiento y de entrada para traducir esas palabras al vocabulario existente. Eso daría un mapeo mucho más pequeño, además de sonar literalmente más robótico, y el usuario tendría expectativas sobre qué tipo de respuestas se le dan bien a ese robot, como con C-3PO
Si el intento es hacer que un LLM produzca ideas y no simplemente “el siguiente token”, entonces el proceso de elegir sobre el vector de logits parece que destruiría esa idea original. Si la idea ya está completa, no debería hacer falta usar sampling sobre los logits
En este marco, el sampling no debería ocurrir a un nivel tan cercano a la salida, es decir, en “cuál es la siguiente palabra que se va a decir”
Hace unas semanas hice un artículo interactivo sobre un tema relacionado, sampling restringido. Aunque este artículo es mucho más exhaustivo
http://michaelgiba.com/grammar-based/index.html
¿Podría un modelo LLM hacer la tokenización de forma implícita? Me refiero a aceptar cualquier cadena sin crear un tokenizador separado, y luego hacer que la red neuronal la convierta en tokens y entrenar los pesos de esa red junto con el resto del LLM.
Esos vectores one-hot pasan por una capa lineal y se comprimen al tamaño del estado oculto del modelo. Por ejemplo, el vocabulario de tokens puede tener entre 10.000 y 100.000 elementos, pero el tamaño del estado oculto puede estar alrededor de 500 a 2.000. El resto del modelo opera por completo en el espacio de estados ocultos[1], donde hay varios conceptos de alto nivel.
Si se elimina la tokenización, el codificador tendría que hacer más trabajo para llegar al espacio de estados ocultos al que estamos acostumbrados. Tal vez podría encontrar una codificación más eficiente desde bytes no emparejados hacia el espacio oculto, pero parece poco probable si se considera que la tokenización de la mayoría de los modelos ya se basa en las propiedades estadísticas del conjunto de entrenamiento. Si “anti” o “ism” no se combinan automáticamente en un solo token antes de pasárselos al modelo, las cabezas de atención de las capas bajas del modelo tendrían que hacer lo mismo.
Antes se entrenaban modelos con secuencias de caracteres y luego se pasó a la tokenización por eficiencia, así que es muy probable que este compromiso no valga la pena.
[0] No se le puede pasar simplemente una lista de IDs de tokens. El token 123.25 no tiene significado matemático, y aumentar o disminuir un ID de token tampoco tiene significado.
[1] Mejora el rendimiento, pero dificulta la interpretabilidad. En particular, los vectores base del espacio oculto no se corresponden directamente con palabras o conceptos, y todos los conceptos existen sobre una especie de anillo N-dimensional.
Llamar moderna a la actualización de una técnica para que use tecnologías inventadas hace apenas unos años es casi un problema de alfabetización. Si es moderna, ¿en contraste con qué? ¿Con el muestreo clásico de LLM?
modern, adj. designed and made using the most recent ideas and methods
— https://dictionary.cambridge.org/us/dictionary/english/moder...
Lo que explica este artículo encaja exactamente con esa definición. En los últimos siete años aproximadamente ha habido muchos avances en esta área y, por ejemplo, GPT 1, 2 y 3 ya son claramente muy antiguos según los estándares actuales, y no son modernos en el sentido de la definición anterior.
ChatGPT fue simplemente el avance que llegó al público masivo. Incluso antes de eso, los teclados de smartphones ya usaban LLM desde hace 10 años.
Es un documento realmente útil. Las explicaciones son muy claras y el alcance que cubre es amplio.
¿Alguien sabe quién lo escribió? No aparece el autor y está publicado en un pastebin gratuito de Markdown.
Me pareció interesante la parte de la penalización de repetición DRY. A menudo quiero que un LLM copie deliberadamente y con exactitud la entrada en la salida. Por ejemplo, al resumir una conversación larga, suelo pedir citas exactas que muestren mejor los puntos de discusión, porque así después es más fácil buscarlas en el original y verificar los hechos.
La penalización DRY parece ir en contra de ese objetivo.