ollama run qwen3.5:9b と入力すると、汎用モデルが起動します。フランス語の質問に英語で答えることがあり、コードを含む回答には延々と続く前置きを付け、逐語訳を求めても注文どおりには応じようとしません。セッションごとに同じシステムプロンプトを繰り返す代わりに、一度Modelfileに設定しておけば、再利用できる派生モデルが得られます。
具体的に、Modelfileでできることは3つあります。(1) モデルに永続的なシステムプロンプトを設定する、(2) 生成パラメータ(温度、コンテキスト、ストップトークン)を調整する、(3) 必要に応じてチャットテンプレートを置き換えることです。作成した派生モデルは、他のOllamaモデルと同じように、ollama run mon-assistantで使用できます。
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.
04
テストする
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.
一連の操作
# Dans le dossier qui contient le Modelfile
ollama create assistant-fr -f ./Modelfile
ollama list
ollama run 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
作成およびテスト:
ターミナル
ollama create assistant-fr -f ./Modelfile-assistant-fr
ollama run assistant-fr "Quels sont les avantages d'un LLM local ?"
同じ質問に対するollama run qwen3.5:9bとollama run assistant-frの回答を、並べて比較してください。Modelfileがない場合、Qwen 3.5は「Bien sûr,」で回答を始めることがよくあります。作成したバリエーションでは、前置きなしで直接回答に入ります。これが具体的な違いです。
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"
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
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
パイプラインでの使用:
シェルのパイプ
echo "The deployment is scheduled for tomorrow morning." | ollama run translator-en-fr
→
API経由の直接呼び出し
スクリプトに統合する場合、HTTP APIがより便利です:curl http://localhost:11434/api/generate -d '{"model":"translator-en-fr","prompt":"Your text here","stream":false}'. レスポンスJSONには、responseというフィールドに翻訳結果が含まれます。
# 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
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.
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.