~/tools / 模型檔案與聊天範本 / Ollama Modelfile Generator
Ollama Modelfile Generator — 建立 Ollama Modelfile:FROM、SYSTEM、PARAMETER、MESSAGE 等
用表單建立 Ollama Modelfile:基礎模型、系統訊息、temperature 與 num_ctx 等參數、停止序列、範例訊息、範本、最低 Ollama 版本、額外功能與授權條款。數值會依官方 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 只接受參考文件中列出的名稱,而且每個參數都要求整數或小數;停止序列要一行設定一個;跨越多行的文字必須用三個雙引號包起來。本工具會幫你寫好這個檔案。它只列出官方 Modelfile 參考文件中的指令與參數,在每個欄位旁顯示該參數的預設值,當某個值會被拒絕時提醒你,並依 Ollama 自己的解析器讀取的方式為每個值加上引號。我們用 Ollama 0.40.11 測試過輸出內容:以產生的檔案建立模型,再用 ollama show --modelfile 讀回來確認。REQUIRES 與 CAPABILITY 也用同樣的方式檢查過。工具也會依你選定的模型名稱,提供 ollama create 與 ollama run 指令。
這個工具的核心邏輯以 MIT 授權開放原始碼。 github.com/seigo5555/toolkitbox-lib/src/modelfile.ts
使用情境
- 複製一個 library 模型,加上你自己的系統訊息與 temperature,並以新名稱執行
- 為你在 VPS 上提供服務的模型設定更大的上下文視窗(num_ctx)或固定的 seed
- 加入一小段範例對話,讓模型知道該如何回答
使用方法
- 在 FROM 輸入基礎模型:可以是 Ollama library 中的模型(例如 llama3.2)、GGUF 檔案的路徑,或是存放 Safetensors 權重的目錄。再輸入新模型要使用的名稱。
- 撰寫系統訊息,只填入你想更改的參數。空白欄位不會寫出,因此基礎模型的值仍然有效。需要的話,一行輸入一個停止序列,並加入範例訊息。
- 將 Modelfile 複製到名為 Modelfile 的檔案中,然後執行下方顯示的兩個指令:ollama create 會建立模型,ollama run 會啟動模型。
Modelfile 的格式
Modelfile 是一個文字檔,每行寫一個指令及其引數。以 # 開頭的行是註解。根據官方參考文件,指令不分大小寫,順序也可以任意。唯一必填的是 FROM。
一個值通常到該行結尾為止。跨越多行的值要用三個雙引號(""")包起來。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 個 token |
| 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 的解析器讀取以三個雙引號開頭的值時,會一直讀到某一行結尾出現三個雙引號為止,所以含有多行的文字必須這樣包起來。本工具一律會包住系統訊息、範本與授權條款;範例訊息則在內容有多行、以雙引號開頭,或開頭或結尾有空格時才會包住。停止序列則以雙引號包住,因此開頭或結尾的空格會被保留。
文字中可以連續出現三個雙引號嗎?
不行。這個格式沒有跳脫字元,所以行尾的三個雙引號會讓值提前結束,下一行就會被當成指令讀取,導致 ollama create 失敗。本工具會把這種情況顯示為錯誤。請改寫那一段文字。
留空的設定會怎麼處理?
它們不會被寫出,新模型會保留從基礎模型繼承的內容。例如,以 qwen2.5:7b 為基礎、沒有 SYSTEM 所建立的模型,會保留 qwen2.5:7b 的系統訊息。若要查看基礎模型已經設定了什麼,請以基礎模型的名稱執行 ollama show --modelfile。
工具會檢查基礎模型是否存在嗎?
不會。它不會連線到 Ollama 或 library。如果 FROM 中的名稱或路徑有誤,ollama create 會回報。GGUF 的路徑除非你給的是絕對路徑,否則會以 Modelfile 所在的位置為基準來讀取。
有任何內容會傳送到伺服器嗎?
不會。Modelfile 是在你的瀏覽器中組成的。