Modelfile
Modelfile 是建立自訂模型的藍圖,概念接近 Dockerfile:宣告「從哪個模型來、系統要說什麼、參數怎麼設」。指令不分大小寫;完整列表見 Modelfile Reference。
最小例子
存成檔案 Modelfile:
建立並執行(把名稱換成你要的):
之後它會出現在 ollama ls,用法與圖書館裡的模型相同,也可以被 API 呼叫。
最常用的指令
| 指令 | 用途 |
|---|---|
FROM(必填) |
基底模型,例如 gemma4 或本機 GGUF 路徑 |
SYSTEM |
系統訊息:角色、語言、限制 |
PARAMETER |
temperature、num_ctx、num_predict、stop 等 |
MESSAGE |
預先放入 user/assistant 範例,引導回答風格 |
TEMPLATE |
完整提示詞模板(通常不必改,除非你在匯入特殊格式) |
ADAPTER |
套用 LoRA/QLoRA |
LICENSE |
授權文字 |
REQUIRES |
最低 Ollama 版本 |
先改 SYSTEM 與少數 PARAMETER 就夠用。不要一開始就改 TEMPLATE,除非官方模型頁或 ollama show --modelfile 顯示你必須對齊特殊標記。
從現有模型抄一份來改
輸出裡的 FROM 可能是本機 blob 路徑。若要做衍生模型,把 FROM 改成你認得的名稱(例如 FROM gemma4),再加自己的 SYSTEM。
在 REPL 裡也可以先 /set parameter ... 試參數,確定後再寫進 Modelfile,避免每次重建。
匯入 GGUF 或 Safetensors
FROM 可以指向:
- 已有的 Ollama 模型名稱
- 含 Safetensors 的目錄(架構須在官方支援清單內)
.gguf檔(路徑相對 Modelfile 或用絕對路徑)
細節與支援架構以官方文件為準。匯入後仍建議用很小的提示測一次,確認模板沒有把角色標記弄亂。
上下文長度怎麼改
Matt Williams 說明模型「標稱」的 context 與實際預設 num_ctx 常不一樣,以及用 REPL、API、Modelfile 三種改法。對應本頁的 PARAMETER num_ctx。把數字一次拉到 128K 會大幅增加記憶體,應逐步上調。