Intermedio 11 minConfiguración

Temperatura, top-p, top-k: los parámetros

Respuesta directa

El top-p (muestreo por núcleo) mantiene solo los tokens más probables cuya probabilidad acumulada alcanza p, por ejemplo 0,9. El top-k mantiene un número fijo de candidatos, por ejemplo 40. La temperatura regula el azar del muestreo: cerca de 0, el modelo elige casi siempre el token más probable. Ollama comienza a temperatura 0,8, top-k 40 y top-p 0,9.

Tres valores aparecen en todos los ajustes de un modelo local: la temperatura, top-p y top-k. Esta guía explica qué elimina o desplaza cada uno en la lista de palabras posibles, con un ejemplo numérico, los valores por defecto de Ollama y de llama.cpp, las recomendaciones publicadas por los editores de modelos y cómo aplicarlas.

Por Mohamed Meguedmi·Actualización 2026-09-29·Probado en Windows, macOS y Linux

#Top-p, top-k, temperatura: la definición en un cuadro

Con cada palabra generada, un modelo calcula una probabilidad para cada token de su vocabulario. Los parámetros de muestreo deciden después cuál seleccionar. Top-p y top-k reducen la lista de candidatos; la temperatura modifica la diferencia entre los más probables y los menos probables. Ninguno añade conocimiento al modelo: solo regulan la variedad y el riesgo.

Lo que hace cada parámetro
ParámetroSobre qué actúaValor bajoValor altoValor predeterminado de Ollama
temperatureDiferencia entre tokens probables e improbablesRespuestas más deterministasMás variedad, más errores0,8
top_pTamaño de la lista, definido por la probabilidad acumuladaLista corta, salida conservadoraLista amplia, más diversidad0,9
top_kNúmero máximo de candidatosPocos candidatosMuchos candidatos40
min_pUmbral relativo a la probabilidad más altaFiltrado ligeroFiltrado fuerte0,0 (desactivado)
repeat_penaltyPenalización de los tokens utilizados recientementeMás repeticionesMenos repeticiones, riesgo de resultados extraños1,0 (desactivado)

Estos valores predeterminados proceden de la documentación de referencia del Modelfile de Ollama. Muchos modelos incluyen sus propios valores en su archivo de configuración, que sustituyen a esos valores predeterminados: de ahí el interés de leer la ficha del modelo, como veremos más abajo.

#¿Cómo elige un LLM la siguiente palabra?

El kit de IA Local

Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j

El modelo genera, para cada posición, una distribución de probabilidades sobre todo su vocabulario. Elegir siempre el token más probable, lo que se llama decodificación voraz, produce textos planos, repetitivos y a veces atrapados en un bucle. Se introduce así un muestreo aleatorio, limitado por los parámetros de muestreo. Una semilla fija (seed) hace que este muestreo sea reproducible: la documentación de Ollama especifica que una semilla dada produce el mismo texto para el mismo prompt.

El orden en que se aplican los filtros importa. En llama.cpp, el motor de inferencia GGUF utilizado, entre otros, por LM Studio, el orden predeterminado es: penalizaciones, DRY, top-n sigma, top-k, typical-p, top-p, min-p, XTC y, por último, la temperatura. Es decir, top-k y top-p operan sobre las probabilidades originales, y la temperatura solo sirve para elegir entre lo que queda. Muchos tutoriales indican lo contrario; el orden real puede variar de un motor a otro y se configura en llama.cpp mediante el parámetro --samplers.

i
Lo que cambia para ti
Como la temperatura se aplica después de los filtros en llama.cpp, aumentarla no introduce tokens absurdos que top-k o top-p ya habían descartado: redistribuye las probabilidades entre los candidatos restantes.

#Un ejemplo numérico: lo que retiene cada ajuste

Tomemos siete candidatos para la siguiente palabra, con sus probabilidades: 0,45; 0,25; 0,12; 0,08; 0,05; 0,03; 0,02. Esta tabla es un cálculo ilustrativo, no una medición en un modelo real.

¿Qué candidatos quedan según el filtro?
FiltroReglaCandidatos conservadosProbabilidad cubierta
NingunoTodo el vocabulario7100 %
top_k = 3Los 3 mejores382 %
top_p = 0,9Se detiene cuando el acumulado alcanza 0,904 (0,45 + 0,25 + 0,12 + 0,08)90 %
top_p = 0,7Acumulado de 0,70270 %
min_p = 0,1Conservar los tokens cuya probabilidad supere el 10 % de la del mejor token, es decir, un umbral de 0,045595 %

Punto a tener en cuenta: top-k mantiene siempre el mismo número de candidatos, independientemente de la situación; top-p y min-p se adaptan. Cuando el modelo está muy seguro (un token a 0,95), top-p podría conservar solo uno o dos candidatos; cuando duda entre diez palabras, conserva más. Por eso, top-p suele preferirse a top-k.

#1. Temperatura: el botón del azar

Antes del muestreo, los logits del modelo se dividen por la temperatura. A baja temperatura, la diferencia entre los tokens aumenta: el más probable domina a los demás. A alta temperatura, la diferencia se reduce. A 0, el modelo siempre elige el token más probable y produce salidas idénticas en cada intento, lo que confirma la documentación de llama.cpp.

Efecto de la temperatura en el ejemplo anterior (cálculo ilustrativo)
CandidatoProbabilidad originalT = 0,5T = 1,5
1er45 %70 %34 %
2e25 %22 %23 %
3e12 %5 %14 %
4e8 %2 %11 %
5e à 7eUn total del 10 %1,3 %17,8 %
0 à 0,3
Extracción, clasificación, resumen fidedigno: quieres la misma respuesta en cada intento.
0,4 à 0,7
Redacción técnica, traducción, soporte: variedad sin deriva.
0,8
Valor predeterminado de Ollama y de llama.cpp: conversación general.
1 o más
Creatividad, brainstorming; mayor riesgo de errores y digresiones.
!
Temperatura 0: no siempre la mejor idea para código
Para salidas que deban analizarse sintácticamente (JSON, clasificación), una temperatura baja es razonable. Pero los desarrolladores de modelos de razonamiento suelen recomendar valores más altos: la ficha de Qwen3.5 indica 0,6 para el código en modo razonamiento y 1,0 para las tareas generales. Lee la ficha antes de imponer 0.

#2. Top-p: el filtro adaptativo

Top-p, o muestreo de núcleo, conserva los tokens más probables hasta que su probabilidad acumulada alcanza p. Con 0,9, se descarta la cola que representa el 10 % de la probabilidad; con 1,0, no se filtra nada. La documentación de Ollama recuerda que un valor más alto, por ejemplo 0,95, produce un texto más variado, y uno más bajo, por ejemplo 0,5, un texto más enfocado y conservador.

0,5 à 0,7
Muy conservador: respuestas seguras, a veces monótonas.
0,9
Valor predeterminado de Ollama: recorta la cola sin limitar demasiado la variedad.
0,95
Valor predeterminado de llama-server, y valor recomendado por varias fichas de modelos.
1,0
Filtro desactivado: la temperatura sigue actuando sola.

#3. Top-k: el límite máximo fijo

Top-k conserva solo los k tokens más probables. La documentación de Ollama describe este parámetro como una forma de reducir la probabilidad de generar contenido sin sentido: con un valor más alto (100), las respuestas son más diversas; con uno más bajo (10), más conservadoras. Su valor predeterminado es 40, como en llama.cpp, donde 0 lo desactiva.

Top-k, top-p o min-p: ¿cuál usar?
FiltroVentajaLímiteCuándo usarlo
top_kSimple, limita el cálculoIgnora la forma de la distribución: demasiados candidatos cuando el modelo está seguro, demasiado pocos cuando dudaLímite de protección amplio (20 a 100)
top_pSe adapta a la confianza del modeloPuede dejar pasar una larga cola si la distribución es planaAjuste principal de diversidad
min_pUmbral relativo a la probabilidad más alta, estable incluso con una temperatura elevadaMenos conocido, no activado por defecto en OllamaAlternativa a top_p, a menudo con una temperatura más alta

Para la consulta «top p vs top k»: utiliza top-p como ajuste principal, mantén top-k como mecanismo de protección y no ajustes ambos en la misma prueba; de lo contrario, no sabrás cuál produjo la diferencia.

#Valores por defecto y recomendaciones de los proveedores

Los valores predeterminados de un motor representan un compromiso genérico. Los editores de modelos suelen publicar valores adaptados a sus modelos, que pueden diferir de los predeterminados. Estas son las recomendaciones de la ficha de Qwen3.5 para sus modelos, para compararlas con los valores predeterminados de Ollama (temperatura 0,8, top-p 0,9, top-k 40).

Ajustes recomendados en la ficha de Qwen3.5-9B en Hugging Face
ModoTemperaturatop_ptop_kpresence_penalty
Razonamiento, tareas generales1,00,95201,5
Razonamiento, código preciso0,60,95200,0
Sin razonamiento, tareas generales0,70,8201,5

Estos valores se aplican a esta familia de modelos, no a todos. Las fichas de otros editores indican otros valores: busca la sección sobre parámetros de muestreo recomendados en la ficha de Hugging Face o en la página del modelo en la biblioteca de Ollama. La ficha de Qwen también especifica que la compatibilidad con estos parámetros varía según el motor de inferencia.

#Penalizaciones: repetición, frecuencia, presencia

Los modelos locales, especialmente los pequeños o muy cuantizados, a veces repiten las mismas frases en bucle. Las penalizaciones son el remedio, pero sus valores predeterminados suelen ser poco conocidos. En Ollama, repeat_penalty vale 1,0 por defecto, por lo que la penalización está desactivada; la documentación da 1,5 como ejemplo de un valor que penaliza con más fuerza. El valor 1,1 que se cita a menudo es una opción que debes elegir, no un valor predeterminado.

repeat_penalty
Penaliza los tokens vistos recientemente; repeat_last_n (64 por defecto) fija la ventana que se analiza.
frequency_penalty
Penalización proporcional al número de apariciones, para generaciones largas.
presence_penalty
Penalización en cuanto un token ha aparecido, para fomentar un vocabulario más variado; Qwen recomienda 1,5 en varios de sus modos, con el riesgo de mezclar idiomas si el valor es demasiado alto.
→
Aumentar las penalizaciones poco a poco
Una penalización fuerte empuja al modelo hacia palabras raras o inesperadas. Aumenta repeat_penalty en incrementos de 0,05 a 0,1 y detente en cuanto desaparezcan los bucles.

#Aplicar estos ajustes en Ollama

Existen dos métodos: un Modelfile, que fija valores para un modelo con un nombre definido, o el campo options de una solicitud a la API, que acepta los mismos parámetros que el Modelfile. El Modelfile es adecuado para el uso diario; la API, para un programa.

Modelfile: un modelo personalizado
FROM llama3.2
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER top_k 40
Crear y luego ejecutar este modelo
ollama create llama-precis -f ./Modelfile
ollama run llama-precis
Mismo ajuste en una solicitud de API
curl http://localhost:11434/api/generate -d '{"model":"llama3.2","prompt":"Résume en une phrase : ...","stream":false,"options":{"temperature":0.3,"top_p":0.9}}'

Para profundizar en los Modelfile (prompt de sistema, contexto, plantilla), consulta la guía de personalización. Para LM Studio y Jan, los mismos parámetros se configuran en el panel de configuración del modelo.

#Modelos de razonamiento: no ajustar todo mediante la temperatura

Los modelos de razonamiento generan primero una traza de reflexión antes de responder. En Ollama, estos modelos muestran un campo de reflexión separado, y los comandos disponibles varían según el modelo: la documentación sugiere consultar la API show para conocer los valores aceptados y el valor por defecto. Por ejemplo, para gpt-oss, los niveles son low, medium y high, con medium como valor por defecto.

Para reducir los lanzamientos innecesarios en una pregunta sencilla, actúa primero en este nivel de reflexión, si existe, en lugar de en la temperatura. La temperatura, por su parte, debe seguir la ficha del modelo: un razonamiento demasiado frío puede congelarse, un razonamiento demasiado caliente puede dispersarse.

#Ajustes predefinidos de partida según el uso

Valores de partida que debes ajustar, salvo en modelos con recomendaciones específicas
UsoTemperaturatop_pOtros ajustes
Extracción, clasificación, JSON0 à 0,20,9Formato estricto solicitado en el prompt
Resumen fiel0,2 à 0,30,9repeat_penalty ligeramente por encima de 1
Conversación general0,7 à 0,80,9Valores predeterminados del motor
Redacción, ideas0,8 à 1,00,95presence_penalty moderada
Ficción, creatividad1,00,95Controlar las digresiones

Estos ajustes predefinidos son puntos de partida, no mediciones. Cambia un parámetro a la vez, envía tres veces el mismo prompt y compara los resultados: si los tres intentos dan la misma respuesta cuando esperas variedad, la temperatura es demasiado baja o la semilla está fijada.

#Síntomas y ajustes para probar

El modelo repite la misma frase
Activa repeat_penalty con un valor de alrededor de 1,1 o activa presence_penalty, o acorta la generación con num_predict.
Respuestas planas y genéricas
Aumenta la temperatura un paso (de 0,7 a 0,9) o flexibiliza top_p.
El modelo inventa hechos
Baja la temperatura, pero ten en cuenta que no es suficiente: ver la guía sobre las alucinaciones.
JSON mal formado
Temperatura baja y formato solicitado explícitamente; utiliza el modo de salida estructurada de Ollama cuando exista.
Mezcla de idiomas o palabras extrañas
Baja presence_penalty o repeat_penalty, o aumenta ligeramente la cuantización del modelo.
Preguntas frecuentes sobre top-p, top-k y la temperatura
¿Qué es el top-p en un LLM?+
El top-p es un filtro que conserva solo los tokens más probables cuya suma de probabilidades alcanza el umbral p, por ejemplo 0,9. El resto se descarta antes del muestreo. A diferencia del top-k, el número de candidatos varía: es pequeño si el modelo está seguro, mayor si duda.
¿Cuál es la diferencia entre top-p y top-k?+
El top-k mantiene siempre un número fijo de candidatos, por ejemplo 40, independientemente de la situación. El top-p mantiene un número variable de candidatos, según la probabilidad acumulada. Por tanto, el top-p se adapta mejor a la confianza del modelo; el top-k sirve como un filtro sencillo contra los tokens muy improbables.
¿Se deben ajustar la temperatura y el top-p al mismo tiempo?+
Es mejor modificar un solo parámetro a la vez para entender su efecto. En la práctica, deja top-p y top-k en sus valores predeterminados o en los indicados en la ficha del modelo, y ajusta la temperatura. Si cambias varios ajustes al mismo tiempo, no sabrás cuál produjo la diferencia.
¿Qué temperatura para el código?+
Para un modelo sin razonamiento, un valor bajo (0 a 0,2) da salidas reproducibles. Para un modelo con razonamiento, sigue la ficha del proveedor: la de Qwen3.5 recomienda 0,6 para generar código preciso en modo razonamiento. Prueba con tus propios casos y verifica que el código compile o pase tus pruebas.
¿Cuáles son los valores por defecto en Ollama?+
La documentación del Modelfile indica una temperatura de 0,8, un top-k de 40, un top-p de 0,9, un min-p de 0,0 (desactivado) y una penalización por repetición de 1,0 (desactivada). Un modelo puede incluir sus propios valores y reemplazar los anteriores; ollama show --modelfile permite verlos.
¿Qué es min-p y se debe usar?+
El min-p elimina los tokens cuya probabilidad es inferior a una fracción de la del mejor candidato: con un valor de 0,05 y un token más probable con una probabilidad de 0,9, el umbral es 0,045. Es una alternativa al top-p y está desactivada por defecto en Ollama. Úsala solo si la ficha del modelo la recomienda.
¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.