# llama.cpp

ChatGPT APIの代わりになるオープンソース。量子化してCPUでもモデルを動かす。多くのツールの土台になる。

- ossalt.jp のページ: https://ossalt.jp/tools/llama-cpp/
- 公式サイト: https://github.com/ggml-org/llama.cpp
- GitHub: https://github.com/ggml-org/llama.cpp
- 代わりになるSaaS: ChatGPT API
- カテゴリ: AI・LLM基盤
- ライセンス: MIT（許容型）
- 画面の日本語翻訳: 未確認
- 日本語のドキュメント: 未確認
- Dockerでの導入: あり
- GitHubのスター: 133,663（直近32日間で+3,159）
- 最終コミット: 2026-11-07
- OpenSSF Scorecard: 未評価

## llama.cppとは

llama.cpp（ラマ・シーピーピー）は、大規模言語モデル（LLM）を自分のパソコンやサーバーで動かすための実行エンジンです。C/C++で書かれていて、モデルを小さく圧縮（量子化）することで、高価なGPUがなくても、普通のパソコンのCPUやメモリで動かせることが特徴です。多くのAIツールの土台として使われています。公式は、最小限の準備で、幅広い機器の上で高い性能を出すことを目標にしていると説明しています。

### できること

- **CPUでのモデルの実行**：GPUがないパソコンでも、モデルを動かせます。外部のライブラリーを必要としない、C/C++だけの実装です。
- **幅広い機器に対応**：Apple Silicon（ARM NEON・Accelerate・Metal）、x86のCPU（AVX・AVX2・AVX512・AMX）、RISC-Vなどを使って、速くします。GPUは、NVIDIA（CUDA）、AMD（HIP）、Moore Threads（MUSA）に対応し、VulkanとSYCLも使えます。
- **GPUとCPUの併用**：モデルが、GPUのメモリより大きい場合でも、一部だけをGPUで動かす（ハイブリッドの推論）ことができます。
- **量子化されたモデルの利用**：モデルを小さくした形式（GGUF）で配布されているものを、少ないメモリで動かせます。1.5〜8ビットの量子化に対応します。
- **APIサーバー（llama-server）**：付属のサーバーを起動すると、OpenAIのAPIに近い形（チャット、レスポンス、埋め込み）で、ほかのアプリからモデルを呼び出せます。AnthropicのMessages APIに近い形の呼び出し、再ランキング、複数ユーザーの同時処理、画面（Web UI）も備えています。
- **画像を扱えるモデル**：画像と文章を扱うモデル（VLM）でも使えると、READMEで説明されています。

### 導入の方法

READMEが案内している方法は、次のとおりです。

- **インストール用のスクリプト**：公式サイト（llama.app）の案内に従って入れます。
- **Docker**：公式の画像が、GitHubのコンテナレジストリで配布されています。
- **ビルド済みのファイル**：リリースのページから、自分の環境用のファイルを取得します。
- **ソースからのビルド**：CMakeで作ります。CPU向けのほか、CUDA・Metal・Vulkan・SYCLなどの対象を選べます。

入れたあとは、Hugging Faceにあるモデルを、指定して直接取得しながら実行できます。READMEには、`llama cli -hf （モデル名）` で対話し、`llama serve -hf （モデル名）` でOpenAI互換のAPIサーバーを起動する例があります。

### APIサーバーとして動かす

- 起動すると、初期設定では自分のパソコンの `127.0.0.1` の8080番で待ち受けます。同じ住所を、ブラウザで開くと、画面（Web UI）が使えます。
- **Dockerで動かす場合**は、`server` の画像を使い、`--host 0.0.0.0 --port 8080` を付けます。モデルは、手元のフォルダーを割り当てます。設定は、環境変数（例：`LLAMA_ARG_MODEL`、`LLAMA_ARG_CTX_SIZE`、`LLAMA_ARG_N_PARALLEL`）でも指定できます。
- **GPUを使う場合**は、GPU対応の画像と、`--n-gpu-layers` の指定が必要です。公式は、GPU対応の画像について「ビルドが通ることまでしか、自動の試験をしていない」と説明しています。必要な環境（CUDAなど）が違う場合は、自分でビルドします。
- OpenAI互換のAPIについて、公式は「OpenAIの仕様との互換性を強くは主張しないが、経験上、多くのアプリで使える」と書いています。**使うアプリとの組み合わせは、試してから決めてください。**

### Ollamaとの関係

[Ollama](/tools/ollama/)は、モデルのダウンロードと実行を、コマンド1つで済ませられるようにした、使いやすいツールです。llama.cppは、そうしたツールの内部でも使われる、より土台に近い部品です。細かい設定を自分で調整したいならllama.cpp、手軽さを優先するならOllamaが向いています。

### 必要なメモリの目安

動かせるモデルの大きさは、メモリの量で決まります。一般に、使うモデルのファイルの大きさより、余裕のあるメモリが必要です。大きなモデルほど多くのメモリが必要で、量子化で小さくするほど、必要なメモリは減ります。公式の説明に、モデルごとの必要なメモリの一覧はありません。最初は小さめのモデルで試しましょう。

### 向いている人・向かない人

- **向いている**：モデルの動かし方を細かく調整したい人。GPUがない、または小さいGPUの環境で、モデルを試したい人。自分のアプリに、OpenAI互換のAPIを置きたい人。
- **向かない**：コマンドの操作に慣れていない人。多数の利用者に高速で提供したい場合は、[vLLM](/tools/vllm/)のほうが向いています。

### 注意点

- **量子化すると、精度は少し落ちます。** 小さくするほど、回答の質が下がる傾向があります。用途に足りるかを試してから決めてください。
- コマンドでの操作が中心です。画面で使いたい場合は、付属のWeb UIか、[Open WebUI](/tools/open-webui/)などと組み合わせます。
- 使うモデルごとに利用条件（ライセンス）が異なります。llama.cpp自体はMITライセンスです。
- 開発が活発で、オプションの名前や使い方が変わることがあります（たとえば、Web UIの設定の名前に、古い名前と新しい名前が両方あります）。手順は、導入する版の公式の説明で確認してください。

[ChatGPT APIの代替](/alternatives/chatgpt-api/)のページで、ほかの候補も比べられます。

### 出典と確認の範囲

公式のREADME・LICENSE・公式ドキュメント（Docker、サーバー、ビルド）を、2026-10-25に確認して書いています。実際にモデルを動かしての速度・必要なメモリ・回答の質の検証は、していません。機能とオプションは、版によって変わるため、導入前に[公式のリポジトリ](https://github.com/ggml-org/llama.cpp)で最新の情報を確認してください。

## よくある質問

**llama.cppは日本語で使えますか？**

当サイトでは、画面の日本語翻訳や日本語のドキュメントを確認できていません。翻訳を別の場所で管理している場合もあるため、日本語に対応していないとは限りません。導入前に実際の画面で確かめてください。

**llama.cppはDockerで動かせますか？**

リポジトリで、Docker用のファイルや公式のコンテナイメージの案内を確認できています。手順は公式のドキュメントに従ってください。

**llama.cppは無料で使えますか？ 業務で使ってもよいですか？**

ライセンスはMIT（許容型）です。制限の少ない「許容型」のライセンスで、社内の業務で使うことも、改変することも、広く認められています。配布するときは、著作権の表示などの条件を守る必要があります。自分のサーバーで動かす場合も、サーバー代と、アップデートやバックアップなどの運用の手間がかかります。また、一部の機能を有料版だけで提供しているツールもあります。

**llama.cppの開発は続いていますか？**

最後の更新は1日前です。過去12か月のリリースは1000回です。GitHubのスターは、直近32日間で3,159増えています。

**llama.cppのセキュリティの評価は？**

OpenSSF Scorecard の評価はまだありません（評価がないことは、安全・危険のどちらも意味しません）。脆弱性の報告窓口（SECURITY.md）があります。導入後は、セキュリティの更新を確実に適用してください。

**ChatGPT APIの代わりになる、llama.cpp以外のツールは？**

当サイトでChatGPT APIの代わりとして掲載しているのは、今のところllama.cppだけです。

---
データ: ossalt.jp（2026-11-08時点。GitHubの公開データとリポジトリの自動調査による）。「未確認」は「非対応」という意味ではありません。導入前に公式の情報を確認してください。
