ChatGPTやClaudeはクラウド経由で手軽に使える。しかし、プライバシーが気になる場面やオフラインでも使いたい場面は確実に存在する。そんなときに選択肢になるのが、自分のPCでAIを動かす「ローカルLLM」という方法。その実行エンジンとして最も広く使われているのがllama.cppだ。
名前は聞いたことがあるけれど、結局何なのかよくわからない——そんな人は多いのではないですか? この記事では、llama.cppの仕組みから導入の流れ、必要なPC環境まで、技術的な前提知識がなくても理解できるように解説していく。
- llama.cppはGPUなしでもLLMを動かせるオープンソースの推論エンジン
- OllamaやLM Studioの内部でも使われており、ローカルLLMの基盤技術にあたる
- GGUF形式と量子化の概念を理解すれば、モデル選びで迷わなくなる
llama.cppとは何か——ローカルLLMを動かすオープンソースエンジン
llama.cppは、LLM(大規模言語モデル)をローカル環境で実行するためのオープンソースの推論エンジン。C/C++というプログラミング言語で書かれており、MITライセンスで公開されている。
もともとはMetaが公開したLlamaモデルを個人のPCで動かす目的で開発が始まった。開発者はGeorgi Gerganov氏。現在ではLlama系に限らず、GGUF形式(後述)に変換されたモデル全般に対応しており、オープンソースコミュニティで最も活発なLLM推論プロジェクトの一つとなっている。
最大の特徴は、GPUがなくてもCPUだけでLLMを動かせる点にある。もちろんNVIDIA GPUによるCUDAアクセラレーションにも対応しており、GPUを搭載していれば大幅な高速化が可能。つまり、手持ちのPCスペックに応じて柔軟に使えるエンジンと言える。
「推論エンジン」という言葉に馴染みがない人もいるかもしれない。推論(Inference)とは、学習済みのAIモデルに入力を与えて回答を生成する処理のこと。llama.cppはこの推論処理に特化したソフトウェアであり、モデルの学習(トレーニング)機能は持っていません。
llama.cppが注目される3つの理由
ローカルLLMの実行手段はいくつか存在するが、その中でllama.cppがここまで広く使われているのはなぜか。理由を3つに整理した。
GPU不要でLLMを試せる参入障壁の低さ
ローカルLLMと聞くと「高価なGPUが必要」と思われがち。しかしllama.cppはCPU実行に対応しているため、GPU非搭載のノートPCや数年前のデスクトップでもLLMを動かせる。速度はGPU実行に比べて遅くなるものの、「まず試してみる」ハードルが格段に低いのは大きな魅力でしょう。
当サイトの検証環境(RTX 5060 Ti / i7-14700F / 96GB RAM)では、llama3.1:8bが79.5 tokens/secで動作している。GPU搭載環境ならこの程度の速度が出るが、CPU実行では大幅に遅くなる点は理解しておいてください。
量子化によるモデル軽量化
LLMのモデルファイルは通常、数GB~数十GBの巨大なサイズになる。llama.cppは量子化(Quantization)という技術に対応しており、モデルの精度をわずかに落とす代わりに、ファイルサイズとメモリ使用量を大幅に削減できる仕組み。
量子化のレベルは自分で選択可能。品質を重視するか、軽さを重視するかのトレードオフを自分でコントロールできるのがポイントですね。量子化の詳細は次のセクションで解説する。
OllamaやLM Studioの「裏側」
ローカルLLMを使ったことがある人なら、OllamaやLM Studioといったツール名を聞いたことがあるはず。実はこれらのツールは内部でllama.cppを利用している。つまり、Ollamaでモデルを動かしている人は、すでに間接的にllama.cppの恩恵を受けているということ。
Ollamaについては別記事で詳しく解説しているので、そちらも参考にしてほしい。llama.cppとOllamaの関係は、この記事のFAQセクションでも整理した。
GGUF形式と量子化——llama.cppのモデル管理を理解する
llama.cppを理解するうえで避けて通れないのが、GGUF形式と量子化という2つの概念。ここではそれぞれをかみ砕いて説明していく。
GGUF形式とは
GGUF(GGML Universal Format)は、llama.cppが採用しているモデルファイル形式。旧形式のGGMLから進化したもので、モデルの重みデータだけでなくメタデータ(モデルの設定情報や語彙データなど)を1つのファイルにまとめて格納できる構造になっている。
GGUF形式の利点は、ファイル1つだけで完結する手軽さ。ダウンロードしたGGUFファイルをllama.cppに読み込ませるだけで、すぐに推論を始められる。他の形式(SafeTensorsやPyTorchの.bin形式など)では複数ファイルの管理や変換作業が必要になるケースがあるが、GGUFならその手間がかからない。
量子化レベルの読み方
Hugging Face(AIモデルの共有プラットフォーム)でGGUFモデルを探すと、モデル名に「Q4_K_M」「Q5_K_S」「Q8_0」といった記号がついているのを目にする。これが量子化レベルを示す表記。
基本的な考え方はシンプルで、Qの後ろの数字が大きいほど高品質・大サイズ、小さいほど軽量・品質低下という関係になっている。
| 量子化レベル | 特徴 | 用途の目安 |
|---|---|---|
| Q8(8ビット) | 高品質だがファイルサイズ大。元モデルに近い精度 | VRAM・RAMに余裕がある環境向け |
| Q5_K_M / Q5_K_S(5ビット系) | 品質と軽さのバランスが良い | 品質重視で適度に軽量化したい場合 |
| Q4_K_M(4ビット系) | 多くのユーザーが選ぶバランス型 | VRAM 12〜16GB環境での標準的な選択肢 |
| Q3 / Q2(3〜2ビット) | 大幅に軽量だが品質低下が目立つ | VRAM 8GB以下で大きなモデルを試したい場合 |
「K」はK-quant(K系量子化)を意味し、従来の均一量子化より精度の劣化を抑える手法。「M」はMedium(中間)、「S」はSmall(小)を示しており、同じビット数でもファイルサイズと品質に若干の差がある。
初心者が迷ったら、まずQ4_K_Mを選んでおけば大きな失敗はない。品質に不満を感じたらQ5以上に上げ、メモリ不足で動かなければQ3以下に下げる——この調整の感覚が、ローカルLLMを使いこなす第一歩になる。
llama.cppの導入方法——全体の流れを把握する
llama.cppを使い始める方法は、大きく分けて2つ存在する。
方法1: Ollama等のラッパーツール経由(初心者向け)
最も手軽なのは、OllamaやLM Studioなどのラッパーツールを使う方法。これらのツールはllama.cppを内部に組み込んでおり、インストール後すぐにモデルのダウンロードと実行ができるようになっている。
コマンドライン操作に不慣れな人や、とにかく早くローカルLLMを体験したい人にはこちらがおすすめ。Ollamaの導入方法については別記事で詳しく解説している。
方法2: llama.cppを直接使う(中級者以上向け)
llama.cppを直接使う場合、おおまかな流れは以下の3ステップになる。
- llama.cppのビルド済みバイナリまたはソースコードを取得する
- Hugging FaceからGGUF形式のモデルファイルをダウンロードする
- コマンドを実行して推論を開始する
直接使うメリットは、推論パラメータの細かい制御ができること。コンテキスト長(一度に処理できるテキストの長さ)の指定、GPUへのレイヤー割り当て数の調整、サーバーモードでのAPI提供など、ラッパーツールでは触れない設定にアクセスできる。
また、llama.cppの最新機能をいち早く試せるのも利点の一つ。OllamaやLM Studioがllama.cppの最新版を取り込むまでにはタイムラグがあるため、新しい量子化手法や最適化が追加された直後に試したい場合はllama.cpp直接操作が必要になる。
llama.cppを快適に動かすためのPC環境の考え方
llama.cppはCPUでもGPUでも動作するが、快適に使うために必要なスペックは実行方式によって異なる。ここでは考え方の基本を整理した。
CPU実行の場合
CPU実行ではモデル全体がRAM(メインメモリ)に展開される。そのため、RAMの容量がボトルネックになりやすい。コア数が多いCPUほど並列処理で有利になるが、体感速度への影響はRAM容量のほうが大きいケースが多い。
注意したいのは、OS自体もRAMを消費するという点。たとえばRAMが16GBのPCでは、OSや常駐アプリに数GB取られた残りでモデルを動かすことになる。
GPU実行の場合
GPU実行で最も重要なスペックはVRAM(ビデオメモリ)の容量。モデルの重みデータをVRAMに展開するため、VRAMが足りなければモデルを読み込めないか、一部をRAMに退避させる処理(オフロード)が発生して速度が低下する。
NVIDIA GPUのCUDA対応が最も互換性が高く、AMD GPU(ROCm)やApple SiliconのMac(Metal API)にも対応している。VRAMやCUDAコアについては別記事で基礎から解説しているので、GPU選びの基準を知りたい人はそちらを参考にしてください。
スペック別のAI用途ガイドライン
以下の表は、llama.cppでモデルを動かす際の「おおよその目安」として参考にしてほしい。実際の動作はモデルの種類・量子化レベル・コンテキスト長の設定によって変動する。
| 利用可能なメモリ(VRAM or RAM) | 動かせるモデルの目安 | 備考 |
|---|---|---|
| 8GB以下 | パラメータ数7B〜8Bクラスの量子化モデル(Q4以下推奨) | GPU 8GBならギリギリ。CPU実行の場合、RAM 16GB中の空き領域で動かすイメージ |
| 12〜16GB | 7B〜14BクラスをQ4_K_M以上で快適に実行可能 | VRAM 16GBなら26Bクラスの量子化モデルも選択肢に入る |
| 24GB以上 | 26B〜32Bクラスの量子化モデルが実用的に動作 | コンテキスト長を伸ばす余裕も生まれる |
| 48GB以上(RAM含む) | 70Bクラスの量子化モデルに挑戦可能 | GPU単体では到達しにくく、RAM併用やマルチGPU構成が現実的 |
当サイトの検証環境(RTX 5060 Ti / i7-14700F / 96GB RAM)では、8Bクラスのモデル(llama3.1:8b)で79.5 tokens/sec、14Bクラス(phi4:14b)で44.1 tokens/secを記録している。16GB VRAMがあれば、日常的なチャット用途には十分な速度が出ると考えてよいでしょう。
まとめ
llama.cppは、ローカルLLMを支える基盤技術。直接使わなくても、OllamaやLM Studioを通じてその恩恵を受けている人は多い。
押さえておくべきポイントは3つ。GGUF形式はllama.cpp用のモデルファイル形式であり、1ファイルで完結する手軽さが特徴。量子化はモデルの品質とサイズのトレードオフを自分で調整する仕組みで、迷ったらQ4_K_Mが安定した選択肢になる。そして必要なメモリ量はモデルのパラメータ数と量子化レベルで決まるため、自分のPC環境と照らし合わせてモデルを選ぶことが重要。
まずはOllama経由でローカルLLMを体験してみてほしい。そこから「もっと細かく制御したい」「最新機能を試したい」と感じたら、llama.cppの直接操作に進むのが自然なステップになる。
よくある質問(FAQ)
Q: llama.cppとOllamaの違いは?
A: llama.cppはLLMの推論処理を行うエンジン本体。Ollamaはそのエンジンをラップして、モデルのダウンロードや管理、実行をワンコマンドでできるようにしたツール。関係性としては「エンジンとその車体」に近い。細かい制御をしたいならllama.cpp直接、手軽さを重視するならOllamaという使い分けになる。
Q: llama.cppはWindowsでも使えますか?
A: Windows、macOS、Linuxのいずれにも対応している。Apple SiliconのMacではMetal APIによるGPUアクセラレーションが利用でき、効率的に動作する。Windows環境ではNVIDIA GPUのCUDA対応が最も安定しており、セットアップも比較的スムーズ。
Q: GPUなしでもllama.cppは動きますか?
A: CPU実行に対応しているため、GPUがなくても動作する。ただし生成速度はGPU実行と比べて大幅に遅くなる。たとえばGPUで数十tokens/sec出る処理が、CPUでは数tokens/secになるケースも珍しくない。「まず動かしてみたい」段階ではCPU実行で十分だが、日常的に使うならGPU搭載環境への移行を検討してほしい。
当サイトはAmazonアソシエイト・プログラムの参加者です。Amazonのアソシエイトとして、当サイトは適格販売により収入を得ています。
本記事は AIハードウェア図鑑 編集部 が記載時点の情報をもとに執筆。製品アップデートや第三者ベンチマーク・価格・対応ランタイム等の変動で評価が変わる可能性がある。一定期間経過した内容は再検証を推奨する。

