Ollama で入れたモデルが llama.cpp で読めない?〜読めなかった7本の正体と、Hugging Face 版での測り直し

本ページは広告(アフィリエイトプログラム)を含みます。詳しくはプライバシーポリシーをご覧ください。
Ollama で入れたモデルは、1つの大きなファイル(blob)として保存されています。中身は GGUF なので、llama.cpp の llama-bench でそのまま読めるはずでした。ところが、9月に測ろうとした6本と、10月に加えた1本の計7本が「failed to load model」で止まります。空き容量は十分で、ファイルも壊れていません。何が違うのでしょうか。10月3日に原因を確かめ、別の入れ物で同じモデルを測り直しました。 2026年10月時点の内容です。

どう測ったか〜Ollama の blob を llama-bench で直接読む

機体は GMKtec EVO-X2(Ryzen AI Max+ 395・メモリ128GB)で、内蔵GPU の Radeon 8060S を使いました。ソフトは llama.cpp の公式ビルド b11192 の llama-bench です。Ollama が保存した blob(/usr/share/ollama 配下などの sha256- で始まるファイル)を、そのままモデルとして渡し、読ませる速さ(pp512)と書く速さ(tg128)を5回ずつ測りました。並べ替えて上下を1つずつ落とし、中央3点の中央値を採っています。測定は 2026年10月3日です。
スポンサーリンク

読めなかった7本と、読めた14本

22本のうち、14本は5回の測定まで通り、1本(qwen3-235b-q2)は1回目の後に読み込みが止まり、7本は最初から「failed to load model」で止まりました。
読めなかった7本家族読めた14本の例
gemma4:31bGemma 4qwen3:8b・qwen3:14b・qwen3-coder:30b
qwen3.6:27b・qwen3.6:35b-a3bQwen3.6nemotron-3-nano:30b・phi4-mini
qwen3-coder-nextQwen3 Coder Nextllama3.3:70b・minimax-m2.7
gpt-oss:120bgpt-ossllama3.2:1b・llama3.1:8b
nemotron-3-super:120b-a12bNemotron 3 Superornith-1.5:9b・35b
glm-4.7-flash:Q4_K_MGLM 4.7 Flashqwen3:4b・qwen3:1.7b
読めなかった7本は、ファイルの大きさも家族もばらばらです。18GB の gemma4:31b も、80GB の Nemotron 3 Super も同じエラーでした。容量の問題ではありません。 読めた側の数字も載せておきます。同じ日に、同じ条件で5回の測定が通った14本です。tg128 は128トークンを書かせたときの、pp512 は512トークンを読ませたときの、1秒あたりのトークン数です。
モデル(Ollama の名前)ファイル [GiB]書く速さ tg128 [tok/s]読ませる速さ pp512 [tok/s]
llama3.2:1b1.2160.88,920
qwen3:1.7b1.3148.55,305
phi4-mini2.379.92,543
qwen3:4b2.377.02,441
nemotron-3-nano:4b2.671.62,268
llama3.1:8b4.645.61,379
qwen3:8b4.941.11,183
ornith-1.5:9b5.438.71,132
qwen3:14b8.624.3715
qwen3-coder:30b(MoE)17.391.11,544
ornith-1.5:35b(MoE)20.275.51,452
nemotron-3-nano:30b(MoE)22.669.01,570
llama3.3:70b39.65.3148
minimax-m2.7(MoE)101.028.9260
書く速さの目安は、日本語なら 1 tok/s がおよそ1〜2文字です。llama3.3:70b の 5.3 tok/s は人が読む速さを下回り、MoE の3本(30〜35B)は 70〜90 tok/s と、4B 級と同じ速さで動いています。

GGUF の頭を読むと、何が入っているか分かる

GGUF はファイルの先頭に、モデルの種類(architecture)や層の数などの「見出し」を持っています。読めなかった2本の見出しを、Python で先頭だけ読んでみました。
ファイルarchitecture見出しにあった項目
gemma4:31b の blobgemma4gemma4.block_count のほかに、gemma4.vision.block_count(画像用の層の数)
qwen3.6:27b の blobqwen35qwen35.block_count のほかに、qwen35.vision.block_count
どちらも、文章用の本体と、画像を読むための部分(視覚エンコーダ)が1つのファイルに同居していました。llama.cpp 本流では、画像用の部分は mmproj という別ファイルに分けて持つ決まりです。Ollama は自社のエンジン向けに、本体と画像用を1つにまとめた形で配っています。本流の llama.cpp は、この同居した見出しを知らないので、読み込みを止めます。 背景を少し補います。Ollama は 2025年に、llama.cpp をそのまま使う方式から、Go 言語で書いた自前のエンジンへ移りました。Gemma・Qwen・Llama などの構造をエンジン側で直接実装し、画像を扱う部分も同じエンジンの中にあります。Ollama の公式ライブラリで配る画像対応モデル(Gemma 4・Qwen3.5 系など)は、この自前エンジンを前提に、視覚用の重みを本体の GGUF に埋め込んでいます。Ollama の GitHub の issue(ollama/ollama #14730「unknown model architecture: qwen35moe when loading imported GGUF with mmproj」)でも、「公式の qwen3.5:35b は本体の GGUF に qwen35moe.vision の重みを持つため、別ファイルなしで画像が使える」と説明されています。自前エンジンへの移行は Ollama 公式ブログ「Ollama’s new engine for multimodal models」(2025年)が出所です。 読めなかった7本のうち、ファイルの見出しまで確かめたのは gemma4:31b と qwen3.6:27b の2本です。残る5本(gpt-oss・Nemotron 3 Super・Qwen3 Coder Next・Qwen3.6 35B-A3B・GLM 4.7 Flash)は同じエラーでしたが、見出しは読んでいません。原因が同じかどうかは、この記事では断定していません。 当ブログの9月24日の記録では、古いビルド(b10941)で gpt-oss の blob は「gptoss という形式名が未対応」、Nemotron は「重みの形が合わない」というエラーでした。視覚の同居とは別の理由の可能性があり、b11192 で同じかは確かめていません。 読めた14本は、文章だけのモデルか、画像用の部分を含まない形で配られているものでした。同じ「GGUF」でも、中の約束事がエンジンごとに少し違う、ということです。
スポンサーリンク

Hugging Face で配られる GGUF なら読める

同じモデルを、Hugging Face で配られている GGUF(unsloth・ggml-org)に替えて、同じ llama-bench で測りました。4本とも読めて、5回の測定が通りました。書く速さは、日本語なら1秒に 10〜60文字ほどの目安です。
モデル入れ物ファイル [GiB]書く速さ [tok/s]読ませる速さ [tok/s]
Gemma 4 31Bunsloth Q4_K_M17.111.6327
Qwen3.6 27Bunsloth Q4_K_M15.712.6350
Qwen3.6 35B-A3Bunsloth UD-Q4_K_M20.662.71,423
gpt-oss 120Bggml-org MXFP459.055.2987
機体は GMKtec EVO-X2 の内蔵GPU(Radeon 8060S)、llama.cpp b11192、5回測って上下を1つずつ落とした中央3点の中央値です。残る3本(Qwen3 Coder Next・Nemotron 3 Super・GLM 4.7 Flash)は、この日は Hugging Face 版を取得していません。

入れ物が変わると、速さの数字も変わる

gpt-oss 120B は、9月24日に Ollama で測ったとき(5回・中央3点、当ブログの MiMo の記事)は 37.2 tok/s でした。10月3日に llama.cpp b11192 で測ると 55.2 tok/s です。同じ機体、同じ MXFP4 形式で、1.5倍の差が出ました。ただし Ollama 版のファイルは 60.9GB、Hugging Face 版は 59.0GB と、配布物そのものも違います。読む側から見ると、1秒に書ける文字が 40字前後から 60字前後へ増えた、という違いです。Ollama の中のエンジンの版や、既定の設定(文脈長・バッチ)が違うためと考えられますが、どの要因が大きいかは切り分けていません。 ほかのモデルでも、Ollama と llama.cpp の両方で測った値があります。測った日が違うので参考値ですが、差の出方は一様ではありません。
モデルOllama(2026年7月)[tok/s]llama.cpp b11192(2026年10月3日)[tok/s]差
qwen3:8b39.241.1+5%
qwen3:14b23.224.3+5%
qwen3.6:27b12.012.6(HF 版)+5%
gpt-oss:120b34〜3755.2(HF 版・MXFP4)+50%前後
密な(dense)モデルの3本は、この比較では 5% ほどの差でした。7月の値は測定日も設定も違うので、差が無いと言い切る根拠にはなりません。gpt-oss 120B だけが大きく違いました。gpt-oss は MXFP4 という 4ビットの形式で配られており、この形式の計算を llama.cpp がどう扱うかで速さが変わると考えられます。どの要因が効いているかは切り分けていません。 当ブログでは、速さの表に「どのエンジンの、どのビルドで測ったか」の列を持たせています。入れ物をまたいで数字を並べるときは、この列をそろえて読む必要があります。
スポンサーリンク

確かめていないこと

・Ollama 側で同じ7本を llama.cpp 形式に書き出す方法があるか(試していません) ・読めなかった7本のうち5本は、ファイルの見出しを読んでいません(原因が2本と同じかは未確認) ・Ollama と llama.cpp の速さの差(37.2 と 55.2 tok/s)の内訳 ・Qwen3 Coder Next・Nemotron 3 Super・GLM 4.7 Flash の Hugging Face 版での速さ ・NVIDIA のグラフィックボードで同じ比較をした場合

まとめ〜「同じ GGUF」でも、入れ物の約束が違う

Ollama の blob が llama.cpp で読めなかった原因は、見出しを確かめた2本については、容量でも版でもなく、画像用の部分を同居させた独自の形でした。残る5本は同じエラーですが、原因は確かめていません。llama.cpp で測るなら、Hugging Face の公式 GGUF を使うのが近道です。速さの数字はエンジンで変わるので、表には必ずエンジンとビルドを添えます。 Hugging Face 版の探し方も書いておきます。Hugging Face で「モデル名 GGUF」と検索し、配布元が unsloth・bartowski・ggml-org・開発元の公式のいずれかであれば、llama.cpp 本流で読める可能性が高い配布です。ファイル名の Q4_K_M が4ビット量子化の標準的な形式で、画像を使いたいときだけ mmproj のファイルを別に取ります。逆に、Hugging Face の GGUF を Ollama で使いたいときは、Ollama 側に hf.co/配布元/リポジトリ名:量子化 の形で指定する入り口があります。 次の行動としては、Ollama で入れたモデルを別の道具で使いたい人は、まず Hugging Face に同じモデルの GGUF があるかを確かめることを勧めます。モデルの選び方は、用途別のまとめにあります。

検証に使用した機材

GMKtec EVO-X2 (Ryzen AI Max+ 395 / 128GB / 2TB)A8限定クーポン「A82608」で5,000円OFF(2026/10/31まで)/公式オンラインストアのクーポン「KANSYA2026」で2,000円OFF(2026/10/18まで)

¥583,000 Amazon・2026-10-04調べ

公式サイトのみ ¥5,000引きクーポン配布中 クーポンコード A82608(2026-10-31まで)
スポンサーリンク