OllamaのModelfileをWindowsで使う方法|ollama create・SYSTEM・PARAMETER
- 公開日
- 2026-08-09
- 更新日
- 2026-08-09
- 情報確認日
- 2026-08-09
- 編集・運営
- Local AI Compass
Ollamaの回答方針、context、temperature、モデル名を毎回手入力で再現したいなら、Modelfileへ設定をまとめてollama createで名前付きのcustom modelを作ります。Windowsではまず既存モデルや確認済みGGUFをFROMへ指定し、SYSTEM・PARAMETERを最小限に加え、ollama show・/api/show・短い実行で結果を検証します。
導入前に確認すること
- Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
- 最初は軽量モデル、短い質問、少ない同時作業から始める
- 公式サイトの対応OS、利用規約、モデルのライセンスを確認する
先に結論:Modelfileは設定を再現するcustom modelの設計図
Ollama公式docsでは、Modelfileはcustomized modelを作成・共有するためのblueprintと説明されています。モデル本体やGGUFを直接編集するファイルではなく、FROMで基礎モデルを指定し、SYSTEMやPARAMETERなどの設定を名前付きモデルへまとめる入口です。
| やりたいこと | 中心になる記述・コマンド | 最初に確認すること |
|---|---|---|
| 既存モデルへ固定の指示を加える | FROM、SYSTEM | base modelのtag、指示の範囲、license |
| contextや生成条件を固定する | PARAMETER num_ctx / temperatureなど | RAM/VRAM、入力長、再現条件 |
| GGUFやadapterを取り込む | FROM path、ADAPTER path | 配布元、SHA256、adapterとbaseの一致 |
| 名前付きモデルを作る | ollama create NAME -f .\Modelfile | createのstatus、ollama ls、ollama run |
| API・アプリから呼ぶ | 作成したNAMEをmodelへ指定 | /v1/models、/api/show、digest、endpoint |
最初からTEMPLATEやadapterを自作せず、まず既存モデルをFROMにしてSYSTEMと1〜2個のPARAMETERだけを加えます。設定を足しても、モデルの知識、能力、品質、ライセンス、外部送信の範囲が自動で変わるわけではありません。
- Ollamaモデル管理 - 保存・一覧・停止・削除の基礎へ進む
- Ollamaモデルidentity診断 - 作成後のID・digest・capabilitiesを照合する
- Ollama OpenAI互換API - custom modelをAPIへつなぐ前提を見る
WindowsでModelfileとFROMを用意する
FROMは必須のinstructionで、既存のOllama model:tag、Safetensorsのdirectory、またはModelfileから見た相対パス・絶対パスのGGUFを指定できます。Windowsでは、まず既存モデルをollama pullとollama lsで確認し、手元ファイルを使う場合は配布元とモデル形式を確認してから作業用ディレクトリへ置きます。
New-Item -ItemType Directory -Force .\ollama-custom | Out-Null
Set-Location .\ollama-custom
# 既存のOllamaモデルをFROMにする例
ollama pull BASE_MODEL
ollama ls
# Modelfile
@"
FROM BASE_MODEL
SYSTEM """短い回答を基本にし、分からない点は分からないと答えてください。"""
PARAMETER temperature 0.2
PARAMETER num_ctx 4096
"@ | Set-Content -Encoding utf8 .\Modelfile
ollama create lac-assistant -f .\Modelfile
ollama run lac-assistant- PowerShellで作業用フォルダを作り、Modelfileとモデルファイルを混在させない。
- FROMへ指定する既存model:tagまたはGGUF pathを記録する。
- Modelfileの文字コード、相対パス、引用符、instruction名を確認する。
- ollama create NAME -f .\Modelfileのstatusが完了するまで待つ。
- ollama ls、ollama show NAME、ollama run NAMEで作成結果を確認する。
上のBASE_MODELとlac-assistantは説明用のplaceholderです。存在や性能を確認していない特定モデルの成功例として扱わず、利用時点のOllama model library、モデルカード、license、容量を優先してください。
- Ollama Modelfile公式Reference - FROMのmodel・GGUF pathと基本例を見る
- Ollama CLI Reference - Windowsでcreate・run・ls・psを確認する
- Windows版Ollamaの導入 - server、CLI、初回モデルの前提へ戻る
SYSTEMとPARAMETERで最小限の振る舞いを固定する
SYSTEMはtemplateへ設定するsystem message、PARAMETERは実行時の生成条件を指定します。公式Referenceにはnum_ctx、temperature、seed、stop、num_predict、top_k、top_p、min_pなどが掲載されていますが、数値を入れれば品質が上がるという保証ではありません。まず設定を少なくし、同じ短いpromptで変更前後を比較します。
FROM BASE_MODEL
SYSTEM """
日本語で回答してください。
根拠がない内容は推測せず、確認が必要だと明示してください。
"""
PARAMETER temperature 0.2
PARAMETER num_ctx 4096
PARAMETER seed 42
PARAMETER num_predict 512
| instruction | 何を固定するか | 注意点 |
|---|---|---|
| SYSTEM | 毎回のsystem messageの初期値 | 安全性、事実性、外部ツール権限を保証する規則ではない |
| num_ctx | 生成時に使うcontext windowのサイズ | 大きくするとRAM/VRAMや速度への影響を測る |
| temperature | 出力のばらつきに関係する値 | 創造性・正確性を単独で保証しない |
| seed | 同じ条件で比較しやすくするseed | モデル、prompt、template、環境が同じとは限らない |
| num_predict / stop | 出力上限・停止パターン | 途中停止を品質問題やserver障害と混同しない |
num_ctxを増やす設定は、長文が必ず正しく読めるという意味ではありません。local AIのcontext、モデルサイズ、GPU/CPU、入力長、RAGの検索品質は別の評価軸として記録します。
- Ollama ModelfileのPARAMETER仕様 - 現行parameter名・型・例を確認する
- Ollamaが遅い時 - load・prompt eval・generationを分ける
- コンテキスト長の基礎 - contextとメモリ・長文の関係を見る
TEMPLATEとMESSAGEはモデル固有の形式を見てから使う
TEMPLATEはモデルへ渡すprompt全体の形式で、公式docsはGo template syntaxとmodel-specificな構文を案内しています。既存モデルのchat templateを思い込みで書き換えると、system・user・assistantの境界やstop tokenが崩れることがあります。まずollama show --modelfile MODELで現行定義を確認し、必要な差分だけを別ファイルへ保存します。
# 既存モデルの定義を確認する
ollama show --modelfile BASE_MODEL | Set-Content -Encoding utf8 .\BASE-Modelfile.txt
# MESSAGEは初期の例示会話を記録するinstruction
MESSAGE user 例の質問
MESSAGE assistant 例の回答
# TEMPLATEはモデル固有のため、公式例・show結果・短い実行で検証する
| 項目 | 使いどころ | 混同しないこと |
|---|---|---|
| SYSTEM | 初期のsystem messageを指定 | アプリ側の会話履歴や権限管理ではない |
| MESSAGE | 応答スタイルの例示会話を組み込む | 毎回の利用者の履歴を保存する機能ではない |
| TEMPLATE | System・Prompt・Responseのrender形式を指定 | モデルに合わないテンプレートを汎用設定しない |
| ollama show --modelfile | 現在の定義を観察する | 表示内容を無検証で別モデルへ貼り付けない |
通常のchatが返るモデルを先に確認し、TEMPLATEを変更した後は同じ短いpromptを再実行します。出力が壊れたときは、モデル能力・template・stop・入力形式のどこが変わったかを一つずつ戻します。
- Modelfile Template公式仕様 - template variablesとmodel-specificな注意を見る
- Ollama Structured Outputs - formatとJSON Schemaをtemplate変更と分ける
- Ollamaの回答が途中で止まる時 - stop・done_reason・contextを切り分ける
作成後にollama show・API・digestを検証する
createが成功しても、設定が意図どおり反映されたかは別に確認します。ollama lsで名前とサイズ、ollama show --modelfileで定義、POST /api/showでparameters・template・capabilities・details、GET /api/tagsでdigest、GET /v1/modelsでclientから見えるIDを記録します。
ollama ls
ollama show --modelfile lac-assistant
$body = @{ model = "lac-assistant"; verbose = $true } | ConvertTo-Json
$shown = Invoke-RestMethod `
-Uri "http://localhost:11434/api/show" `
-Method Post -ContentType "application/json" -Body $body
$shown | Select-Object parameters, template, capabilities, details, license
$tags = Invoke-RestMethod -Uri "http://localhost:11434/api/tags"
$tags.models | Where-Object name -eq "lac-assistant" | Select-Object name, size, digest
$models = Invoke-RestMethod -Uri "http://localhost:11434/v1/models"
$models.data | Where-Object id -eq "lac-assistant" | Select-Object id, created, owned_by
| 確認 | 成功の事実 | 断定しないこと |
|---|---|---|
| create status | buildが完了しNAMEが返る | 品質・速度・安全性が向上したこと |
| show / show --modelfile | parameters、template、baseの定義を観察できる | 別のmodelへ同じtemplateを移植できること |
| tags | name、size、digestが保存一覧に出る | 同じ表示名の別tag・別digestを同一視すること |
| /v1/models | OpenAI互換clientから見えるidを確認できる | Responses、tools、vision、embeddingが全部動くこと |
カスタムmodelの名前をAPIへ渡すときは、画面上の説明やModelfileのファイル名ではなく、serverから見えるIDを使います。capabilitiesやdigestの照合方法は、既存のOllamaモデルidentity記事へ分岐します。
- Ollama API Show model details - parameters・template・capabilitiesを確認する
- Ollama API List models - name・size・digestを確認する
- OllamaモデルID・能力診断 - client ID・保存・実行状態を照合する
APIからcreateする場合とModelfileを使う場合を分ける
POST /api/createは、model、from、template、system、parameters、messages、license、quantize、streamなどをJSON bodyで受け取り、作成statusを返すnative APIです。手作業やGitで設定をレビューするならModelfile、Windowsの自動処理から生成するなら/api/createという選択肢があります。どちらもlocal modelを作る操作なので、作成対象と送信先を確認してから実行します。
$body = @{
model = "lac-assistant-api"
from = "BASE_MODEL"
system = "短く正確に回答してください。"
parameters = @{
temperature = 0.2
num_ctx = 4096
}
stream = $false
} | ConvertTo-Json -Depth 8
Invoke-RestMethod `
-Uri "http://localhost:11434/api/create" `
-Method Post `
-ContentType "application/json" `
-Body $body
| 方法 | 向いている場面 | 記録するもの |
|---|---|---|
| Modelfile + ollama create | レビュー、再利用、手元での差分管理 | Modelfile、FROM、モデルtag、作成日 |
| POST /api/create | PowerShellやアプリから自動化 | JSON body、status、HTTP error、送信先 |
| ollama cp | 既存モデルへclient用aliasを付ける | 元model、alias、/v1/modelsで見えるID |
| ollama pull / run | 既存モデルを取得して試す | 提供元、tag、local/cloud、license |
APIのstream既定値や返却statusは利用時点の仕様を確認し、最初はstream=falseの短い作成で結果を読み取ります。API key、実文書、private promptを記事やPowerShell履歴へ入れず、local endpointとcloud endpointを混同しません。
- Ollama Create API公式docs - JSON bodyとcreate statusの仕様を見る
- Ollama API認証 - localhost・cloud・API keyの経路を分ける
- Ollama Responses API - 作成済みmodelを/v1/responsesへ渡す場合を見る
GGUF・adapter・licenseを確認して再現可能に残す
FROMへGGUFやSafetensors directoryを指定する場合は、公式Importing a Modelの対応形式・アーキテクチャと、配布元のmodel cardを確認します。ADAPTERを使う場合は、base modelがadapterを作った元と一致しないと挙動が不安定になると公式に説明されています。LICENSEをModelfileへ書いても、第三者ライセンスの条件や再配布権を自動で付与するわけではありません。
# GGUFをModelfileから取り込む例(ファイルの出所と互換性を先に確認)
FROM .\verified-model.gguf
# baseと対応するadapterだけを指定する
# FROM BASE_MODEL
# ADAPTER .\adapter
# ファイルと設定を記録する
Get-FileHash .\verified-model.gguf -Algorithm SHA256
Get-Content .\Modelfile
ollama create imported-model -f .\Modelfile
ollama show imported-model
ollama run imported-model- GGUF、Safetensors、adapterを取得したURL・revision・SHA256・licenseを記録する。
- ModelfileのFROMとADAPTERが同じbase modelの系統を指すか確認する。
- 量子化やadapterの取り込みが成功しても、元モデルと同じ品質・速度になると断定しない。
- 重要なModelfile、model card、license textを保存し、model本体の削除と設定の削除を分ける。
- 共有・再配布する場合は、base model、adapter、Modelfile、licenseの条件を個別に確認する。
| 症状 | まず見ること | 分岐 |
|---|---|---|
| FROMで失敗する | path、権限、形式、model tag | 既存modelかGGUFかを分ける |
| adapterで挙動が乱れる | base modelとadapterの出所 | 同じbaseか、対応形式かを確認する |
| create後も回答が同じ | SYSTEM、PARAMETER、実際のmodel ID | show --modelfile、tags、短い固定prompt |
| APIから見えない | GET /v1/models、server、tag | 別server・別endpoint・aliasを確認する |
- Ollama Importing a Model - GGUF・Safetensors・adapterの公式手順を見る
- GGUF安全チェック - 配布元・revision・ファイル確認へ進む
- 履歴・ログ・プライバシー - 保存データとモデル本体を分ける
よくある質問
OllamaのModelfileとは何ですか?
Ollamaでcustomized modelを作成・共有するための設計ファイルです。FROMでbase modelを指定し、SYSTEM、PARAMETER、TEMPLATEなどをまとめてollama createで名前付きモデルにします。GGUF本体を直接編集するファイルではありません。
WindowsではModelfileをどこに保存しますか?
固定の必須フォルダは想定せず、PowerShellから管理できる作業用ディレクトリへModelfileと必要なモデルファイルを置きます。FROMの相対pathはModelfileを基準に確認し、保存先やモデル本体をOLLAMA_MODELSの管理場所と混同しないでください。
ollama createの基本コマンドは?
公式例に沿って、Modelfileを用意して`ollama create choose-a-model-name -f .\Modelfile`のように実行し、続けて`ollama run choose-a-model-name`で短い入力を試します。利用環境のCLI helpと現行公式docsも確認してください。
SYSTEMとTEMPLATEはどう違いますか?
SYSTEMはtemplateへ設定するsystem message、TEMPLATEはsystem・user prompt・responseをモデルへ渡す全体形式です。TEMPLATEはmodel-specificなので、まず`ollama show --modelfile MODEL`を確認し、推測で書き換えないでください。
PARAMETER num_ctxを大きくすれば長文に強くなりますか?
context windowの設定を変えられますが、長文の正確性や品質を保証しません。RAM/VRAM、速度、入力長、モデルの能力、RAG検索結果を別々に測り、作成前後を同じ条件で比較します。
ModelfileでGGUFやLoRA adapterを読み込めますか?
公式Importing a Modelでは、GGUFをFROM、対応するadapterをADAPTERで指定する例が案内されています。adapterのbase modelが学習元と一致しないと挙動が不安定になり得るため、形式・対応アーキテクチャ・出所・licenseを先に確認します。
作成したcustom modelをAPIから呼ぶには?
まずollama ls、/api/show、/api/tags、/v1/modelsで名前・設定・digest・client-visible IDを確認します。その後、native APIやOpenAI互換APIのmodelへserverから見える正確なIDを指定し、base URLとlocal/cloudの経路を分けます。
次に読むおすすめルート
開発・API連携したい人
LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。
- ローカルAIをAPIで使う方法
- WindowsでローカルAIコーディングを始める
- VS CodeでローカルAIを使う
- LM Studioのlms CLIを使う
- LM StudioのTool Useを使う
- LM StudioのStructured Outputを使う
- LM StudioのResponses APIを使う
- LM StudioのMCPをAPIで使う
- ローカルAIでJSON出力する方法
- LM StudioとOllamaの違い
- コンテキスト長とは
- RAG・埋め込み・ベクトルDBの仕組み
- OllamaのEmbedding APIを使う
- OllamaのResponses APIを使う
- OllamaのAPI認証を確認する
- OllamaをWindowsのLANから使う前の確認
- OllamaのモデルID・能力を確認する
- Ollama native API streamingを使う
- Ollama Web Search APIを使う
- OllamaのThinkingを使う
- LM StudioのEmbedding APIを使う
- RAG評価と引用確認の基礎
- faithfulness確認
- ローカルRAGのプライバシー
- MCPとは
- ローカルLLMの安全性とプライバシー
- Gemma 4 12Bの更新メモ
- Hermes Desktopとは
- Hermes DesktopとLM Studio接続
- Hermes DesktopとOllama接続
- Hermes Desktop接続トラブル
- Hermes DesktopでOpenRouterを使う
- Hermes DesktopでDeepSeek APIを使う
- Hermes DesktopでProviderを使い分ける
- Hermes DesktopとLM Studio接続の確認ポイント
- Hermes AgentとDesktopの違い
- Ollamaとは
- Windows ARMでローカルAIを使う前の確認
- WindowsでOllamaをインストールする
- Ollamaのローカルモデルとcloudモデルの違い
- Ollamaのモデル保存場所と移動
- Ollamaのモデル一覧・削除・容量整理
- OllamaのOpenAI互換APIを使う
- Ollamaのtool callingを使う
- OllamaのStructured Outputsを使う
- OllamaのEmbedding APIを使う
- OllamaのResponses APIを使う
- OllamaのAPI認証を確認する
- OllamaのモデルID・能力を確認する
- Ollama native API streamingを使う
- LM StudioのEmbedding APIを使う
- Ollamaの解説
- 診断基準
- 比較表
あなたはどのタイプ?
- 初めてローカルAIを触る人 - まず全体像をつかみ、LM StudioとOllamaの違い、モデルサイズの考え方を順番に確認します。
- LM Studio・Ollamaの症状別トラブルを解決したい人 - 起動、モデルロード、Prompt Processing、generation、API接続、GPU確認をツール別に分けて読みます。
- GPUなし・低スペックPCの人 - 軽量モデル、メモリ別の目安、重いときの確認ポイントを先に見ます。
- PDFや資料を読ませたい人 - 先に基本を押さえ、モデル単体の確認後にAnythingLLMへ進みます。
- ローカルAIエージェントを試したい人 - Bionic、Ollama、AnythingLLM、Hermesを役割別に分け、local/cloud、tool、保存、PC負荷を順番に確認します。
- 開発・API連携したい人 - LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。
関連チェック先
- Ollama Modelfile Reference - FROM、PARAMETER、TEMPLATE、SYSTEM、ADAPTER、LICENSE、MESSAGE、REQUIRESの現行仕様を確認できます。
- Ollama CLI Reference - WindowsでModelfileを使ってカスタムモデルを作成・実行するCLI例を参照できます。
- Ollama API: Create a model - POST /api/createのmodel、from、system、parameters、messages、license、streamを確認できます。
- Ollama Importing a Model - Safetensors、GGUF、LoRA adapterをModelfileのFROM・ADAPTERで取り込む公式手順を参照できます。
- Ollama OpenAI compatibility - Modelfileでcontext sizeを設定し、作成したmodel名をOpenAI互換APIへ渡す公式例を確認できます。
- Ollama API: Show model details - 作成後のparameters、template、capabilities、details、license、model_infoを確認できます。
- Ollama API: List models - カスタムモデルが保存一覧へ登録されたか、name、size、digest、detailsで確認できます。
- Ollama Windows - Windows版Ollamaの起動、モデル保存先、ログ、環境変数の前提を確認できます。