Intermedio 12 minOllama

Ollama Modelfile: crear y personalizar tu modelo

Ollama no se limita a descargar modelos existentes: con un archivo de texto de unas pocas líneas, puedes crear tus propias variantes. Un Modelfile es el equivalente de un Dockerfile para LLM: deja definidos un prompt de sistema, parámetros de muestreo y una plantilla de conversación. Esta guía muestra cómo personalizar Ollama con un Modelfile mediante tres casos concretos: un asistente que responde estrictamente en francés, un programador de Python y un traductor sin comentarios adicionales.

Por Mohamed Meguedmi·Actualización 2026-08-31·Probado en Windows, macOS y Linux
i
En resumen
Un Modelfile de Ollama es el equivalente de un Dockerfile para LLM: un archivo de texto que fija un comportamiento sobre un modelo existente, sin modificar sus pesos. · Tres directivas bastan para lo esencial: FROM (el modelo base), SYSTEM (el prompt del sistema persistente) y PARAMETER (temperatura, contexto, etc.). · Una vez escrito el archivo, ollama create mon-modele -f ./Modelfile crea la variante, que después se puede utilizar con ollama run mon-modele. · Útil para un asistente que use estrictamente el francés, un programador de Python silencioso o un traductor sin comentarios innecesarios.

#¿Por qué se necesita un Modelfile?

Cuando escribes ollama run qwen3.5:9b, obtienes un modelo genérico. A veces responde en inglés a una pregunta en francés, comenta sus respuestas de código con introducciones interminables y negocia cuando pides una traducción literal. En lugar de repetir el mismo prompt de sistema en cada sesión, lo dejas fijado una sola vez en un Modelfile y obtienes una variante reutilizable.

En concreto, un Modelfile permite tres cosas: (1) asociar un prompt de sistema persistente al modelo, (2) ajustar los parámetros de generación (temperatura, contexto, tokens de parada), (3) opcionalmente reemplazar el template de chat. La variante creada se utiliza como cualquier modelo Ollama: ollama run mon-assistant.

i
No es fine-tuning
Un Modelfile no modifica los pesos del modelo. Solo configura su comportamiento. Para que realmente aprenda un estilo o un dominio, se necesita un fine-tune (LoRA, QLoRA) — lo cual va más allá del alcance de Ollama solo.

#Prerrequisitos

El kit de IA Local

Sabes personalizar un modelo con un Modelfile. El kit IA Local lo instala en un verdadero ChatGPT privado para toda la casa, con Ollama y Open WebUI (cap. 6), y te ayuda a elegir el modelo base adecuado para tu máquina (cap. 3).

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j
Ollama instalado
Versión 0.3+ recomendada. Comprueba la versión con ollama --version. El daemon debe estar en ejecución en http://localhost:11434.
Un modelo base ya descargado
Por ejemplo, ollama pull qwen3.5:9b o ollama pull qwen3-coder:30b. El Modelfile hereda de este modelo.
Un editor de texto
VSCode, Notepad++, vim: cualquiera. El archivo no requiere una extensión concreta; por convención, suele llamarse Modelfile.
Alrededor de 5 minutos
El tiempo necesario para crear el archivo y ejecutar ollama create. No hay descargas adicionales: se reutiliza un modelo que ya está disponible.

#1. Sintaxis del Modelfile

Un Modelfile es un archivo de texto con instrucciones en mayúsculas, una por bloque. El orden no tiene importancia, pero la convención coloca FROM al principio.

Esqueleto mínimo
FROM qwen3.5:9b

SYSTEM """
Tu es un assistant utile et concis.
"""

PARAMETER temperature 0.7
PARAMETER num_ctx 4096

Instrucciones principales:

FROM
Modelo base. Obligatorio. Acepta un nombre Ollama (qwen3.5:9b, qwen3.8:27b) o una ruta local hacia un GGUF.
SYSTEM
El prompt de sistema que se inyectará en cada conversación. Usa comillas triples para textos multilínea.
PARAMETER
Ajustes de muestreo y contexto. Una instrucción por parámetro. Los más útiles: temperature, top_p, top_k, num_ctx, repeat_penalty, num_predict, stop.
TEMPLATE
Formato de prompt completo (raro). Solo modificarlo si sabes lo que haces: cada familia de modelos tiene su plantilla.
MESSAGE
Ejemplos few-shot. Precedidos por MESSAGE user o MESSAGE assistant. Útiles para fijar un estilo.
ADAPTER
Ruta hacia un GGUF LoRA para aplicar sobre FROM. Para usuarios avanzados.
LICENSE
Texto libre, para trazabilidad. No afecta la ejecución.
→
Los parámetros que realmente importan
En el 90 % de los casos, solo necesitarás SYSTEM + temperature + num_ctx. No hace falta configurarlo todo: Ollama aplica valores predeterminados razonables (temperature 0.8, num_ctx 2048, repeat_penalty 1.1).

#2. Crear tu primer modelo

El flujo de trabajo es siempre el mismo: escribimos un Modelfile, lanzamos ollama create y probamos con ollama run.

  1. 01
    Crear el archivo
    En una carpeta de trabajo, crea un archivo llamado Modelfile (sin extensión). Escribe en él la definición de tu variante.
  2. 02
    Empezar a crear
    Desde el mismo directorio: ollama create mon-modele -f ./Modelfile. Ollama valida la sintaxis, hereda los pesos del modelo FROM y registra una nueva entrada. Es instantáneo, no vuelve a descargar nada.
  3. 03
    Verificar
    ollama list montre votre nouveau modèle aux côtés des autres. La taille affichée est identique à celle du modèle de base — c'est une référence, pas une copie.
  4. 04
    Probar
    ollama run mon-modele. Le system prompt et les paramètres sont déjà appliqués. Vous pouvez aussi pointer une interface (Open WebUI, LM Studio) sur cette variante via l'API.
Ciclo completo
# Dans le dossier qui contient le Modelfile
ollama create assistant-fr -f ./Modelfile
ollama list
ollama run assistant-fr
!
El nombre del modelo es definitivo
Para modificar un Modelfile, edita el archivo y vuelve a ejecutar ollama create con el MISMO nombre: la variante se reemplaza. Si cambias el nombre, acumulas referencias. ollama rm <nom> elimina una variante que ya no necesitas.

#3. Ejemplo: asistente conciso en francés

Objetivo: un asistente que responda siempre en francés, sin prólogo del tipo "Bien sûr, voici…", sin fórmulas de disculpa, con una longitud ajustada.

Modelfile-assistant-fr
FROM qwen3.5:9b

SYSTEM """
Tu es un assistant francophone précis et concis.

Règles strictes :
- Réponds toujours en français, jamais en anglais, même si l'utilisateur écrit en anglais.
- Pas de préambule ("Bien sûr", "Voici", "Absolument"). Va directement au fait.
- Pas d'excuses ni de disclaimers sauf si l'information est réellement incertaine.
- Réponses courtes par défaut (3-5 phrases). Détaille uniquement si on te le demande explicitement.
- Si tu ne sais pas, dis-le en une phrase. N'invente pas.
"""

PARAMETER temperature 0.6
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
PARAMETER repeat_penalty 1.15

Creación y prueba:

Terminal
ollama create assistant-fr -f ./Modelfile-assistant-fr
ollama run assistant-fr "Quels sont les avantages d'un LLM local ?"

Configurar repeat_penalty en 1.15 (en lugar de 1.1, el valor predeterminado) frena las repeticiones de los modelos. Configurar num_ctx en 8192 permite pegar documentos algo largos sin desbordar el contexto predeterminado de 2048.

→
Probar el efecto del system prompt
Compara lado a lado ollama run qwen3.5:9b y ollama run assistant-fr con la misma pregunta. Sin Modelfile, Qwen 3.5 suele empezar por "Bien sûr,". Con tu variante, pasa directamente a la respuesta. Esa es la diferencia concreta.

#4. Ejemplo: codificar Python en silencio

Objetivo: un compañero de código que devuelve código Python listo para pegar, con un mínimo de texto adicional. Ideal para flujos de trabajo en los que se quiere enviar la salida a un editor o a un script mediante una tubería.

Modelfile-coder-py
FROM qwen3-coder:30b

SYSTEM """
Tu es un assistant de code Python expert. Tu suis ces règles :

1. Réponds uniquement avec du code Python valide, dans un bloc fenced ```python.
2. Pas d'explication avant ou après le code, sauf si l'utilisateur demande explicitement une explication.
3. Le code doit être complet, exécutable, avec les imports nécessaires en haut.
4. Privilégie la stdlib quand c'est possible. Si une dépendance externe est nécessaire, mets un commentaire en tête : # pip install <package>.
5. Type hints quand c'est raisonnable (Python 3.10+).
6. Si la demande est ambiguë, choisis l'interprétation la plus probable et code-la, sans poser de questions.
"""

PARAMETER temperature 0.2
PARAMETER top_p 0.95
PARAMETER num_ctx 16384
PARAMETER stop "```\n\n"

Algunas decisiones técnicas destacadas:

FROM qwen3-coder:30b
Modelo especializado en código de 2026 (MoE 30B-A3B, solo 3B de parámetros activos, 256k de contexto, ~19 GB en Q4). En una tarjeta de 24 GB (RTX 4090) o en un Mac de 32 GB, funciona a 50-80 tokens/s gracias a sus 3B activos. Si solo tienes 16 GB de VRAM, sustitúyelo por gpt-oss:20b (14 GB) o devstral:24b.
temperature 0.2
Baja para el código. Con 0.7 (valor predeterminado), el modelo improvisa nombres de variables y a veces inventa API. Para el código, buscamos determinismo.
num_ctx 16384
Ventana ampliada para analizar archivos enteros. Cuidado: multiplica la VRAM consumida por el contexto.
stop
El modelo se detiene después del primer bloque de código. Esto evita las explicaciones posteriores al código que contaminan la salida.
Ejemplo de uso
ollama create coder-py -f ./Modelfile-coder-py
ollama run coder-py "Lire un CSV avec pandas et retourner la moyenne de la colonne 'prix'"
i
Ajustar según tus necesidades
Si quieres también pruebas pytest generadas sistemáticamente, añade una regla en el SYSTEM: "7. Produce también un bloque mínimo de pruebas pytest después del código principal." El modelo seguirá la instrucción siempre que sea clara y no contradictoria.

#5. Ejemplo: traductor estricto EN→FR

Objetivo: un traductor que devuelva ÚNICAMENTE la traducción, sin comillas, sin "Traducción:", sin variación estilística. Caso de uso típico: integración en un pipeline n8n o un script bash donde la salida se consuma directamente.

Modelfile-translator
FROM qwen3.5:9b

SYSTEM """
Tu es un traducteur professionnel anglais → français.

Règles ABSOLUES :
- Tu reçois un texte en anglais. Tu retournes UNIQUEMENT la traduction française.
- Pas de préfixe ("Traduction :", "Voici :"), pas de guillemets autour de ta réponse, pas de commentaire.
- Conserve la mise en forme exacte du texte source (sauts de ligne, listes, ponctuation).
- Conserve les noms propres, marques, URLs et identifiants techniques tels quels.
- Si le texte est déjà en français, renvoie-le inchangé.
- Si le texte est dans une autre langue que l'anglais, renvoie : ERREUR_LANGUE_NON_SUPPORTÉE
"""

PARAMETER temperature 0.3
PARAMETER num_ctx 4096
PARAMETER num_predict 2048

Añadir MESSAGE para fijar el formato mediante unos pocos ejemplos (few-shot) hace que el comportamiento sea aún más predecible:

Versión reforzada con few-shot
FROM qwen3.5:9b

SYSTEM """
Tu traduis de l'anglais vers le français. Tu renvoies UNIQUEMENT la traduction, sans préfixe ni guillemets.
"""

MESSAGE user "The meeting starts at 3 PM."
MESSAGE assistant "La réunion commence à 15 heures."

MESSAGE user "Please check the attached document."
MESSAGE assistant "Merci de consulter le document ci-joint."

PARAMETER temperature 0.3

Uso en pipeline:

Pipe shell
echo "The deployment is scheduled for tomorrow morning." | ollama run translator-en-fr
→
Llamada directa a través de la API
Para integrar en un script, la API HTTP es más práctica: curl http://localhost:11434/api/generate -d '{"model":"translator-en-fr","prompt":"Your text here","stream":false}'. La respuesta JSON contiene la traducción en el campo response.

#6. Gestionar tus modelos personalizados

Con el tiempo, irás acumulando varias variantes. Algunas órdenes útiles para mantener el control:

Inventario y limpieza
# Lister tous les modèles (originaux + variantes)
ollama list

# Voir le Modelfile d'une variante (utile pour récupérer un Modelfile perdu)
ollama show --modelfile assistant-fr

# Voir les paramètres effectifs
ollama show --parameters assistant-fr

# Voir le system prompt seul
ollama show --system assistant-fr

# Supprimer une variante (libère uniquement l'entrée, pas les poids du modèle de base)
ollama rm assistant-fr
i
Versionar tus Modelfiles en Git
Los Modelfiles son texto. Guárdalos en un repositorio Git aparte. Así conservas el historial de prompts que funcionan, y cualquier máquina con Ollama y el modelo base adecuado puede recrear todas tus variantes en unos segundos.

#7. ¿Qué modelo base elegir?

Todo Modelfile comienza con FROM: la elección del modelo base determina el 90 % del resultado final. Un prompt de sistema perfecto nunca compensará una base inadecuada para tu uso o demasiado grande para tu VRAM.

Asistente generalista
Un modelo reciente de 8 a 14B (familia Qwen o Gemma) en Q4: responde con rapidez, funciona bien en francés y deja margen para el contexto.
Código
Un modelo especializado en código — los modelos MoE tipo Qwen3-Coder 30B-A3B son muy rápidos a partir de 20 GB de memoria; por debajo, un modelo de código de 7 a 9B sigue siendo relevante.
Francés formal / redacción
Los modelos Mistral (Nemo, Magistral) mantienen la ventaja en el idioma francés a igual tamaño.
Configuración modesta (8 GB de VRAM)
Quédate con modelos de 4 a 9B en Q4: un modelo que no cabe en la VRAM y se carga parcialmente en la RAM arruina la capacidad de respuesta, independientemente del Modelfile.

Para comparar las bases por VRAM, licencia y uso, el catálogo QuelLLM filtra los modelos compatibles con tu máquina — cada ficha da la orden ollama run exacte para poner en tu FROM.

#Solución de problemas

El modelo ignora el prompt del sistema
Asegúrate de que estás ejecutando tu variante (ollama run mon-modele) y no el modelo base. Confírmalo con ollama show --system mon-modele.
Respuestas truncadas
Aumenta num_predict (predeterminado 128 en algunas configuraciones) hasta 2048 o más. O añade PARAMETER num_predict -1 para desactivar el límite.
El modelo no cumple una regla estricta
Reformula la regla en mayúsculas, añade "ABSOLUTAMENTE" o "NUNCA" y añade un ejemplo mediante MESSAGE. Los modelos pequeños (menos de ~10B) tienen dificultades con las negaciones aisladas.
Error "Error: invalid model reference"
El modelo FROM no está instalado localmente. Ejecuta ollama pull <modele> antes de ollama create.
VRAM saturada tras la creación
Un num_ctx elevado multiplica el consumo. Si pasas de 2048 a 16384, calcula entre 1 y 3 GB adicionales de VRAM según el tamaño del modelo. Vuelve a 8192 si queda poco margen.

#Para ir más allá

El Modelfile es la base para especializar Ollama sin tocar los pesos. Tres vías que puedes explorar a continuación:

Dominar los prompts de sistema con mayor profundidad
La guía sobre los prompts de sistema detalla cómo estructurar roles, restricciones y ejemplos para lograr comportamientos realmente fiables; resulta útil en cuanto superas las 5 líneas de SYSTEM.
Ajustar temperatura, top-p y top-k
Antes de tocar el modelo, saber con precisión qué cambia cada parámetro de muestreo evita muchas idas y venidas. La guía específica cubre todos los ajustes útiles.
Exponer tus variantes mediante Open WebUI
Una vez que hayas creado tus modelos personalizados, Open WebUI los lista automáticamente. Puedes cambiar entre assistant-fr, coder-py y translator-en-fr con un clic desde la interfaz.
Preguntas frecuentes sobre los modelos Ollama
¿Cómo listar los modelos Ollama instalados?+
ollama list affiche tous les modèles présents sur le disque (nom, tag, taille, date). ollama ps montre ceux actuellement chargés en mémoire, avec la répartition CPU/GPU — c'est le premier réflexe quand une réponse semble anormalement lente.
¿Dónde se almacenan los modelos de Ollama?+
En ~/.ollama/models en macOS y Linux, y en C:\Users\<vous>\.ollama\models en Windows. Para moverlos (por ejemplo, a otro disco), define la variable de entorno OLLAMA_MODELS antes de iniciar el daemon.
¿Cómo eliminar un modelo para liberar espacio?+
ollama rm nom:tag supprime la référence. Les poids eux-mêmes (blobs) ne sont réellement effacés que si aucun autre modèle ne les partage — supprimer un modèle personnalisé bâti sur une base conservée ne libère donc que quelques kilo-octets.
¿Un modelo personalizado ocupa el doble de espacio en disco?+
No. Ollama almacena los pesos en blobs identificados por su contenido: tu modelo personalizado hace referencia a los mismos blobs que su modelo base. Solo se añaden el Modelfile, el prompt de sistema y los parámetros. Crea tantas variantes como quieras: el espacio adicional en disco es insignificante.
¿Esta guía te ha ayudado?

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