~/tools / 模型檔案與聊天範本 / GGUF Metadata Viewer
GGUF Metadata Viewer — 開啟 GGUF 檔案:量化、上下文、tokenizer、張量、KV cache
在瀏覽器中開啟 GGUF 模型檔案,不必載入模型就能查看內容:架構、量化、參數量、最長上下文、層數與注意力頭、tokenizer 與其特殊 token、聊天範本、每一筆中繼資料與每一個張量。本工具也會計算各上下文長度的 KV cache,並以與 llama.cpp 相同的方式檢查檔案,讓你在匯入 Ollama 之前就能發現下載不完整的問題。只會讀取檔案的開頭,不會上傳任何內容。
或把檔案拖放到這裡。只會讀取檔案的開頭,檔案不會離開你的電腦。在我們的測試中,Ollama 存放在 models/blobs 資料夾中的權重檔案也是 GGUF 檔案。
KV cache = 2 × 層數 × KV heads × head 大小 × 2 位元組 (f16) × 上下文長度。以 qwen2.5:7b 來說,4096 個 token 時為 224 MiB,這是我們的測試中 Ollama 記錄裡的大小。
權重是儲存在檔案中的張量資料;與標頭合起來就是整個檔案。執行模型還需要 KV cache 與工作記憶體,記憶體估算工具會把它們加上去。
已於 2026-11-08 對照 GGUF 規格與 llama.cpp 的讀取器檢查,並以 qwen2.5:7b 的真實檔案驗證:其中繼資料與 339 個張量與 Ollama 0.40.11 回報的內容相符。 GGUF 規格 · Ollama:匯入模型
檔案在你的瀏覽器中讀取,不會上傳。只會讀取它的開頭。
GGUF 是 llama.cpp 與 Ollama 用於模型的檔案格式。GGUF 檔案以標頭開始,內含格式版本、中繼資料項目清單(例如 general.architecture、<architecture>.context_length、tokenizer.ggml.tokens 與 tokenizer.chat_template),以及張量清單,記錄各張量的名稱、形狀、類型與位置。權重接在後面。本工具依照 ggml 儲存庫中 GGUF 規格的版面配置,只讀取這個標頭,因此數 GB 的檔案也能瞬間開啟:以 qwen2.5:7b 為例,4.36 GiB 的檔案中標頭只有 5.7 MiB。從標頭中,它會顯示模型的名稱、架構與量化(general.file_type),根據張量的形狀計算參數量,並使用 llama.cpp 的 gguf-py 中的區塊大小,加總各張量類型的權重大小。它也會顯示模型的結構(層數、注意力頭、KV heads、head 大小、RoPE 設定、專家)、含有文字開頭與結尾 token 的 tokenizer,以及聊天範本。根據層數、KV heads 與 head 大小,它會計算 f16(Ollama 的預設值)下的 KV cache:2 (鍵與值) × 層數 × KV heads × head 大小 × 2 位元組 × 上下文長度。它還會檢查 llama.cpp 自己的讀取器(gguf.cpp)所檢查的項目,例如格式版本、位元組順序、重複的鍵與張量名稱、對齊、張量類型與每個張量的位置,並將標頭所描述的大小與檔案大小相比較。我們用 Ollama 0.40.11 儲存的 qwen2.5:7b 真實檔案檢驗了本工具:中繼資料、339 個張量(名稱、類型與形狀)與參數量,都與 Ollama 的 /api/show 回報的內容相符,由標頭算出的大小也與檔案逐位元組相符。
這個工具的核心邏輯以 MIT 授權開放原始碼。 github.com/seigo5555/toolkitbox-lib/src/gguf.ts
使用情境
- 在把從 Hugging Face 下載的 GGUF 匯入 Ollama 之前,檢查量化、上下文長度、聊天範本,以及下載是否完整
- 直接從檔案本身看出模型的權重與 KV cache 需要多少記憶體
- 開啟 Ollama 的 models/blobs 資料夾中的檔案,查看 Ollama 已有的模型的中繼資料與張量
使用方法
- 選擇一個 .gguf 檔案,或把它拖放到方框上。若要查看 Ollama 已有的模型,執行 ollama show --modelfile <model>,就會在 FROM 後面印出該檔案的路徑。
- 本工具會讀取檔案開頭,並顯示模型、模型結構、KV cache、各類型的權重與 tokenizer。
- 開啟「所有中繼資料」或「所有張量」可看到完整清單。對於尚未在 Ollama 中的檔案,本工具會顯示用來匯入的 Modelfile 那一行。
FAQ
檔案會被上傳嗎?
不會。瀏覽器在你的電腦上讀取檔案,而本工具只讀取它的開頭:含有中繼資料與張量清單的標頭。不會讀取權重。
為什麼本工具說檔案比標頭所述的還短?
標頭列出了每個張量的大小與位置,因此能知道檔案應該有多大。如果檔案比這更短,就表示部分權重遺失了,例如下載或複製提早中斷。對這樣的檔案,llama.cpp 會以 "model is corrupted or incomplete" 停止。
general.file_type 與張量類型有什麼不同?
general.file_type 指出檔案的主要量化,例如 Q4_K_M。一個檔案會混用多種類型:在 qwen2.5:7b 的 Q4_K_M 中,大多數張量是 Q4_K,有些是 Q6_K,而像正規化權重這樣的小張量是 F32。各類型權重的表格會顯示這種混合情形。
可以開啟 Ollama 已經下載的模型檔案嗎?
可以。Ollama 把模型的權重存放在 models/blobs 資料夾中,檔名形如 sha256-…。在我們的測試中,ollama show --modelfile qwen2.5:7b 在 FROM 後面印出了該檔案的路徑,而它是一個 GGUF 檔案。
如何把 GGUF 匯入 Ollama?
Ollama 的匯入指南使用含有 FROM /path/to/file.gguf 的 Modelfile,然後執行 ollama create。若模型被拆成多個檔案,請保留原本的檔名,並使用能符合每個部分的萬用字元。Ollama 在匯入時不會對 GGUF 模型進行量化。
KV cache 的大小有多準確?
在我們的測試中,這個公式與 Ollama 的記錄相符(qwen2.5:7b 在 4096 個 token 時為 224 MiB)。它是以 f16(Ollama 的預設值)計算。使用滑動視窗、共用或壓縮 KV cache,或具有遞迴層的模型,用量會不同;當中繼資料顯示有這種情況時,本工具會說明。