7 parámetros de generación de LLM: ¿qué hacen y cómo ajustarlos?

Ajustar los resultados del LLM es en gran medida un problema de decodificación: usted da forma a la distribución del siguiente token del modelo con un puñado de controles de muestreo: tokens máximos (limita la longitud de respuesta bajo el límite de contexto del modelo), temperatura (escala logit para más/menos aleatoriedad), top-p/nucleus y top-k (trunca el conjunto de candidatos por masa de probabilidad o rango), penalizaciones de frecuencia y presencia (desalienta la repetición o fomenta la novedad), y detiene secuencias (terminación dura en delimitadores). Estos siete parámetros interactúan: la temperatura ensancha la cola que top-p/top-k luego recorta; las penas mitigan la degeneración durante largas generaciones; Los tokens stop plus max proporcionan límites deterministas. Las secciones siguientes definen cada parámetro con precisión y resumen los rangos y comportamientos documentados por el proveedor basados ​​en la literatura de decodificación.

1) Tokens máximos (también conocidos como max_tokens, max_output_tokens, max_new_tokens)

Qué es: un límite superior estricto sobre la cantidad de tokens que el modelo puede generar en esta respuesta. No expande la ventana de contexto; la suma de los tokens de entrada y los tokens de salida aún debe ajustarse a la longitud del contexto del modelo. Si el límite llega primero, la API marca la respuesta como “incompleta/larga”.

Cuándo sintonizar:

Limitar la latencia y el costo (tokens ≈ tiempo y $$). Evite que se sobrepase un delimitador cuando no pueda confiar únicamente en la parada.

2) Temperatura (temperatura)

Qué es: un escalar aplicado a logits antes de softmax:

softmax(z/T)i​=∑j​ezj​/Tezi​/T​

La T más baja agudiza la distribución (más determinista); una T más alta lo aplana (más aleatorio). Las API públicas típicas exponen un rango cercano [0,2][0, 2][0,2]. Utilice T baja para tareas analíticas y T más alta para expansión creativa.

3) Muestreo de núcleo (top_p)

Qué es: Muestra solo del conjunto más pequeño de tokens cuya masa de probabilidad acumulada ≥ p. Esto trunca la larga cola de baja probabilidad que impulsa la clásica “degeneración” (divagaciones, repetición). Introducido como muestreo de núcleos por Holtzman et al. (2019).

Notas prácticas:

La banda operativa común para texto abierto es top_p ≈ 0,9–0,95 (guía para abrazar la cara). Anthropic recomienda ajustar la temperatura o top_p, no ambos, para evitar la aleatoriedad acoplada.

4) Muestreo top-k (top_k)

Qué es: en cada paso, restrinja los candidatos a los k tokens de mayor probabilidad, vuelva a normalizarlos y luego muestree. Trabajos anteriores (Fan, Lewis, Dauphin, 2018) utilizaron esto para mejorar la búsqueda de novedad versus haz. En las cadenas de herramientas modernas, a menudo se combina con muestreo de temperatura o núcleo.

Notas prácticas:

Los rangos típicos de top_k son pequeños (≈5–50) para una diversidad equilibrada; Los documentos de HF muestran esto como una guía de “consejos profesionales”. Con top_k y top_p configurados, muchas bibliotecas aplican el filtrado k y luego el filtrado p (detalle de implementación, pero es útil saberlo).

5) Penalización de frecuencia (frequency_penalty)

Qué es: Disminuye la probabilidad de los tokens proporcionalmente a la frecuencia con la que ya aparecieron en el contexto generado, reduciendo la repetición palabra por palabra. La referencia de Azure/OpenAI especifica el rango de −2,0 a +2,0 y define el efecto con precisión. Los valores positivos reducen la repetición; los valores negativos lo alientan.

Cuándo usarlo: Generaciones largas en las que el modelo repite o repite frases (por ejemplo, listas de viñetas, poesía, comentarios de código).

6) Penalización de presencia (presence_penalty)

Qué es: Penaliza los tokens que han aparecido al menos una vez hasta el momento, animando al modelo a introducir nuevos tokens/temas. Mismo rango documentado de −2,0 a +2,0 en la referencia de Azure/OpenAI. Los valores positivos empujan hacia la novedad; Los valores negativos se condensan en torno a los temas vistos.

Heurística de ajuste: comience en 0; Empuje la presencia_penalidad hacia arriba si el modelo permanece demasiado “sobre los rieles” y no explora alternativas.

7) Detener secuencias (parar, detener_secuencias)

Qué es: cadenas que obligan al decodificador a detenerse exactamente cuando aparecen, sin emitir el texto de detención. Útil para delimitar salidas estructuradas (por ejemplo, final de sección o objeto JSON). Muchas API permiten múltiples cadenas de parada.

Consejos de diseño: elija delimitadores inequívocos que es poco probable que aparezcan en texto normal (por ejemplo, “<|end|>“, “\n\n###”) y emparéjelos con max_tokens como control de cinturón y tirantes.

Interacciones que importan

Temperatura versus Núcleo/Top-k: El aumento de la temperatura expande la masa de probabilidad hacia la cola; top_p/top_k luego recorta esa cola. Muchos proveedores recomiendan ajustar un control de aleatoriedad a la vez para mantener interpretable el espacio de búsqueda. Control de la degeneración: empíricamente, el muestreo de núcleos alivia la repetición y la suavidad al truncar colas poco confiables; combinar con penalización de frecuencia de luz para salidas largas. Latencia/coste: max_tokens es la palanca más directa; transmitir la respuesta no cambia el costo pero mejora la latencia percibida. (Diferencias de modelo: algunos puntos finales de “razonamiento” restringen o ignoran estas perillas (temperatura, penalizaciones, etc.). Consulte los documentos específicos del modelo antes de migrar las configuraciones.

Referencias:

https://arxiv.org/abs/1904.09751 https://openreview.net/forum?id=rygGQyrFvH https://huggingface.co/docs/transformers/en/ Generation_strategies https://huggingface.co/docs/transformers/en/main_classes/text_generación https://arxiv.org/abs/1805.04833 https://aclanthology.org/P18-1082.pdf https://help.openai.com/en/articles/5072263-how-do-i-use-stop-sequences https://platform.openai.com/docs/api-reference/introduction https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.html https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/content-spawn-parameters https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/adjust-parameter-values https://learn.microsoft.com/en-us/azure/ai-foundry/openai/how-to/reasoning

Michal Sutter es un profesional de la ciencia de datos con una Maestría en Ciencias de Datos de la Universidad de Padua. Con una base sólida en análisis estadístico, aprendizaje automático e ingeniería de datos, Michal se destaca en transformar conjuntos de datos complejos en conocimientos prácticos.

🙌 Siga MARKTECHPOST: agréguenos como fuente preferida en Google.