~/tools / モデルのファイルとチャットテンプレート / Ollama Modelfile Generator
Ollama Modelfile Generator — Ollama の Modelfile を作る
フォームに入力して、Ollama の Modelfile を作ります。ベースモデル、システムメッセージ、temperature や num_ctx などのパラメータ、ストップシーケンス、例のメッセージ、テンプレート、必要な Ollama の最低バージョン、追加の機能(CAPABILITY)、ライセンスを指定できます。値は公式の Modelfile リファレンスに照らして確認し、Ollama がそのまま読み戻せるように引用符で囲みます。入力した内容はブラウザの外に出ません。
テンプレート、最低バージョン、機能、ライセンス
Modelfile
FROM llama3.2 PARAMETER num_ctx 4096 PARAMETER temperature 1 SYSTEM """Answer in one short sentence.""" MESSAGE user Is Toronto in Canada? MESSAGE assistant yes
コマンド
上のテキストを、カレントディレクトリに Modelfile という名前のファイルとして保存し、次を実行します。
ollama create short-answers -f ./Modelfile ollama run short-answers
命令、パラメータ、既定値は、2026-11-09 時点の Modelfile リファレンスに記載されているとおりです。 Ollama の Modelfile リファレンス
すべてブラウザの中で処理します。入力した内容はどこにも送信されません。
Modelfile は、Ollama が ollama create でモデルを作るときに使う設計図です。FROM でベースモデルを指定し、システムメッセージ、パラメータ、会話の例、プロンプトテンプレート、必要な Ollama の最低バージョン、追加の機能、ライセンスを加えられます。形式はシンプルですが、エラーになりやすい点がいくつかあります。PARAMETER で使えるのはリファレンスにある名前だけで、それぞれ整数か小数を受け付けます。ストップシーケンスは1行に1つずつ指定します。複数行にわたるテキストは、「"""」で囲む必要があります。このツールは、そのファイルを代わりに書きます。公式の Modelfile リファレンスにある命令とパラメータだけを選べるようにし、各パラメータの既定値を名前の横に示し、拒否される値があればそれを知らせ、Ollama 自身のパーサーが読むのと同じ形で各値を引用符で囲みます。出力は Ollama 0.40.11 で確認しました。生成したファイルからモデルを作り、ollama show --modelfile で読み戻しています。REQUIRES と CAPABILITY も同じように確かめました。あわせて、決めたモデル名に合わせた ollama create と ollama run のコマンドも表示します。
このツールの計算部分は、オープンソース(MIT ライセンス)で公開しています。 github.com/seigo5555/toolkitbox-lib/src/modelfile.ts
こんな時に使う
- ライブラリのモデルをコピーして、自分のシステムメッセージと temperature を設定し、別の名前で動かす
- VPS で動かすモデルに、大きめのコンテキストウィンドウ(num_ctx)や固定のシードを設定する
- モデルに答え方を示す、短い会話の例を加える
使い方
- FROM にベースモデルを入力します。Ollama ライブラリのモデル(例: llama3.2)、GGUF ファイルのパス、Safetensors の重みが入ったディレクトリのいずれかです。新しいモデルにつけたい名前も入力します。
- システムメッセージを書き、変えたいパラメータだけを入力します。空の欄は出力されないため、ベースモデルの値がそのまま使われます。必要なら、ストップシーケンスを1行に1つずつ、例のメッセージとあわせて追加します。
- 出力された Modelfile を、Modelfile という名前のファイルに保存します。続けて、その下に表示される2つのコマンドを実行します。ollama create でモデルを作り、ollama run で起動します。
Modelfile の書式
Modelfile は、1行に1つの命令と、その引数を書くテキストファイルです。# で始まる行はコメントになります。公式のリファレンスによると、命令の大文字・小文字は区別されず、順番も自由です。必須なのは FROM だけです。
値は、ふつうは行の終わりまでです。複数行にわたる値は、二重引用符3つ(""")で囲みます。Ollama のパーサー(parser/parser.go)には引用符を打ち消すエスケープの仕組みがないため、文の中の """ が行の終わりに来ると、値はそこで終わってしまいます。このツールは、その場合にエラーを表示します。
命令の一覧
| 命令 | 役割 | このツール |
|---|---|---|
| FROM | 元にするモデル。ライブラリのモデル名、GGUF ファイル、Safetensors の重みがあるディレクトリのどれか | 対応 |
| PARAMETER | モデルを動かすときのパラメーター | 対応(リファレンスの表にある11個) |
| TEMPLATE | モデルに渡すプロンプトのテンプレート。Go のテンプレート構文で書く | 対応 |
| SYSTEM | テンプレートに入るシステムメッセージ | 対応 |
| LICENSE | モデルのライセンス | 対応 |
| MESSAGE | 会話の例。役割は system・user・assistant | 対応 |
| REQUIRES | 必要な Ollama の最低バージョン | 対応 |
| CAPABILITY | GGUF・MLX のモデルに機能を足す | 対応 |
CAPABILITY について、リファレンスは decision を宣言するのはそのためのプロンプトで学習した重みに限るとしています。Ollama 0.40.11 で試したところ、ほかの値はモデルの元の機能に足されましたが、decision を書くと宣言した値だけになりました。
num_ctx の既定値は、公式ドキュメントの中で食い違っています
このツールの欄に薄く出している既定値は、Modelfile リファレンスの表から取っています。num_ctx(コンテキスト長)はそこでは 2048 ですが、同じ公式ドキュメントのほかのページには別の値が書かれています。
| ページ | 既定のコンテキスト長 |
|---|---|
| Modelfile リファレンス | 2048 |
| FAQ | 4096 トークン |
| Context length | VRAM に応じて決まる。24 GiB 未満は 4k、24〜48 GiB は 32k、48 GiB 以上は 256k |
実際に使われている値は、モデルを動かしている間に ollama ps を実行すると、CONTEXT の列で確かめられます。値をはっきり決めたいときは、PARAMETER num_ctx を書いてください。
Ollama 0.40.11 で確かめたこと
2026年10月30日に、このツールが出力したファイルで ollama create を実行し、ollama show --modelfile で読み戻して確かめました。
- 整数のパラメーター(num_ctx など)に 1.5 を書くと、ollama create は invalid int value で失敗します。
- 小数のパラメーター(temperature など)に文字を書くと、invalid float value で失敗します。
- top_p 1e-1、top_p .5 のような書き方と、seed -1 は通ります。
- """ で囲んだ SYSTEM は、中の二重引用符、行末の二重引用符、字下げがそのまま残ります。
- stop を二重引用符で囲むと、前後の空白も残ります。
- SYSTEM を書かないと、元のモデルのシステムメッセージが引き継がれます。
作ったモデルの確かめ方
- ollama create <名前> -f ./Modelfile でモデルを作ります。
- ollama show --modelfile <名前> で、Ollama が読み取った Modelfile を表示できます。書かなかった項目に、元のモデルから引き継いだ値が入っているかもここで分かります。
- ollama run <名前> で動かします。
出典(2026-11-09に確認): Ollama: Modelfile Reference / Ollama: FAQ / Ollama: Context length / ollama/ollama: parser/parser.go
FAQ
どのパラメータを設定できますか?
公式の Modelfile リファレンスに載っているものです。num_ctx、repeat_last_n、repeat_penalty、temperature、seed、stop、num_predict、draft_num_predict、top_k、top_p、min_p があります。リファレンスでは、それぞれ整数、小数、文字列のいずれかとされています。Ollama 0.40.11 で試したところ、整数のパラメータに小数を入れると invalid int value で失敗し、小数のパラメータに文字を入れると invalid float value で失敗しました。このツールは、ollama create を実行する前に同じ問題を知らせます。
なぜ値を「"""」で囲むことがあるのですか?
Modelfile では、引用符で囲まない値はその行の終わりで終わります。Ollama のパーサーは、「"""」で始まる値を、行末の「"""」に達するまで読みます。そのため、複数行のテキストはこの形で囲む必要があります。このツールは、システムメッセージ、テンプレート、ライセンスを必ず囲みます。例のメッセージは、複数行のとき、二重引用符で始まるとき、先頭か末尾に空白があるときに囲みます。ストップシーケンスは二重引用符で囲むため、先頭や末尾の空白も保たれます。
テキストに二重引用符を3つ続けて入れられますか?
入れられません。この形式にはエスケープ文字がないため、行末に「"""」があると値がそこで終わってしまいます。次の行は命令として読まれ、ollama create が失敗します。ツールはこれをエラーとして知らせます。その部分を書き直してください。
空のままにした設定はどうなりますか?
出力されません。新しいモデルは、ベースモデルから引き継いだ値をそのまま持ちます。たとえば、qwen2.5:7b から SYSTEM なしで作ったモデルは、qwen2.5:7b のシステムメッセージを持ち続けます。ベースモデルがすでに何を設定しているかは、そのモデル名を付けて ollama show --modelfile を実行すると分かります。
ベースモデルが存在するかどうかも確認しますか?
いいえ。Ollama やライブラリには接続しません。FROM の名前やパスが間違っていれば、ollama create がそれを知らせます。GGUF のパスは、絶対パスで指定しない限り、Modelfile の場所からの相対パスとして読まれます。
サーバーに何か送信されますか?
いいえ。Modelfile はブラウザの中で組み立てています。