OllamaでGGUFモデルを読み込んで使う方法【Hugging Face連携】

Ollama

動作確認済み環境

本記事のコマンドは Ollama v0.30.8 で検証しています(2026年6月15日実測)。Ubuntu 24.04 LTS でも同じ手順・同じ出力になります。

「Hugging Face で見つけた GGUF ファイルをそのまま Ollama で動かしたい」という疑問に、この記事では直接答えます。

結論として、Ollama は v0.3.0 以降 hf.co/ プレフィックスをつけるだけで Hugging Face からGGUFモデルを直接 pull できます。さらに、ローカルにある .gguf ファイルを Modelfile 経由で登録する方法も使えます。どちらの方法も、コマンド1〜3本で完結します。

本記事では、実際に Ollama v0.30.8 で GGUFファイルのマジックバイト(GGUF)を確認し、ollama create でカスタムモデルを登録してAPIで呼び出すまでの全工程を実測した結果を載せます。

この記事のポイント

  • ollama pull hf.co/<namespace>/<repo>:<tag> でHugging FaceのGGUFを直接取得できる(v0.3.0以降)
  • ローカルの .gguf ファイルは Modelfile に FROM ./model.gguf と書き ollama create で登録
  • 量子化は Q4_K_M がバランス最良(品質・サイズ・速度のトレードオフ)
  • 登録後は通常の ollama モデルと同じ ollama run / REST API で利用可能
  • GGUF ファイルの先頭4バイトは必ず GGUF(マジックバイト)—破損ファイル検出に使える

目次

  1. GGUFとは何か
  2. 前提環境
  3. 方法1:Hugging Face から直接pullする
  4. 方法2:ローカルGGUFファイルからModelfileで登録する
  5. モデルを実行する(ollama run / REST API)
  6. 量子化オプションの比較
  7. よくあるエラーと解決策
  8. まとめ

GGUFとは何か

GGUF は「GPT-Generated Unified Format」の略で、llama.cpp が定義した LLM(大規模言語モデル)の重みファイル形式です。以前の GGML 形式の後継で、2023年以降ほぼすべての量子化済みオープンモデルがこの形式で配布されています。

特徴は以下の3点です。

  • 単一ファイル:モデルの重み・トークナイザー・メタデータがすべて1ファイルに収まる
  • 量子化に対応:Q4_K_M / Q5_K_M など精度を落としてファイルサイズを圧縮できる
  • CPU でも動く:GPU がなくても推論できる(遅いが動く)

実際に手元の GGUF ファイルを確認すると、先頭4バイトが 47 47 55 46(ASCII で「GGUF」)になっています。これがマジックバイトです。




ubuntu@linuxlab: ~
$ xxd qwen2.5-0.5b-q4_k_m.gguf | head -2
00000000: 4747 5546 0300 0000 2201 0000 0000 0000 GGUF…."…….
00000010: 2200 0000 0000 0000 1400 0000 0000 0000 "……………

このマジックバイトを確認できれば、そのファイルは正しい GGUF 形式です。ダウンロード中に壊れた場合は GGUF が現れません。

前提環境

以下の環境を前提として説明します。

項目 バージョン / 内容 備考
OS Ubuntu 24.04 LTS 22.04 LTS でも同じ手順で動作
Ollama v0.30.8(実測) v0.3.0 以上で hf.co/ 対応
RAM 8 GB 以上推奨 Q4_K_M の 7B モデルは約5〜6 GB必要
ストレージ モデルサイズ分の空き 0.5B モデルなら約400 MB

Ollama をまだインストールしていない場合は、公式のインストールスクリプト一行で入ります。




ubuntu@linuxlab: ~
$ curl -fsSL https://ollama.com/install.sh | sh
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
>>> Adding ollama user to render group…
>>> The Ollama API is now available at 127.0.0.1:11434.
$ ollama –version
ollama version is 0.30.8

方法1:Hugging Face から直接pullする

Ollama v0.3.0 以降、hf.co/ で始まるモデル名を使うと Hugging Face のリポジトリから GGUF ファイルを直接 pull できます。これが最も手軽な方法です。

手順1:モデルページでGGUFリポジトリを探す

Hugging Face でモデルを探す際は、ファイル名に GGUF が含まれるリポジトリを選びます。たとえば bartowski ユーザーは多くのモデルのGGUF版を公開しており、よく参照されます。

リポジトリ名の末尾に -GGUF が付いているものが対象です。例:

  • bartowski/Qwen2.5-0.5B-Instruct-GGUF
  • bartowski/Llama-3.2-1B-Instruct-GGUF
  • mmnga/ELYZA-japanese-Llama-2-7b-GGUF(日本語モデル)

手順2:量子化タグを確認する

リポジトリの「Files」タブを見ると、Q4_K_M / Q5_K_M などのファイルが並んでいます。これが量子化タグになります。最初の一本は Q4_K_M を選ぶとバランスがよいです。

手順3:ollama pull で取得する

フォーマットは hf.co/<ユーザー名>/<リポジトリ名>:<量子化タグ> です。

Hugging FaceからGGUFモデルをpullする実行ログ(Ollama 0.30.8実測)
Hugging FaceからGGUFモデルをpullする実行ログ(Ollama 0.30.8実測)



ubuntu@linuxlab: ~
$ ollama pull hf.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF:Q4_K_M
pulling manifest
pulling 6eb923e7d26e: 100% ▕████████████████████▏ 397 MB
pulling e94a8ecb9327: 100% ▕████████████████████▏ 1.6 KB
pulling 3c3ae183ca1e: 100% ▕████████████████████▏ 475 B
verifying sha256 digest
writing manifest
success

pull が完了したら ollama list で確認できます。




ubuntu@linuxlab: ~
$ ollama list
NAME ID SIZE MODIFIED
hf.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF:Q4_K_M acd7e615fd7e 397 MB Less than a second ago
qwen2.5:0.5b a8b0c5157701 397 MB 3 hours ago
著者アイコン
著者アイコン

HuggingFaceのGGUFリポジトリには量子化のバリエーションが複数あります。最初は Q4_K_M を選ぶのが正直おすすめです。品質とサイズのバランスが一番良く、ほぼどの環境でも動きます。

方法2:ローカルGGUFファイルからModelfileで登録する

すでに .gguf ファイルがローカルにある場合は、Modelfile を使って登録します。カスタムのシステムプロンプトやパラメーターも設定できるので、HF pullより細かく制御したい場合に使います。

手順1:GGUFファイルを用意する

Hugging Face から手動でダウンロードする場合、以下のように wget または curl で取得します。




ubuntu@linuxlab: ~
$ wget https://huggingface.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/Qwen2.5-0.5B-Instruct-Q4_K_M.gguf
Resolving huggingface.co (huggingface.co)… 18.154.xxx.xxx
Connecting to huggingface.co|18.154.xxx.xxx|:443… connected.
Qwen2.5-0.5B-Instruct-Q4_K_M.gguf 379M ████████████████ 100%

手順2:Modelfile を作成する

Modelfile は Ollama がモデルを登録するための設定ファイルです。最低限 FROM だけあれば動きます。




ubuntu@linuxlab: ~
$ cat Modelfile
FROM ./Qwen2.5-0.5B-Instruct-Q4_K_M.gguf

SYSTEM “あなたはLinuxの専門家です。日本語で簡潔に回答してください。”

PARAMETER temperature 0.7
PARAMETER num_ctx 4096

Modelfile の主な設定項目を整理します。

命令 説明
FROM GGUFファイルのパス(必須) FROM ./model.gguf
SYSTEM システムプロンプト SYSTEM "専門家として回答する"
PARAMETER temperature 生成の多様性(0.0〜1.0) PARAMETER temperature 0.7
PARAMETER num_ctx コンテキスト長(トークン数) PARAMETER num_ctx 4096
TEMPLATE プロンプトテンプレート(省略可) 省略するとGGUFのデフォルト使用

手順3:ollama create で登録する

ollama create <モデル名> -f Modelfile で登録します。実際に実行した結果は以下の通りです(Ollama 0.30.8 で実測)。

Modelfileからollama createでカスタムモデルを登録(実測)
Modelfileからollama createでカスタムモデルを登録(実測)



ubuntu@linuxlab: ~
$ ollama create my-linux-expert -f Modelfile
gathering model components
copying file sha256:6eb923e7d26e… 100%
parsing GGUF
verifying conversion
creating new layer sha256:91aec7aec0ab
writing manifest
success
$ ollama list
NAME ID SIZE MODIFIED
my-linux-expert:latest 5c7f0a9b14f6 397 MB Less than a second ago
qwen2.5:0.5b a8b0c5157701 397 MB 3 hours ago

「parsing GGUF」→「success」という流れが正常完了の証拠です。エラーが出なければそのまま次へ進めます。

モデルを実行する(ollama run / REST API)

①コマンドラインで実行する

登録が済んだモデルは ollama run で対話モードに入れます。




ubuntu@linuxlab: ~
$ ollama run my-linux-expert
>>> Ubuntuのaptコマンドとは何ですか?
apt(Advanced Package Tool)は、Ubuntuでパッケージのインストール・
更新・削除を行うコマンドラインツールです。
例: sudo apt update && sudo apt install nginx
>>> /bye

②REST APIで呼び出す

Ollama は起動すると localhost:11434 でREST APIを提供します。GGUF モデルも通常モデルと全く同じエンドポイントで呼べます。

Ollama REST APIでGGUFモデルを呼び出す(実測)
Ollama REST APIでGGUFモデルを呼び出す(実測)



ubuntu@linuxlab: ~
$ curl http://localhost:11434/
Ollama is running
$ curl -s http://localhost:11434/api/tags | jq ‘.models[].name’
“my-linux-expert:latest”
“hf.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF:Q4_K_M”
“qwen2.5:0.5b”
“llama3.2:1b”
$ curl -s http://localhost:11434/api/generate \
-d ‘{“model”: “hf.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF:Q4_K_M”,
“prompt”: “Linuxとは?”, “stream”: false}’ \
| jq ‘.eval_count, (.total_duration/1e9)’
203
1.94

登録したGGUFモデルが /api/tags の一覧に並び、/api/generate203トークンを約1.94秒で生成して返したことが実測できました(Ollama 0.30.8)。レスポンス本文は .response フィールドに入っています。

小さいモデルの回答品質について

今回検証した 0.5B(5億パラメータ)モデルは「動作確認」には十分ですが、日本語の回答精度はかなり粗くなります。実用的な回答が欲しい場合は、同じ Q4_K_M でも 7B クラス(例:bartowski/Qwen2.5-7B-Instruct-GGUF)を選ぶと品質が大きく上がります。サイズと品質はトレードオフです。

Ollama APIタグ一覧(localhost:11434/api/tags 実撮影)
Ollama APIタグ一覧(localhost:11434/api/tags 実撮影)

Python から使う場合は requests ライブラリで簡単に呼び出せます。




ubuntu@linuxlab: ~ — Python
$ python3 -c ”
import requests, json
resp = requests.post(‘http://localhost:11434/api/generate’, json={
‘model’: ‘my-linux-expert’,
‘prompt’: ‘SSHとは何ですか?’,
‘stream’: False
})
print(resp.json()[‘response’])

SSH(Secure Shell)はネットワーク越しにリモートサーバーへ
安全にログインするためのプロトコルです。通信は暗号化されます。

量子化オプションの比較

GGUF ファイルの「量子化」とは、モデルの数値精度を落としてファイルサイズと使用メモリを削減する技術です。精度を落とすほどサイズは小さくなりますが、回答の品質も若干低下します。

GGUF量子化オプション比較表(Qwen2.5-7B-Instructの場合・illustrative)
GGUF量子化オプション比較表(Qwen2.5-7B-Instructの場合・illustrative)

Hugging Face のファイル名の末尾に付いている Q4_K_M などがこれに該当します。目安として以下を参考にしてください(7Bモデルの場合)。

量子化名 ビット精度 ファイルサイズ目安 必要VRAM目安 推奨度
Q2_K 2bit 約3.0 GB 4 GB〜 最終手段(品質低)
Q4_K_M 4bit 約4.7 GB 6 GB〜 ★★★ バランス最良・まずこれ
Q5_K_M 5bit 約5.3 GB 8 GB〜 高精度が必要な場合
Q6_K 6bit 約6.1 GB 8 GB〜 VRAM余裕があれば
Q8_0 8bit 約7.7 GB 12 GB〜 品質を妥協したくない場合

VPS や自宅サーバーで動かすなら Q4_K_M から始めるのが正直おすすめです。特に 8 GB RAM マシンでは Q5_K_M 以上は厳しくなります。

よくあるエラーと解決策

①「Error: pull model manifest: file does not exist」

Hugging Face のリポジトリ名かタグ名が間違っています。

確認ポイント

  • リポジトリ名は大文字・小文字を正確に合わせる(GGUF など)
  • タグ名(:Q4_K_M など)は Hugging Face の「Files」タブに表示されるファイル名から読み取る
  • ollama pull hf.co/bartowski/Qwen2.5-0.5B-Instruct-GGUF:Q4_K_M のように正確にコピーする

②「Error: GGUF: unexpected magic」

ダウンロードしたファイルが壊れているか、GGUF 形式でないファイルを指定しています。




ubuntu@linuxlab: ~
$ xxd model.gguf | head -1
00000000: 4747 5546 … GGUF… ← 先頭が GGUF なら正常
00000000: 3c21 444f … <!DO… ← HTMLが返ってきた(エラーページ)

上記の確認で先頭が GGUF でない場合は、ダウンロードURLが間違っているか途中で失敗しています。ファイルを削除して再ダウンロードしてください。

③「out of memory」

モデルが大きすぎて RAM に収まっていません。より小さい量子化(Q4_K_M → Q2_K など)か、より小さいモデル(7B → 3B → 1B)に変えてください。




ubuntu@linuxlab: ~
$ free -h
total used free
Mem: 15Gi 12Gi 1.2Gi
↑ 空きが少ない → 大きいモデルは動かない

④「Error: model ‘xxx’ not found」

ollama create でモデルを作成した後、ollama list で名前を確認してから実行してください。大文字・小文字も区別されます。

⑤Modelfile の FROM パスが見つからない

相対パスを使う場合、ollama create を実行するディレクトリからの相対パスになります。絶対パスを使うと確実です。




ubuntu@linuxlab: ~
# 相対パス(GGUFファイルと同じディレクトリで実行する場合)
FROM ./model.gguf
# 絶対パス(確実)
FROM /home/ubuntu/models/model.gguf
OllamaのGGUFワークフロー全体像(Playwright撮影)
OllamaのGGUFワークフロー全体像(Playwright撮影)

まとめ

Ollama で GGUF モデルを使う方法を2通り実測しました。

  • Hugging Face から直接 pull:ollama pull hf.co/<user>/<repo>:<tag>(v0.3.0以降)
  • ローカルGGUFから登録:Modelfile に FROM ./model.ggufollama create
  • 量子化は Q4_K_M がバランス最良(初心者にはまずこれ)
  • 登録後は ollama run も REST API も通常モデルと同じ操作
  • GGUFファイルの先頭4バイトが GGUF でなければ破損:xxd で確認できる

Ollama と GGUF を組み合わせると、Hugging Face で公開されているほぼすべてのオープンモデルをローカルで動かせます。VPS に Ollama をセットアップすれば、24時間稼働の自前 AI サーバーも実現できます。

VPS で Ollama を動かしたい方へ

ローカルではなく VPS でOllamaを常時稼働させると、スマホや他のデバイスからもAPIを呼べます。GPU付きVPSを選べば大きめのGGUFモデルも快適に動きます。

関連記事:

コメント

タイトルとURLをコピーしました