この記事は、実際に使って確かめた記録ではありません。この記事は公式の文書や論文を読んでまとめたものです。

3行でいうと

  • 公式の入手方法は、ワンライン導入、アプリ、パッケージ管理、ビルド済み実行ファイル、Docker、ソースからのビルドの6つです。
  • サーバーは既定で127.0.0.1の8080番で待ち受け、OpenAI互換のAPIとWeb画面が使えます。
  • 文脈の長さ(-c)は既定でモデルの値を使い、GPUの割り当て(-ngl)は自動です。
  • Ollamaの公式READMEは、対応するバックエンドとしてllama.cppを挙げています。

先に結論

llama.cppは、「モデルのファイル(GGUF形式)を1つ用意して、1コマンドで動かす」ための道具です。公式のREADMEが掲げる目標は、最小限の準備で、幅広い機器の上で高い性能の推論を行うことです。

見立てです。モデルの管理や自動の面倒見まで任せたい人にはOllamaやLM Studioが楽で、設定を一つずつ自分で決めたい人、サーバーとして細かく調整したい人にはllama.cppが向くと思います。どちらが速いかは、今回の資料からは言えません。

前提:言葉の整理

入手:公式が挙げる6つの方法

READMEの「Quick start」とインストールの文書によると、方法は次のとおりです。

  1. ワンライン導入:curl -LsSf https://llama.app/install.sh | sh(Windowsはpowershell版)。環境を検出して、最新の llama 実行ファイルを入れます。
  2. アプリ:llama.appから、MacとWindows向けの「Llama」アプリ(メニューバー常駐)を入れる方法です。同サイトは、llama.cppのチームとHugging Faceが作っていると説明し、ダウンロードは約1MBとしています。
  3. パッケージ管理:Homebrew(brew install llama.cpp、MacとLinux)、Winget(Windows)、conda-forge、MacPorts、Nix。conda-forgeはCUDA、Vulkan、Apple Metalの版を出している、とあります。
  4. ビルド済みの実行ファイル:GitHubのリリースページから落とします。
  5. Docker:公式のイメージがあります。
  6. ソースからのビルド:CMakeを使います。macOSではMetal(AppleのGPUの仕組み)が既定で有効で、無効にするにはビルド時に -DGGML_METAL=OFF、実行時に --n-gpu-layers 0 と書かれています。
対応する演算の道具(バックエンド)一覧

READMEの表です。Apple Siliconは「first-class citizen(第一級)」と書かれ、ARM NEON、Accelerate、Metalで最適化されている、とあります。

道具 対象
Metal Apple Silicon
CUDA NVIDIAのGPU
HIP AMDのGPU
Vulkan 各種GPU
SYCL IntelのGPU
OpenCL Adreno GPU
Hexagon Snapdragon
CANN Ascend NPU
MUSA Moore ThreadsのGPU
WebGPU すべて
RPC すべて(別のマシンの機器を使う)

READMEには、ほかにBLAS、BLIS、IBM zDNN、OpenVINO(開発中)、VirtGPU、ZenDNNも挙がっています。NVIDIA、AMDなどの機器でどこまで動くかは、機器ごとの文書を見てください。この記事では、確認していません。

コマンド名について

2026年10月8日に読んだ公式資料には、2つの呼び方が混ざっています。

llama.appのインストール文書は、「どの方法で入れても同じ道具一式(llama cli、llama serve ほか)が入る」としています。ただ、2つの名前が同じ実行ファイルを指すのかは、資料から断定できません。この記事では、llama-server のREADMEの内容を「サーバーのオプション」として扱い、手元で実行するときは --help で確かめてください。

動かす:公式の最短手順

公式文書の例です。この記事では、実行していません。

# 端末で対話する(初回に Hugging Face から取得、以後はキャッシュ)
llama cli -hf unsloth/gemma-4-E4B-it-GGUF:Q4_K_M

# OpenAI互換のAPIサーバーと Web 画面を立てる
llama serve -hf ggml-org/gemma-4-e4b-it-GGUF:Q4_0

# 手元の GGUF ファイルを使う
llama serve -m my-model.gguf

llama.appのクイックスタートは、Gemma 4 E4Bの4ビット版を「約6GBのメモリ、文脈16kトークン」で動かす例だとしています。サーバーを立てたら、ブラウザで http://localhost:8080 を開くとWeb画面が出ます。

-hf の書き方は、<ユーザー>/<モデル>[:量子化] です。サーバーのREADMEによると、量子化を省くとQ4_K_Mが選ばれ、それがなければリポジトリの最初のファイルになります。画像用のファイル(mmproj)があれば自動で一緒に取得されます。

サーバーの主なオプション

サーバーのREADMEは、オプションの一覧が自動生成されたものだと明記しています。次は、主なものです。

オプション 意味 既定値
-m / -hf モデルのファイル/Hugging Faceの指定 なし
-c, --ctx-size 文脈の長さ(トークン) 0(モデルの値)
-ngl, --gpu-layers GPUに置く層の数。数、auto、all auto
-fit メモリに収まるよう、未指定の設定を調整 on
-fa, --flash-attn 計算を省メモリ・高速にする方式 auto
-np, --parallel 同時に処理する枠(スロット)の数 自動
-ctk / -ctv KVキャッシュの精度(f16、q8_0、q4_0など) f16
--host / --port 待ち受けるアドレスと番号 127.0.0.1 / 8080
--api-key APIキーを必須にする なし
--embedding 埋め込み専用で動かす 無効
--reasoning-budget 考える長さの上限 -1(無制限)
--metrics 監視用の数値を出す 無効
--sleep-idle-seconds 使われない時間の後にモデルを手放す -1(無効)

読み方の補足

使えるAPI

サーバーのREADMEによると、次の窓口があります。

そのほか、READMEは「並列デコード」「連続バッチ処理(複数の依頼を効率よくまとめて処理する)」「JSONの形を指定した出力」「関数呼び出し」「投機的デコード(小さなモデルで先読みして高速化)」「Web画面」を機能として挙げています。

複数のモデルを切り替える(ルーターモード)

サーバーのREADMEによると、モデルを指定せずに起動すると「ルーター」になります。依頼の model の名前に応じて、モデルを必要なときに読み込み、使われないものを手放します。

Ollamaとの違い

llama.cppの文書には、Ollamaとの比較は書かれていません。以下は、Ollamaの公式文書(FAQ、READMEなど)とllama.cppの文書を、並べて読んだものです。

観点 llama.cpp Ollama
位置づけ 推論の土台。自分でモデルのファイルや設定を指定 モデルの取得・管理つきのアプリ。READMEは、対応バックエンドとしてllama.cppを挙げる
モデルの指定 GGUFファイル、またはHugging Faceのリポジトリ ollama pull 等でモデルを管理(置き場は ~/.ollama/models)
既定の文脈 モデルの値(-c 0)。収まらなければ調整 公式文書は、VRAM(GPUのメモリ)の量で変わると説明(24GiB未満は4k、24〜48GiBは32k、48GiB以上は256k)。FAQには「既定は4096」の記述も残る
並列処理 -np(自動)。文脈は枠で共有 OLLAMA_NUM_PARALLEL(既定1)。並列数だけ文脈が増える
複数モデル ルーターモード(既定で同時4) 同時に載せる数は OLLAMA_MAX_LOADED_MODELS(GPUの数×3が既定)
メモリから手放す --sleep-idle-seconds(既定は無効) 既定で5分後(OLLAMA_KEEP_ALIVE)
設定のしかた コマンドの引数と環境変数(LLAMA_ARG_…) 環境変数(OLLAMA_…)、/set parameter、Modelfile

つまり、同じllama.cppの系統でも、既定値の考え方が違います。Ollamaは「メモリに応じて自動で決める」、llama.cppは「引数で指定、足りなければ調整する」です。

なお、Ollamaのmainブランチのソース(llm/llama_server.go)には、llama-serverを起動するときの引数として -c(文脈の長さ×並列数)と -np(並列数)を組み立てる箇所があります。READMEの記述と合わせると、Ollamaはllama.cppのサーバーを内部で使っていると読めます。ただしこの記事ではソースの全体を追っておらず、リリース版でも同じかは確認していません。

選び方の見立て

見立てです。

つまずきやすい点

気をつけること

出典

更新履歴