Cuando usamos un modelo de lenguaje, es fácil imaginar que primero «piensa» toda la respuesta y después la escribe, como haría una persona. Pero no funciona así.
Como vimos en «¿Cómo piensan los LLM?», un LLM genera texto paso a paso. Literalmente va decidiendo cuál será el siguiente token, una palabra, parte de una palabra o incluso un signo de puntuación en función de probabilidades.
En cada instante el modelo se pregunta algo parecido a:
«¿Qué palabra tiene más sentido aquí?»
Y no obtiene una única respuesta, sino miles de posibilidades con distintos niveles de probabilidad.
Los parámetros de generación son los controles que modifican cómo toma esas decisiones. No cambian el conocimiento del modelo; cambian su comportamiento. Es decir, determinan si el modelo será más conservador, más creativo, más repetitivo o más explorador.
Temperatura: el control de la creatividad
La temperatura es probablemente el parámetro más intuitivo porque afecta directamente a la «personalidad» de la respuesta.
Con una temperatura baja, el modelo se vuelve cauteloso. Tiende a elegir siempre las palabras más probables y seguras. El resultado suele ser más preciso, más estable y mucho más repetible.
Por eso, cuando se trabaja con programación, matemáticas o tareas técnicas, normalmente se usan temperaturas bajas. No quieres que el modelo improvise demasiado cuando está escribiendo código o resolviendo algo delicado.
En cambio, cuando aumentas la temperatura, el modelo empieza a asumir más riesgos. Palabras menos probables entran en juego y las respuestas se vuelven más variadas, más naturales y a veces sorprendentemente creativas.
Ahí es donde aparecen cosas interesantes:
- Asociaciones inesperadas
- Metáforas
- Ideas originales
- Estilos más humanos
Pero también aparecen más errores.
Y aquí hay una idea importante: una temperatura alta no hace al modelo más inteligente. Solo hace que explore caminos menos probables.
Es como la diferencia entre una persona extremadamente prudente y otra más impulsiva. La segunda puede tener ideas brillantes… o decir tonterías con más frecuencia.
Top_p: decidir qué opciones merecen atención
Aunque un modelo pueda generar miles de palabras distintas, la realidad es que la mayoría no tienen ningún sentido en un contexto concreto.
Top_p sirve para limitar el «universo de opciones» antes de elegir.
Imagina que el modelo está escribiendo:
«El café estaba tan caliente que…»
Probablemente las palabras más razonables sean:
- Quemaba
- Humeaba
- Ardía
Pero también podrían existir opciones absurdas con probabilidades diminutas.
Lo que hace top_p es quedarse únicamente con las opciones suficientemente relevantes. Si el valor es 0.9, el modelo conserva solo el conjunto de palabras que acumulan el 90% de probabilidad total.
Todo lo demás desaparece.
La sensación práctica es interesante:
- Con top_p bajo, el modelo se vuelve más conservador.
- Con top_p alto, permite respuestas más abiertas y variadas.
Muchas veces top_p influye más en la naturalidad del texto que la propia temperatura.
Top_k: un filtro más rígido
Top_k hace algo parecido, pero de forma más mecánica.
En lugar de trabajar con porcentajes de probabilidad, simplemente dice:
«Solo puedes elegir entre las K palabras más probables.»
Si top_k = 40, el modelo ignora todo excepto las 40 opciones principales.
Es una técnica más antigua y más rígida que top_p. Funciona bien en algunos casos, pero no se adapta al contexto con la misma inteligencia.
Hay un detalle curioso: si top_k = 1, el modelo siempre elige la palabra más probable. Eso se llama greedy decoding.
Suena lógico, pero el resultado suele ser extraño:
- Texto demasiado predecible.
- Estructuras repetitivas.
- Poca naturalidad.
Paradójicamente, elegir siempre la opción «más correcta» puede hacer que el lenguaje parezca menos humano.
Min_p: Evitar ideas absurdas
Min_p es menos conocido, pero tiene una función muy útil.
En temperaturas altas, el modelo empieza a considerar palabras raras porque la distribución de probabilidades se vuelve más flexible. A veces eso produce creatividad, otras veces produce frases absurdas.
Min_p actúa como una especie de filtro de plausibilidad.
En lugar de preguntar:
«¿Está esta palabra entre las más probables?»
pregunta:
«¿Está lo suficientemente cerca de la mejor opción?»
Si una palabra tiene una probabilidad demasiado baja respecto a la principal, simplemente se descarta.
La ventaja es que permite mantener creatividad sin que el modelo se descarrile constantemente.
El problema natural de los modelos: Repetir
Los modelos de lenguaje tienen una tendencia muy fuerte a repetir patrones. Y tiene sentido: si una palabra acaba de aparecer varias veces, estadísticamente es probable que vuelva a aparecer.
Por eso existen las penalizaciones.
Repeat_penalty: romper los bucles
Repeat_penalty intenta evitar que el modelo caiga en repeticiones incómodas.
Sin penalización, algunos modelos pueden entrar en ciclos como:
«el sistema funciona porque el sistema permite que el sistema…»
Al aplicar una penalización, las palabras ya usadas pierden atractivo estadístico y el modelo busca alternativas.
El problema es que, si exageras, el texto empieza a sonar raro. El modelo evita repetir incluso términos importantes y termina usando sinónimos innecesarios o expresiones artificiales.
Por eso este parámetro necesita equilibrio. Demasiado poco produce loops; demasiado produce incoherencia.
Frequency_penalty: combatir las muletillas
Este parámetro penaliza palabras según cuántas veces se hayan usado.
No evita solo repeticiones inmediatas. También reduce la tendencia del modelo a apoyarse constantemente en las mismas expresiones.
Es especialmente útil en textos largos, donde algunos modelos desarrollan «muletillas estadísticas».
Con frequency_penalty alto, el lenguaje suele volverse más variado.
Presence_penalty: empujar al modelo hacia ideas nuevas
Presence_penalty funciona de una manera más conceptual.
No importa cuántas veces apareció una palabra. Solo importa si ya apareció antes.
Eso hace que el modelo tienda a introducir temas nuevos en lugar de quedarse girando alrededor de las mismas ideas.
En brainstorming o escritura creativa esto es muy útil porque fuerza exploración conceptual.
Es, en cierto modo, un parámetro que empuja al modelo a «cambiar de tema».
Repeat_last_n: cuánto recuerda para evitar repetir
Este parámetro define cuántos tokens recientes revisa el sistema para detectar repeticiones.
Puede parecer un detalle técnico menor, pero afecta muchísimo al comportamiento.
Si el valor es pequeño, el modelo olvida rápidamente lo que acaba de decir y puede repetir estructuras largas.
Si el valor es demasiado grande, se vuelve excesivamente rígido y empieza a evitar palabras necesarias para mantener coherencia.
Es otro equilibrio delicado:
- Poca memoria → repeticiones.
- Demasiada memoria → lenguaje artificial.
Lo realmente importante: todo interactúa
La mayoría de problemas en generación de texto no vienen de un parámetro aislado, sino de combinaciones malas.
Una temperatura alta puede funcionar genial… si tienes filtros adecuados.
Un top_k demasiado bajo junto con penalizaciones fuertes puede dejar al modelo «sin opciones» y hacer que escriba raro.
Una temperatura muy baja puede parecer precisa al principio, pero en textos largos termina sonando robótica.
La generación de texto es, en el fondo, un equilibrio constante entre:
- Control y libertad
- Estabilidad y exploración
- Precisión y creatividad
Y eso es precisamente lo interesante de estos parámetros: permiten moldear el comportamiento del modelo casi como si estuvieras ajustando la personalidad con la que escribe.
