llama.cppとは:ローカルAI推論の基本と主要機能

CHATGPT / AIChatGPTなどの生成AIを活用して運営・記事制作・更新を行っています。制作方針

llama.cppの仕組み、GGUF、量子化、CPU・GPUオフロード、ローカル推論の流れと主要機能を、初めて使う人向けに整理して解説します。

GGUFをllama.cppがCPUとGPUで処理し、チャットとローカルAPIへ出力する仕組みの図解

この記事でわかること

llama.cppは、GGUF形式のモデルをローカル環境で推論するためのC/C++プロジェクトです。本記事では、公式READMEと仕様書に確認できる機能だけに絞り、GGUF、量子化、CPU・GPU利用、CLIとAPIサーバーの関係を整理します。

  • llama.cppが担う範囲
  • GGUFと量子化を分けて考える理由
  • CLIとllama-serverの最小実行例

確認日時: 2026年8月12日 23:20(Asia/Tokyo)
対象版: llama.cpp b10375(commit ba360efe1f574ebae727aad64112d18ecedca85a)
検証区分: 公式repository、release、仕様書を照合した机上調査です。モデルの取得、ビルド、推論、速度、消費メモリ、出力品質は実測していません。

llama.cppとは

llama.cppは、少ない依存関係で大規模言語モデルなどを推論することを目標にしたオープンソースのC/C++実装です。Apple SiliconではARM NEON、Accelerate、Metalを利用でき、ほかにもCUDA、HIP、Vulkan、SYCLなど複数のバックエンドが公式READMEに掲載されています。

「どの環境でも同じ速度になる」「すべてのモデルを読み込める」という意味ではありません。対応するモデル構造、GGUFの内容、ビルド時のバックエンド、メモリ容量を個別に確認する必要があります。

GGUF・量子化・実行エンジンの違い

要素役割確認すること
GGUFテンソルとメタデータを保持するファイル形式モデル構造、tokenizer、chat templateなどのmetadata
量子化重みなどを低いbit幅で表現し、容量や計算量を調整量子化方式、モデル、用途ごとの品質と速度
llama.cppGGUFを読み込み、CPUや対応GPUで推論対象版、backend、起動引数、実測結果

GGUFの公式仕様では、GGUFはGGML系の推論でモデルを配布・読み込みやすくする拡張可能な形式として定義され、memory mappingに対応する設計が説明されています。

量子化はGGUFそのものと同義ではありません。公式READMEは1.5〜8-bitの整数量子化を掲げていますが、「bit数が同じなら品質も同じ」「特定方式が常に最良」とは判断できません。モデル、量子化手法、prompt、評価taskを固定して比べます。

CPUとGPUをどう使うか

llama.cppはCPUだけでも利用でき、対応環境ではGPUへ計算の一部または全部を移せます。CPUとGPUを併用するhybrid inferenceも公式の機能です。ただし、実際に載せられる量はモデル、context、KV cache、GPU memoryによって変わります。

GPUを使えば必ず速くなるとは限りません。小さいmodel、短いprompt、転送の多い構成では差が小さいこともあります。速度を比較するときは、同じGGUF、context、prompt長、生成token数、backendで測定します。

CLIで試す最短例

公式READMEには、Hugging Face上の公式例を直接指定する次の形が掲載されています。初回はmodel dataがdownloadされるため、容量、license、配布元を先に確認してください。

llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF

手元のGGUFを明示する場合は-mを使います。

llama-cli \
  -m /absolute/path/to/model.gguf \
  -p "日本語で短く自己紹介してください" \
  -n 128

引数は版によって変わり得ます。インストールしたbinaryのllama-cli --helpと、対象releaseへ固定した公式READMEを優先してください。

ローカルAPIとして使う

llama-serverはchat completionsなどのOpenAI互換endpoint、Web UI、並列decode、continuous batchingを提供します。互換性はOpenAI API全体の完全な複製を意味しないため、接続するapplicationが使うparameterとresponseを確認します。

llama serve \
  -hf ggml-org/Qwen3.5-0.8B-GGUF \
  --host 127.0.0.1 \
  --port 8080

--host 127.0.0.1を明示すれば、この例では同じ端末からだけ接続できます。外部公開にはTLS、認証、rate limit、log方針を別途設計してください。現在の引数とendpointはb10375のllama-server READMEで確認できます。

導入前に確認すること

  • 対象モデル構造が利用中のllama.cpp版で対応しているか
  • GGUFの配布元、license、file hashを確認したか
  • model本体に加え、contextやKV cacheを含むmemory余裕があるか
  • chat templateとprompt formatがmodelに合っているか
  • 速度や品質を、同じ条件の実測で比較したか

情報源と未検証範囲

未検証: 個別モデルの対応可否、各量子化の品質差、CPU・GPU別の速度、必要RAM・VRAM、長時間運転、API clientとの互換性は確認していません。導入先で対象binaryのhelpとmodel cardを確認し、実測してください。

表を拡大

左右にスワイプして読めます