3行でいうと
- Modelfileは、基にするモデル(FROM)と、指示(SYSTEM)、設定(PARAMETER)を書く設計書です。
- ollama create 名前 -f Modelfile で保存し、ollama run 名前 で使えます。
- 公式の表では、temperature は既定0.8、num_ctx は既定2048と書かれています。
- 同じ公式資料でも、コンテキスト長の既定値の書き方が3か所でそろっていません。
この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書や論文を読んでまとめたものです。
先に結論
Modelfileは、短いテキストファイルです。「どのモデルを土台にするか」「最初にどんな役を与えるか」「どんな設定で動かすか」を書きます。そのファイルを ollama create に渡すと、土台のモデルをそのまま使いながら、設定だけが違う「自分用の名前」のモデルができます。
最初に覚えるのは、3つで足ります。
FROM:土台にするモデル(必須)SYSTEM:モデルに最初に与える役割や口調の指示PARAMETER:温度や会話の長さなどの設定
TEMPLATE(プロンプトの書式)は、最初は触らなくてよいと見ています。理由は後の節に書きます。これは見立てです。
前提:言葉の整理
- Ollama:モデルを手元で動かし、命令やAPI(ほかのソフトからAIを呼ぶ窓口)で使えるようにする道具です。
- Modelfile:公式の説明では「カスタマイズしたモデルを作って共有するための設計図」です。命令の大文字小文字は区別されず、順番も自由です(ただし公式の例はFROMを先頭に置いています)。
- システムプロンプト:会話の前に、AIへ渡しておく指示です。「あなたは校正係です」のような役割を書きます。Modelfileでは
SYSTEMで書きます。 - パラメータ:生成のしかたを決める設定値です。
- コンテキスト長:AIが一度に覚えておける会話の長さです。トークン(文字の断片)の数で数えます。
いちばん小さい例
公式のCLIの説明にある、最小の例です。
FROM gemma4
SYSTEM """You are a happy cat."""
作るときは、公式のModelfileの説明にあるとおり、次の順に進みます。
- 上のような内容を
Modelfileという名前で保存します。 ollama create 好きな名前 -f ./Modelfileを実行します。ollama run 好きな名前で使います。
公式文書の例です。この記事では、実行していません。モデル名のgemma4は、公式の例に出てくる名前です。お手元で使っているモデル名に置き換えてください。
なお、CLIの説明のページでは ollama create -f Modelfile と、名前を書かない形で載っています。Modelfileの説明のページは choose-a-model-name(好きな名前)を入れた形です。名前を入れる形のほうが、意味がはっきりしています。
書ける命令の一覧
公式のリファレンスに載っている命令は、次の8つです。
| 命令 | 公式の説明の要約 |
|---|---|
| FROM(必須) | 土台にするモデルを決める |
| PARAMETER | モデルを動かすときの設定を決める |
| TEMPLATE | モデルに送る、プロンプト全体の書式 |
| SYSTEM | 書式に差し込まれるシステムメッセージ |
| LICENSE | 配布時の法的なライセンスを書く |
| MESSAGE | 会話の履歴の例を書く |
| REQUIRES | 必要なOllamaの最低バージョン(例:0.14.0) |
| CAPABILITY | GGUF/MLXのモデルに能力を足す |
FROMには、既存のモデル名、Safetensorsのモデルの入ったフォルダ、GGUFファイルを書けます。GGUFは、手元で動かすモデルでよく使われるファイル形式です。GGUFのパスは、絶対パスか、Modelfileから見た相対パスです。
MESSAGE は、「こう聞かれたら、こう答える」という例を並べる命令です。公式の例では、トロントはカナダかと聞かれて「yes」と返す問答を並べています。答え方の型を教えたいときに使えます。
実際に使う設定値
PARAMETERで使える設定のうち、よく話題になるものを、公式の表から抜き出します。
PARAMETERの主な値(公式の表)
| 名前 | 意味(公式の説明の要約) | 既定値 |
|---|---|---|
| num_ctx | 次の語を作るときに使うコンテキストの大きさ | 2048 |
| temperature | 上げると答えが創造的になる | 0.8 |
| top_k | 小さいと保守的、大きいと多様な答えになる | 40 |
| top_p | top_kと組み、小さいと焦点が絞られる | 0.9 |
| min_p | 最も確からしい語に対する、最低限の確率の割合 | 0.0 |
| repeat_penalty | 繰り返しをどれだけ強く避けるか | 1.0(無効) |
| repeat_last_n | 繰り返しを防ぐため、どこまで遡るか | 64 |
| seed | 固定すると同じ入力で同じ文章になる | 0 |
| num_predict | 生成するトークンの最大数 | -1(無制限) |
| stop | この文字列が出たら生成をやめる | なし |
stopは、複数行書けば複数の停止文字列を指定できます。ほかに、draft_num_predict(下書きモデルを使う推測生成の設定)もありますが、ここでは扱いません。
名前をつけて保存して、管理する
保存と管理に使う命令は、公式のCLIの説明にそろっています。
- 作る:
ollama create 名前 -f Modelfile - 一覧:
ollama ls - 動かす:
ollama run 名前 - 消す:
ollama rm 名前 - 今メモリにあるもの:
ollama ps - 止める:
ollama stop 名前
既存のモデルのModelfileを見たいときは、公式のとおり ollama show --modelfile モデル名 を使います。出力の先頭に、「新しいModelfileを作るには、FROM行をこう置き換える」という案内が出る例が載っています。他人のモデルの設定を読んで、自分用に書き写す、という使い方ができます。
APIから作ることもできます。公式のAPIの説明には、from(土台)、model(新しい名前)、system(システムメッセージ)を渡す例があります。Modelfileのファイルを作らずに済みます。
試してから固める
いきなりModelfileに書く前に、対話の中で値を試す方法が、公式のFAQにあります。ollama run の中で /set parameter num_ctx 4096 のように打つと、その会話だけ値を変えられます。気に入った値が見つかってから、Modelfileに書く、という順番が楽だと思います。これは見立てです。
数字の注意:コンテキスト長の既定値が、そろっていません
今回読んだ公式資料で、コンテキスト長の既定値は、次のように書かれていました。
- Modelfileのリファレンスの表:num_ctx は 2048
- FAQ:既定は4096トークン。環境変数
OLLAMA_CONTEXT_LENGTHで変更できる - Context lengthのページ:VRAM(グラフィックス用のメモリ)が24GiB未満なら4k、24〜48GiBなら32k、48GiB以上なら256k
どれが今のバージョンの動きかは、この記事では確認していません。見立てです。Modelfileの PARAMETER num_ctx で値を書いておけば、既定値の違いに左右されません。大きくすると、その分メモリを使います。公式のページも、大きな値にするとメモリが増える、と注意しています。
また、ollama ps の表示には、公式のContext lengthのページの例で CONTEXT の列があります。実際に割り当てられた値は、そこで見られます。
Modelfileに書けないもの
- keep_alive(モデルをメモリに置く時間):PARAMETERの公式の表には、ありません。FAQでは、APIのパラメータか、環境変数
OLLAMA_KEEP_ALIVEで指定すると説明されています。この話は、常駐の記事に続けます。 - TEMPLATE:モデルごとに書式が違います。公式も「構文はモデルによって違うことがある」と注意しています。
ollama show --modelfileで出た元のTEMPLATEを、そのまま残すほうが安全だと見ています。これは見立てです。
よくある失敗
- FROMに、手元にないモデル名を書く:先に
ollama pullで入れてください。公式のCLIの説明に、ollama pull gemma4があります。 - SYSTEMが複数行なのに、三重引用符を付けない:公式の例は
"""で囲んでいます。 - Modelfileを書き換えただけで反映されたと思う:新しい設定を使うには、
ollama createをやり直す必要があると考えるのが自然です。これは見立てです。公式の資料に、上書きの動きを説明する文章は見つけられませんでした。 - 名前をつけ忘れる:CLIの説明の形に引きずられて、名前なしで書かないように気をつけてください。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。文書の内容と例を、整理し直したものです。
- コンテキスト長の既定値は、公式資料の中でも書き方がそろっていません。上に書いたとおりです。
- Ollamaは更新が早く、命令や既定値、対応モデルが変わることがあります。この記事は2026年10月8日に読んだ文書にもとづきます。
- モデル名(gemma4など)は、公式の例に出ていたものです。お手元で使えるかは、
ollama lsや公式のモデル一覧で確認してください。 - Modelfileを再作成したときに、元の名前のモデルがどう置き換わるかは、確認できていません。
- 人に配るときは、LICENSE命令のとおり、土台にしたモデルのライセンスにも従う必要があります。個別の判断は、元のライセンス文を読むか、専門家に相談してください。
出典
- Modelfile Reference(Ollama Docs、Ollama、2026年10月8日確認)
- CLI Reference(Ollama Docs、Ollama、2026年10月8日確認)
- FAQ(Ollama Docs、Ollama、2026年10月8日確認)
- Context length(Ollama Docs、Ollama、2026年10月8日確認)
- Create a model(Ollama API、Ollama、2026年10月8日確認)
- OpenAI compatibility(Ollama API、Ollama、2026年10月8日確認)
更新履歴
- 2026年10月25日 書き方を直しました。
- 前:運営者が使っていないと読める書き方 → いま:「この記事は、実際に使って確かめた記録ではありません」。公式の資料を読んでまとめた記事で、使い心地は書いていない、という意味に直した
