~/tools / 模型檔案與聊天範本 / Ollama Modelfile Generator

Ollama Modelfile Generator — 建立 Ollama Modelfile:FROM、SYSTEM、PARAMETER、MESSAGE 等

用表單建立 Ollama Modelfile:基礎模型、系統訊息、temperature 與 num_ctx 等參數、停止序列、範例訊息、範本、最低 Ollama 版本、額外功能與授權條款。數值會依官方 Modelfile 參考文件檢查,並加上引號,讓 Ollama 讀回時內容不變。輸入的內容不會離開你的瀏覽器。

參數(PARAMETER)

空白欄位不會寫出。灰色數字是文件中給出的預設值。

範例訊息(MESSAGE)

用來引導模型如何回答的範例對話。空白的列不會寫出。

範本、最低版本、額外功能與授權條款
額外功能(CAPABILITY)

每個勾選的值會寫成一行 CAPABILITY。依參考文件,CAPABILITY 會為 GGUF 或 MLX 模型加上功能,而不會移除繼承或推斷出的功能;decision 則只應宣告給以其 decision 提示訓練出的權重。在我們用 Ollama 0.40.11 的測試中,除了 decision 之外,每個值都會加到繼承的功能上;使用 decision 時,ollama show 只列出宣告的值(completion 與 tools 不再列出)。

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
  • 加入一小段範例對話,讓模型知道該如何回答

使用方法

  1. 在 FROM 輸入基礎模型:可以是 Ollama library 中的模型(例如 llama3.2)、GGUF 檔案的路徑,或是存放 Safetensors 權重的目錄。再輸入新模型要使用的名稱。
  2. 撰寫系統訊息,只填入你想更改的參數。空白欄位不會寫出,因此基礎模型的值仍然有效。需要的話,一行輸入一個停止序列,並加入範例訊息。
  3. 將 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
FAQ4096 個 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 是在你的瀏覽器中組成的。

相關工具