1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ollama v0.34入門、プロンプトキャッシュで評価時間が3.6倍速くなった

1
Posted at

はじめに

Ollama は 2026 年 8 月から 9 月にかけて v0.33.0 から v0.34.0 まで一気に版を重ね、Claude Desktop / ChatGPT Desktop へのゲートウェイ統合、MLX エンジンのマルチモーダル対応、プロンプトキャッシュのトークン報告といった機能が短期間で積み上がりました。対象読者は、ローカル LLM の運用に興味はあるものの最新版の変更点を追えていないエンジニアです。

この記事では、Linux の CLI から実際に手を動かせる範囲(インストールからプロンプトキャッシュの観測まで)を手順として示し、GUI や Apple Silicon に依存して CLI からは触れない機能は公式情報の紹介として明確に分けて扱います。

前提環境

本記事の実機検証は、クラウド Linux 環境(Ubuntu 24.04.4 LTS・amd64・CPU 4 コア・RAM 15.7GiB・GPU 無し)で行いました。GPU が無いため推論はすべて CPU で実行されています。systemd が動いていないコンテナのため、サービス登録ではなく手動でサーバーを起動しています。

この記事で解決できること

  • Ollama の最新版を Linux に入れて、モデルの取得から推論まで通す
  • prompt_eval_cached_count を使い、プロンプトキャッシュが効いているかを API レスポンスから判定する
  • v0.33 系から v0.34.0 で入った機能のうち、どれが CLI で試せてどれが試せないかを切り分ける

TL;DR

この手順を最後まで進めると、次の 3 つができるようになります。

  1. GPU 無しの Linux で Ollama v0.34.0 を動かし、397MB の軽量モデルで推論を回せる
  2. /api/generate のレスポンスから、プロンプトのうち何トークンがキャッシュから読まれたかを数値で確認できる(今回の実測では 27/46 から 45/46 に増え、プロンプト評価時間が 108.0ms から 29.7ms に短縮しました)
  3. Claude Desktop ゲートウェイなど GUI 依存の新機能について、自分の環境で試せるかどうかを事前に判断できる

手順の全体像

1. インストール

公式のインストールスクリプトを取得して実行します。

curl -fsSL https://ollama.com/install.sh -o install.sh
sh install.sh

最小構成の Linux では、ここで止まることがあります。今回の環境では zstd が未インストールのため、展開の直前でエラーになりました。

>>> Installing ollama to /usr/local
ERROR: This version requires zstd for extraction. Please install zstd and try again:
  - Debian/Ubuntu: sudo apt-get install zstd

配布物が .tar.zst 形式になっているため、zstd は必須の前提です。導入してから再実行します。

sudo apt-get install -y zstd
sh install.sh

2 回目は最後まで進みました。出力の後半に、この環境固有の警告が 2 行出ています。

>>> Downloading ollama-linux-amd64.tar.zst
>>> Creating ollama user...
>>> Creating ollama systemd service...
WARNING: systemd is not running
WARNING: Unable to detect NVIDIA/AMD GPU. Install lspci or lshw to automatically detect and install GPU dependencies.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.

systemd is not running は、サービスとしての自動起動が登録されないという意味です。次の手順で手動起動に切り替えます。

バージョンを確認します。

$ ollama --version
ollama version is 0.34.0

インストールスクリプトは常に最新版を取得するため、v0.33 系を狙っても実際に入るのは v0.34.0 でした。v0.33.3 の公開が 2026-09-02、v0.34.0 が 2026-09-05 と、3 日しか離れていません(出典: ollama/ollama Releases v0.34.0)。特定の版を検証したい場合は、バージョンを固定する手順を別途用意する必要があります。

2. サーバーを起動する

systemd が使えないため、nohup でバックグラウンド起動します。

nohup ollama serve > ollama-serve.log 2>&1 &
sleep 3 && cat ollama-serve.log

起動ログから、この環境の推論リソースが読み取れます。

Couldn't find '/root/.ollama/id_ed25519'. Generating new private key.
level=INFO source=routes.go:2022 msg="Listening on 127.0.0.1:11434 (version 0.34.0)"
level=INFO source=types.go:50 msg="inference compute" id=cpu library=cpu name=cpu total="15.7 GiB" available="15.1 GiB"
level=INFO source=routes.go:2072 msg="vram-based default context" total_vram="0 B" default_num_ctx=4096

inference compute が cpu になっており、GPU へのフォールバックではなく最初から CPU で動いていることが分かります。あわせて total_vram="0 B" のため、デフォルトのコンテキスト長が 4096 に決まっています。VRAM の量からコンテキスト長が自動決定される挙動なので、GPU の有無で既定値が変わる点は押さえておくと混乱しません。

疎通を確認します。

$ curl -s http://127.0.0.1:11434/api/version
{"version":"0.34.0"}
$ curl -s http://127.0.0.1:11434/
Ollama is running

3. モデルを取得して推論する

CPU だけで動かすため、軽量な qwen2.5:0.5b(397MB)を選びます。

$ time ollama pull qwen2.5:0.5b
pulling manifest
pulling c5396e06af29: 100% ▕████████████████▏ 383 MB/397 MB  156 MB/s
verifying sha256 digest
writing manifest
success
real    0m6.440s

397MB の取得が 6.44 秒で完了しました(進捗表示の転送レートは 156 MB/s と出ていますが、これは瞬間値です)。モデルの素性も確認しておきます。

$ ollama show qwen2.5:0.5b
  Model
    architecture        qwen2
    parameters          494.03M
    context length      32768
    embedding length    896
    quantization        Q4_K_M
  Capabilities
    completion
    tools

494.03M パラメータを Q4_K_M で量子化したモデルで、tools(ツール呼び出し)に対応していることが読み取れます。実際に推論させます。

$ time ollama run qwen2.5:0.5b "Ollamaとは何か、日本語で1文で説明してください。"
Ollamaは、日本語で「オールマコ」や「オールマコの」など、一般的に言及する言葉や単語を意味します。
real    0m6.425s

GPU 無しでも 6.4 秒で応答が返ってきた一方、内容は完全に誤りです。Ollama について尋ねたのに、存在しない語の説明が生成されました。0.5B クラスのモデルは、動作確認やパイプラインの疎通テストには十分速いものの、出力内容の正確性は期待できません。検証手順のリハーサル用と割り切り、内容の正しさを見たい場合は最低でも数 B 規模のモデルに切り替えるのが現実的です。

常駐状態も確認できます。

$ ollama ps
NAME            ID              SIZE      PROCESSOR    CONTEXT    UNTIL
qwen2.5:0.5b    a8b0c5157701    484 MB    100% CPU     4096       4 minutes from now

100% CPU と CONTEXT 4096 が、起動ログの内容とそのまま対応しています。SIZE が pull 時の 397MB より大きい 484MB になっているのは矛盾ではなく、ディスク上の量子化済みモデルサイズ(397MB)と、ロードしてコンテキストバッファ等を確保した後の実行時メモリ占有(484MB)という別の指標を見ているためです。

4. プロンプトキャッシュの効きを API から観測する

v0.33.3 のリリースノートには "Report cached prompt tokens"(キャッシュされたプロンプトトークンの報告)という項目があります(出典: ollama/ollama Releases v0.33.3)。この機能が v0.34.0 でどう見えるかを、同じプロンプトを 2 回投げる対照実験で確認しました。

プロンプトキャッシュは、直前の推論で計算済みの KV キャッシュを再利用し、同じ接頭辞の再計算を省く仕組みです。

/api/generate のレスポンスから、関連するフィールドだけを抜き出します。

1 回目(初回評価):

{
  "prompt_eval_count": 46,
  "prompt_eval_cached_count": 27,
  "prompt_eval_duration": 107985000,
  "eval_count": 313,
  "total_duration": 6553826582
}

2 回目(同一プロンプトを再送信):

{
  "prompt_eval_count": 46,
  "prompt_eval_cached_count": 45,
  "prompt_eval_duration": 29701000,
  "eval_count": 154,
  "total_duration": 3043390000
}

差分を整理します。

指標 1 回目 2 回目 変化
prompt_eval_cached_count / prompt_eval_count 27/46(58.7%) 45/46(97.8%) キャッシュ命中率が上昇
prompt_eval_duration 108.0ms 29.7ms 約 3.6 倍高速化
total_duration 6.55s 3.04s 短縮(後述の理由で単純比較は不可)

プロンプト評価フェーズだけを見ると 108.0ms が 29.7ms になり、約 3.6 倍の高速化でした。prompt_eval_duration はナノ秒単位で返るため、ミリ秒に直すときは 10^6 で割ります。

total_duration が半分以下になっている点には注意が必要です。2 回目は生成トークン数(eval_count)が 313 から 154 へ減っており、短縮幅のうちどれだけがキャッシュ由来かを切り分けられません。キャッシュの効果を語るなら、全体時間ではなく prompt_eval_duration を見るのが正確です。

もう 1 つ、初回から 46 トークン中 27 トークンがキャッシュ済みと報告された点が目を引きます。同一プロンプトの送信は初めてでも、チャットテンプレートやシステムプロンプトに当たる共通の接頭辞は既にモデルのロード時点でキャッシュに載っていると解釈できます。この数値を「初回は必ず 0 になる」と思い込んで読むと、命中率の計算を取り違えます。

キャッシュを前提に設計を組むなら、変わらない指示文を先頭に、可変部分を末尾に置くという定番の構造が、この数値の動きから裏づけられます。

5. CLI からは試せない v0.33 系から v0.34 系の機能

ここまでの手順は Linux の CLI だけで完結しますが、v0.33 系以降の目玉機能には GUI または Apple Silicon を前提とするものが含まれます。以下は今回の環境では実行できないため、公式情報の範囲で整理します。

機能 導入版 CLI での検証 制約
Claude Desktop ゲートウェイ統合 v0.33.0 不可 デスクトップアプリの GUI 操作が前提
MLX の Qwen3.8-Flash-Next 対応 v0.33.1 不可 非 MLX タグもあるが 125B クラスは検証環境のスペック上未検証
gemma4 の画像・音声対応 v0.33.3 不可 MLX エンジン上での提供
ChatGPT Desktop 統合 v0.34.0 不可 デスクトップアプリの GUI 操作が前提
プロンプトキャッシュのトークン報告 v0.33.3 可(手順 4) なし

Claude Desktop ゲートウェイ統合(v0.33.0)

公式リリースノートには "Developers can now easily configure Claude Desktop to seamlessly work with Ollama as a third-party gateway provider." と記載されています(出典: ollama/ollama Releases v0.33.0)。

公式ブログでは、Ollama アプリを開いて「Claude」を選びトグルを ON にすると、Ollama 側が Claude Desktop のサードパーティゲートウェイ設定を自動で行うと説明されています。Claude Desktop 側の設定ファイルを手で編集する必要はなく、トグルを OFF にすれば元の設定に戻るとされています。有効化するとローカルモデルと Ollama Cloud 経由のモデルの両方を Claude Desktop 上で選べるようになるとされていますが(出典: Ollama Blog: Claude Desktop)、Kimi-K2.6・GLM-5.2・DeepSeek・Qwen といった個別のクラウドモデル名は Ollama 本体の提供モデルファミリーとして確認できるものの(出典: ollama/ollama GitHub)、それらが実際に Claude Desktop のモデル選択 UI に並ぶ具体的な挙動は公式ブログに明記されておらず本記事でも未確認です。

v0.34.0 では同じパターンが ChatGPT Desktop へ拡張され、macOS の Ollama アプリから設定する形になったとリリースノートに記載されています。単発の連携ではなく、デスクトップ LLM クライアント全般のバックエンドになるという方向性が読み取れます。

MLX 関連(v0.33.1・v0.33.3)

v0.33.1 のリリースノートには "MLX: Qwen3.8 Flash Next support" が含まれます(出典: ollama/ollama Releases v0.33.1)。Qwen3.8-Flash-Next はタグ名 125b-a6b が示す総パラメータ 125B・アクティブ 6B の MoE モデルで、コンテキスト長は 256K とされています(出典: ollama.com/library/qwen3.8-flash-next/tags)。配布タグには MLX 版(mlx / mlx-bf16)に加えて nvfp4 / q4_K_M / q8_0 / bf16 といった非 MLX タグも存在し、MLX 限定ではありません。ただし今回の検証環境(CPU のみ・GPU なし・RAM 15.7GiB)では 125B クラスのモデルを動かすのは現実的でないため、非 MLX タグでの実行可否は本記事では未検証です。

v0.33.3 の "gemma4 now supports images and audio on MLX engine" も同じく MLX エンジン上の機能です(出典: ollama/ollama Releases v0.33.3)。Linux から Ollama のマルチモーダル対応を評価しようとすると、この 2 つは対象外になります。

トラブルシューティング

インストールが requires zstd for extraction で止まる

配布物が .tar.zst のため、展開に zstd が必要です。sudo apt-get install -y zstd(Debian / Ubuntu 系)を実行してからインストールスクリプトを再実行します。最小構成のコンテナイメージでは未導入のことが多く、手順 1 の実例がこれに当たります。

WARNING: systemd is not running が出てサービスが起動しない

コンテナなど systemd が動作しない環境では、サービス登録がスキップされます。nohup ollama serve > ollama-serve.log 2>&1 & で手動起動し、curl -s http://127.0.0.1:11434/api/version が JSON を返すことで疎通を確認します。ログをファイルに落としておくと、推論デバイスやコンテキスト長の既定値を後から追えます。

prompt_eval_cached_count がレスポンスに見当たらない

このフィールドは v0.33.3 以降で報告されるようになったものです。ollama --version が古い場合は更新してから再確認します。

応答は速いのに内容が正しくない

0.5B クラスの軽量モデルでは起こりえます。手順 3 の実行結果がその例で、応答自体は 6.4 秒で返るものの説明は事実と異なりました。疎通確認とモデル差し替えを分けて考えます。

検証できなかった範囲

この記事で実機確認したのは、インストール・起動・pull・CLI 推論・プロンプトキャッシュの観測までです。次の項目は今回の環境では確認していません。

  • Claude Desktop / ChatGPT Desktop ゲートウェイの実際の GUI 操作と挙動
  • MLX での Qwen3.8-Flash-Next および gemma4 の画像・音声推論(Apple Silicon 依存)
  • v0.33.3 時点そのものでの prompt_eval_cached_count の挙動(今回の確認は v0.34.0 での存続確認に留まります)
  • v0.33.3 の "Honor GGUF model defined default parameters" の対照実験

関連記事

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?