中級 12 分Ollama

Ollama Modelfile:作成およびカスタマイズを行う モデル

Ollama は既存モデルのダウンロードにとどまりません。数行のテキストファイルで、独自のバリアントを作成できます。Modelfile は LLM における Dockerfile に相当し、システムプロンプト、サンプリングパラメータ、会話テンプレートを固定します。このガイドでは、必ずフランス語で回答するアシスタント、Python コーダー、余計な説明を加えない翻訳者という 3 つの具体例を通じて、Modelfile による Ollama のカスタマイズ方法を紹介します。

著者 Mohamed Meguedmi·更新 2026-08-31·Windows・macOS・Linuxでテスト済み
i
要約
OllamaのModelfileは、LLMにおけるDockerfileに相当します。既存モデルの重みを変更せず、そのモデルの振る舞いを固定するテキストファイルです。· 基本的な設定には、FROM(ベースモデル)、SYSTEM(永続的なシステムプロンプト)、PARAMETER(温度、コンテキストなど)の3つのディレクティブで十分です。· ファイルを作成したら、ollama create mon-modele -f ./Modelfile で派生モデルを作成し、その後は ollama run mon-modele で使用できます。· フランス語のみで応答するアシスタント、余計な説明をしないPythonコーディングアシスタント、余計なおしゃべりをしない翻訳者などに便利です。

#なぜModelfileが必要なのですか?

ollama run qwen3.5:9b と入力すると、汎用モデルが起動します。フランス語の質問に英語で答えることがあり、コードを含む回答には延々と続く前置きを付け、逐語訳を求めても注文どおりには応じようとしません。セッションごとに同じシステムプロンプトを繰り返す代わりに、一度Modelfileに設定しておけば、再利用できる派生モデルが得られます。

具体的に、Modelfileでできることは3つあります。(1) モデルに永続的なシステムプロンプトを設定する、(2) 生成パラメータ(温度、コンテキスト、ストップトークン)を調整する、(3) 必要に応じてチャットテンプレートを置き換えることです。作成した派生モデルは、他のOllamaモデルと同じように、ollama run mon-assistantで使用できます。

i
これはファインチューニングではありません
Modelfileはモデルの重みを変更しません。既存のモデルに設定を加えて、その振る舞いを調整します。モデルに特定の文体や専門分野を実際に学習させるには、ファインチューニング(LoRA、QLoRA)が必要です。これはOllama単体でできる範囲を超えます。

#前提条件

ローカルAIキット

Modelfile を使ったモデルのカスタマイズ方法は、もうご存じですね。ローカルAIキットでは、そのモデルを Ollama と Open WebUI を使った、家族全員で利用できる本格的なプライベート ChatGPT に組み込みます(第6章)。また、お使いのマシンに適したベースモデル選びもサポートします(第3章)。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 30日間返金対応
Ollama インストール済み
バージョン0.3以降を推奨します。ollama --versionで確認してください。デーモンがhttp://localhost:11434で動作している必要があります。
ダウンロード済みのベースモデル
たとえば、ollama pull qwen3.5:9b または ollama pull qwen3-coder:30b です。Modelfileはこのモデルを継承します。
テキストエディタ
VSCode、Notepad++、vimなど、どれでも構いません。このファイルに必須の拡張子はなく、慣例として通常はModelfileという名前を付けます。
約5分
モデルファイルの作成およびollama createの実行にかかる時間。追加のダウンロードは不要で、既に存在するモデルを再利用します。

#1. Modelfileの構文

Modelfileは、大文字の命令を1ブロックにつき1つ記述するテキストファイルです。順序は重要ではありませんが、慣例ではFROMを最初に置きます。

最小限のひな形
FROM qwen3.5:9b

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

PARAMETER temperature 0.7
PARAMETER num_ctx 4096

主な指示:

FROM
ベースモデル。必須。Ollamaのモデル名(qwen3.5:9b、qwen3.8:27b)またはローカルのGGUFファイルへのパスを指定できます。
SYSTEM
各会話に注入されるシステムプロンプトです。マルチラインテキストの場合は三重引用符を使用してください。
PARAMETER
サンプリングとコンテキストの設定。パラメータごとに1つの指示。最も有用なもの:temperature、top_p、top_k、num_ctx、repeat_penalty、num_predict、stop。
TEMPLATE
完全なプロンプトフォーマット(稀)。専門知識を持つ場合にのみ編集してください——各モデルファミリーには独自のテンプレートがあります。
MESSAGE
few-shot の例。先頭に MESSAGE user または MESSAGE assistant を付けます。文体を定着させるのに役立ちます。
ADAPTER
FROM で指定したモデルに適用する LoRA GGUF のパス。上級者向けです。
LICENSE
トレーサビリティのための自由記述テキストです。実行には影響しません。
→
実際に重要なパラメータ
90%のケースでは、SYSTEM + temperature + num_ctx だけが必要です。すべての設定を構成する必要はありません:Ollamaは適切なデフォルト値(temperature 0.8、num_ctx 2048、repeat_penalty 1.1)を適用しています。

#2. 最初のモデルを作成する

ワークフローはいつも同じです。Modelfileを記述し、ollama createを実行して、ollama runでテストします。

  1. 01
    ファイルを作成する
    作業用フォルダーにModelfile(拡張子なし)という名前のファイルを作成してください。その中に、カスタマイズしたモデルの定義を記述してください。
  2. 02
    作成を開始する
    同じディレクトリから:ollama create mon-modele -f ./Modelfile。Ollama は構文を検証し、FROM で指定されたモデルの重みを継承して、新しいエントリを登録します。これは即時処理であり、再ダウンロードは行われません。
  3. 03
    確認する
    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
    テストする
    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
!
モデル名は固定です
Modelfileを変更するには、ファイルを編集してから、必ず同じ名前でollama createを再実行してください。そのバリエーションが置き換えられます。名前を変更すると、参照が増えていきます。ollama rm <nom>で不要になったバリエーションを削除できます。

#3. 例:簡潔なフランス語アシスタント

目標:常にフランス語で回答し、「もちろん、こちらです…」のような前置きや謝罪の決まり文句を使わず、回答の長さを調整したアシスタント。

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

作成およびテスト:

ターミナル
ollama create assistant-fr -f ./Modelfile-assistant-fr
ollama run assistant-fr "Quels sont les avantages d'un LLM local ?"

repeat_penaltyをデフォルトの1.1ではなく1.15にすると、モデルが同じことを繰り返すのを抑えられます。num_ctxを8192にすると、デフォルトの2048のコンテキスト枠を超えてしまうような、やや長い文書も貼り付けられます。

→
system promptの効果をテストする
同じ質問に対するollama run qwen3.5:9bとollama run assistant-frの回答を、並べて比較してください。Modelfileがない場合、Qwen 3.5は「Bien sûr,」で回答を始めることがよくあります。作成したバリエーションでは、前置きなしで直接回答に入ります。これが具体的な違いです。

#4. 例:静かにPythonを書く

目的は、説明文を最小限に抑え、そのまま貼り付けられる Python コードを返すコーディングアシスタントです。出力をエディタやスクリプトにパイプで渡したいワークフローに最適です。

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"

注目すべき技術上の選択をいくつか挙げます。

FROM qwen3-coder:30b
2026年のコード特化モデル(MoE 30B-A3B、アクティブなパラメータはわずか3B、コンテキスト長256k、Q4で約19GB)。VRAM 24GBのGPU(RTX 4090)またはメモリ32GBのMacでは、アクティブなパラメータが3Bであるため、50〜80トークン/秒で動作します。VRAMが16GBしかない場合は、gpt-oss:20b(14GB)またはdevstral:24bに置き換えてください。
temperature 0.2
コード用には低い値に設定します。0.7(デフォルト)では、モデルが変数名をその場で考え、存在しないAPIを作り出すこともあります。コード生成では、決定性が求められます。
num_ctx 16384
ファイル全体を分析するための拡張コンテキストウィンドウ。注意:コンテキストが消費する VRAM の量が何倍にも増えます。
stop
モデルは最初のコードブロックの後で停止します。これにより、出力に余計な内容を混ぜるコード後の説明を防げます。
使用例
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
ニーズに合わせて調整する
pytestのテストも毎回生成させたい場合は、SYSTEMに次のルールを追加してください:「7. メインのコードの後に、最小限のpytestテストブロックも生成してください。」指示が明確で矛盾していなければ、モデルはそれに従います。

#5. 例:厳密なEN→FR翻訳モデル

目的:翻訳だけを返し、引用符も「翻訳:」も付けず、文体も変えない翻訳モデル。典型的な用途は、出力をそのまま処理するn8nのパイプラインやbashスクリプトへの組み込みです。

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

MESSAGEを追加し、few-shotの例で形式を定着させると、動作がさらに予測しやすくなります:

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

パイプラインでの使用:

シェルのパイプ
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というフィールドに翻訳結果が含まれます。

#6. カスタムモデルの管理

使い続けるうちに、モデルのバリエーションがいくつも増えていきます。管理に役立つコマンドをいくつか紹介します。

モデルの一覧確認と整理
# 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
ModelfileをGitでバージョン管理する
Modelfile はテキストファイルです。専用の Git リポジトリに保存してください。うまく機能するプロンプトの履歴を残せるうえ、Ollama と適切なベースモデルがあるマシンなら、どのマシンでも数秒ですべてのバリエーションを再作成できます。

#7. ベースモデルはどれを選ぶべきですか?

すべての Modelfile は FROM で始まります。最終結果の 90%を決めるのは、ベースモデルの選択です。どれほど完璧なシステムプロンプトでも、用途に合わないベースモデルや、VRAM に収まりきらないほど大きなベースモデルを補うことはできません。

汎用アシスタント
Q4で量子化した、80億〜140億パラメータの比較的新しいモデル(QwenまたはGemma系):応答が速く、フランス語が得意で、コンテキスト用の余裕も残せます。
コード
コード特化モデル — Qwen3-Coder 30B-A3B 型の MoE は 20 GB のメモリから非常に高速です。それ未満の場合、7-9B のコードモデルが依然として有効です。
格調高いフランス語/文章作成
サイズが同じ場合、Mistral(Nemo、Magistral)はフランス語対応において優位性を保ちます。
控えめなスペックの構成(VRAM 8GB)
Q4量子化の4B〜9Bモデルにとどめてください。モデルがVRAMに収まらずRAMにはみ出すと、Modelfileの内容にかかわらず応答性が大幅に落ちます。

VRAM、ライセンス、使用方法に基づいてモデルを比較するため、QuelLLM カテゴリは、あなたのマシンに適合するモデルをフィルタリングします。各モデルのページには、FROM に使用する ollama run exacte のコマンドが記載されています。

#トラブルシューティング

モデルはシステムプロンプトを無視します
ベースモデルではなく、ご自身の派生モデル(ollama run mon-modele)を起動していることを確認してください。ollama show --system mon-modele で確認できます。
切り詰められた応答
num_predict(一部の設定ではデフォルトで128)を2048以上に増加させます。または、PARAMETER num_predict -1 を追加して制限を無効にします。
モデルは厳密なルールを遵守していません
ルールを大文字で書き直し、「ABSOLUMENT」または「JAMAIS」を加え、MESSAGEで例を追加してください。小型モデル(約10B未満)は、否定表現だけを示されると、その指示をうまく扱えません。
エラー "Error: invalid model reference"
FROM モデルはローカルにインストールされていません。ollama pull <modele> を実行した後、ollama create を実行してください。
モデル作成後にVRAMの空き容量がなくなる
num_ctxが高くなると消費量が増大します。モデルのサイズに応じて、2048から16384に変更すると、VRAMの消費量は1GBから3GB程度増加します。メモリが不足する場合は8192に戻してください。

#さらに詳しく

Modelfileは、モデルの重みを変更せずにOllamaを特化させるための基盤です。次に掘り下げるとよい方向性は、次の3つです。

システムプロンプトをより深く使いこなす
システムプロンプトのガイドでは、本当に信頼できる振る舞いを実現するために、役割、制約、例をどう構成するかを詳しく説明しています。SYSTEMの内容が5行を超えるようになると役立ちます。
温度、top-p、top-kの設定
モデルに手を加える前に、各サンプリングパラメータが何を変えるのかを正確に理解しておくと、試行錯誤を大幅に減らせます。専用のガイドでは、役立つ設定をすべて解説しています。
Open WebUIでカスタマイズしたモデルを利用できるようにする
カスタムモデルを作成すると、Open WebUIがそれらを自動的に一覧表示します。インターフェースからワンクリックでassistant-fr、coder-py、translator-en-frを切り替えられます。
Ollama モデルに関するよくある質問
インストールされた Ollama モデルをリストアップする方法は?+
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のモデルはどこに保存されていますか?+
macOSとLinuxでは~/.ollama/models、WindowsではC:\Users\<vous>\.ollama\modelsに保存されます。保存場所を移動する場合(たとえば別のディスクへ)は、デーモンを起動する前に環境変数OLLAMA_MODELSを設定してください。
モデルを削除してスペースを解放する方法は?+
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.
カスタマイズされたモデルはディスク上で2倍の容量を占めるのですか?+
いいえ。Ollamaは、内容に基づいて識別されるblobとして重みを保存します。カスタムモデルは、ベースモデルと同じblobを参照します。追加されるのはModelfile、システムプロンプト、パラメータだけです。バリエーションはいくつでも作成できます。追加で必要なディスク容量はごくわずかです。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。