上級 11 分Backends

llama.cpp と vLLM と Exllama

端的な回答

llama.cppは、個人利用向けのポータブルなエンジン(GGUF、CPU、Mac、あらゆるメーカーのGPU)であり、OllamaとLM Studioのエンジンでもあります。vLLMは、GPU上で継続的バッチ処理を行い、多数のユーザーに同時にサービスを提供するために作られています。Red Hatの測定では、A100上でvLLMが最大793トークン/秒だったのに対し、Ollamaは41トークン/秒でした。ExLlamaV2はアーカイブされており、開発はExLlamaV3で続けられています。

Ollama、LM Studio、または Jan の下には推論エンジンがあり、このエンジンが受け入れられる形式、利用可能なハードウェア、および負荷下での動作を決定します。本ガイドは、llama.cpp、vLLM、ExLlama、SGLang を、それぞれのリポジトリで検証可能な基準に基づいて比較し、誤解を修正し、選択のルールを示します。独自のスループットは公開せず、第三者による測定値のみを、出典を明記して掲載しています。

著者 Mohamed Meguedmi·更新 2026-09-29·Windows・macOS・Linuxでテスト済み

#推論エンジン:エンジン間で実際に異なる点

推論エンジンは、入力トークンを出力トークンに変換します。インストールするアプリケーション(Ollama、LM Studio、Jan)にはこれが組み込まれており、本番環境のサーバー(vLLM、SGLang)自体がこれにあたります。使用に影響する3つの違いがあります。それは、対応するモデル形式、利用可能なハードウェア、そして複数のリクエストを同時に処理する方法です。

エンジン比較一覧(公式リポジトリ、2026年9月)
エンジンライセンス公表されている形式とハードウェア典型的な使用例
llama.cppMITGGUF;CPU、Apple シリコン、NVIDIA(CUDA)、AMD(HIP)、Vulkan、SYCLほか個人用パソコン、ノートパソコン、軽量サーバー
vLLMApache 2.0Hugging Faceのモデル;FP8、INT4、GPTQ、AWQ、GGUF(実験的);NVIDIA、AMD、IntelのGPU、およびx86/ARMのCPU多くのユーザーを対象とした、本番環境での運用
SGLangApache 2.0Hugging Faceモデル;FP4、FP8、INT4、AWQ、GPTQ高スループットのサーバー、共有プレフィックス
ExLlamaV3MITEXL3;NVIDIAの一般消費者向けGPU個人用GPUでのレイテンシー、TabbyAPIを使用
MLX LMMITApple シリコン専用Mac:生成とファインチューニング
i
OllamaとLM Studioは、これらと競合する推論エンジンではありません
Ollamaのリポジトリでは、llama.cppが「Supported backends」に挙げられています。また、LM Studioのホームページには、MLXとllama.cppを基盤とするエンジンが記載されています。「Ollama vs llama.cpp」という比較は、アプリケーションとそのエンジンを比較することに相当します。このケースは、Ollamaとllama.cppを比較する専用ガイドで扱っています。

#モデルの形式によって、使用できるエンジンが決まります

ローカルAIキット

お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 生涯アップデート

速度を比較する前に、使いたいモデルがどの形式で公開されているかを確認してください。GGUFファイルはllama.cppで読み込めるため、Ollama、LM Studio、Janでも読み込めます。Hugging FaceのFP16やFP8の重み、またはAWQやGPTQで量子化された重みは、vLLMやSGLangで読み込めます。MLX向けに変換されたモデルはMac上のMLX LMで、EXL3モデルはExLlamaV3で読み込めます。エンジンを変更すると、モデルを別の形式でダウンロードし直す必要が生じることがよくあります。

フォーマットと対応エンジン
フォーマット標準的なエンジンほかに使えるエンジン
GGUFllama.cpp(したがって、Ollama、LM Studio、Janも)vLLM(実験的モード)
Hugging Faceのモデル重み(FP16、FP8)vLLM, SGLang変換後はMac上のMLX LMでも使用可能
AWQ、GPTQvLLM, SGLangエンジンによるため、要確認
EXL3ExLlamaV3なし
MLXMLX LMMLX対応を表明しているLM StudioとJan

#llama.cpp:移植性に優れた定番

llama.cppは、依存関係のないC/C++実装です。掲げている目標は、幅広いハードウェアで、最小限の設定で推論を実行することです。Apple Siliconへの対応が優先されており(NEON、Accelerate、Metal)、x86 CPUではAVX、AVX2、AVX512、AMXに対応しています。GPUについては、NVIDIA(CUDA)、AMD(HIP)、Vulkan、SYCLをサポートしています。1.5~8ビットの量子化とCPU・GPUのハイブリッド推論を提供しており、利用可能なVRAM容量より大きいモデルも実行できます。

よくある誤解を訂正しておきます。llama.cppは、一度に1件のリクエストしか処理できないわけではありません。そのサーバーは、複数ユーザー向けの並列生成と、デフォルトで有効な継続的バッチ処理に対応すると案内されています。スロットは--parallelパラメータで設定できます。そのため、小規模なチームには十分対応できます。ただし、vLLMが備える大規模な本番運用向けの機能に並ぶことを目指しているわけではありません。

強み
移植性(Mac、Linux、Windows、Android)、広く普及したGGUF形式、CPUとGPUの併用、依存関係の少なさ。
制限
vLLMと同等の分散デプロイ機能は提供されていません。コンテキスト、スロット、GPU上のレイヤーなどの設定を事前に把握する必要があります。
エコシステム
OllamaおよびLM Studioの基盤であり、Janによっても引用されています。

CUDA、Metal、またはVulkanでのコンパイルには、コンパイルガイドを参照してください。llama.cppに関する完全なガイドでは使用方法が詳しく説明されています。

#vLLM:多数のユーザー向けのサーバー

vLLMは、カリフォルニア大学バークレー校のSky Computing Labで生まれた、推論と配信用のライブラリです。アテンションのキーと値のメモリをページ単位で管理するPagedAttentionと、継続的なバッチ処理を基盤とし、チャンク単位のプリフィルとプレフィックスキャッシュを組み合わせています。FP8、INT4、GPTQ、AWQ、GGUFの各形式、OpenAI互換API、NVIDIA・AMD・IntelのGPU、およびx86・ARM・PowerPCのCPUへの対応をうたっています。

二つの誤解を正しておきましょう。第一に、vLLMはもはやNVIDIA専用ではなく、CPUにも対応しています。リポジトリには、複数の種類のGPUとCPUをサポートすると記載されています。第二に、GGUFにも対応するようになっています。ただしドキュメントでは、GGUF対応は非常に実験的で最適化も不十分であり、主にメモリ使用量を抑える目的で利用できると説明されています。GGUFを日常的に使うなら、llama.cppが基本的な選択肢です。

強み
負荷時のスループット、ページ単位でのキャッシュメモリ管理、OpenAI互換API、並列処理(テンソル、パイプライン、エキスパート)、多様な形式への対応。
制限
llama.cppよりインストールや調整に手間がかかります。GPUサーバー向けに設計されており、GGUFは得意分野ではありません。
エコシステム
複数の人やアプリケーションが同時に同じモデルに問い合わせる場合の標準的な選択肢です。

vLLMのガイドでは、このエンジンが何かを説明しています。本番環境へのデプロイのガイドでは、設定と監視を詳しく解説しています。

#ExLlama:V2はアーカイブ済み、V3は開発中

ExLlamaV2のリポジトリには、プロジェクトは現在アーカイブされており、開発はExLlamaV3で継続していると記されています。このページの旧版を含む多くの比較記事では、今もV2が最先端の選択肢として紹介されています。ExLlamaV3のリポジトリでは、EXL3量子化形式、テンソル並列およびエキスパート並列による推論、エキスパートモデル向けのCPUオフロード、連続バッチ処理、投機的デコーディング、そして推奨サーバーであるTabbyAPIを介したOpenAI互換APIが案内されています。

ExLlamaV3は一般向けGPUを対象としており、本番運用のサーバーやMacを対象にしたものではありません。NVIDIA製GPUを持っていて、品質とサイズの最適なバランスを求めるなら、EXL3量子化は試す価値があります。まず、使うモデルがリポジトリの対応アーキテクチャ一覧に含まれているか確認してください。

#SGLang、MLX LM、そのほかの選択肢

SGLang
低レイテンシと高スループットを目指し、単一GPUから大規模クラスターまでを対象とする推論サービス用フレームワークとして紹介されています。プレフィックスキャッシュ用のRadixAttention、継続的バッチ処理、PagedAttention、投機的デコーディングを提供するとしています。サーバー向けではvLLMと競合しており、専用ガイドで詳しく解説しています。
MLX LM
Apple Silicon 上で MLX を使い、テキスト生成やモデルのファインチューニングを行うための Python パッケージです。Mac 以外では動作しません。「MLX と llama.cpp の比較」ガイドでは、Mac 上で両者を比較しています。
TensorRT-LLM
NVIDIA製のエンジンです。同社のGPUでは非常に高い性能を発揮しますが、導入時の制約が比較的多いため、本番環境でNVIDIA GPU群を運用する場合にのみ検討してください。

#公表された測定結果はどのような内容ですか

生成速度はハードウェア、モデル、量子化、リクエストの長さ、エンジンのバージョンに左右され、毎月変化します。そのため、このガイドでは独自の測定値を示していません。測定手順の説明がないトークン/秒の表には注意してください。ただし、第三者の情報源として、Red Hatが2025年8月に完全な測定手順を公開しています。

レッドハットの測定:vLLMとOllamaをA100で比較(2025年8月)
項目Red Hatが公表した値
ハードウェアNVIDIA A100-PCIE-40GBカード1枚
モデルLlama 3.1 8B Instruct(Ollama側はFP16)
バージョンvLLM 0.9.1;Ollama 0.9.2
テストツールGuideLLM 0.2.1、同時ユーザー数1〜256人
最大スループットvLLMは793トークン/秒、対するOllamaは41トークン/秒
ピーク時のP99遅延vLLMは80ms、Ollamaは673ms

留意点を踏まえて読む必要があります。この記事はRed Hat AI製品に関連しており、この分野の商業事業者が発信したものです。テスト対象はllama.cppそのものではなくOllamaで、デフォルト設定が使われています。また、テスト時点から複数のバージョン更新が行われています。確かな結論は定性的なものです。同時リクエストが多い状況では、積極的にバッチ処理を行う配信エンジンが、単独ユーザー向けに設計されたアプリケーションを上回ります。一人で使う場合、スループットの差が不利になる要因ではありません。

!
このページにはトークン/秒のテーブルがありません
このガイドの旧バージョンでは、3つのエンジンのスループットと初回応答時間を掲載していました。これらの数値には出典が示されていなかったため、削除しました。ご自身のマシンで比較するには、使用するモデルとクエリで実際に測定してください。

#メモリ:各エンジンが確保するメモリ

モデルに必要なメモリは、重み、コンテキストキャッシュ(KV)、余裕分で構成されます。重みのサイズは計算できます。80億パラメータのモデルは、FP16 で約16 GB(80億 × 2バイト)、Q4 で約5 GB を占めます。後者は当サイトの目安です。コンテキストキャッシュは、会話の長さと同時リクエスト数に応じて増加します。

各エンジンがコンテキストメモリをどのように処理するか
エンジンドキュメントに記載された動作実際の影響
llama.cppユーザーが設定可能なコンテキスト;統合キャッシュを備えた並列スロットコンテキストのサイズとスロット数を設定します
vLLMGPUメモリの一部をキャッシュ用に事前に割り当て、デフォルトは92%24GBのカードでは、初期段階で約22GBが確保されます
ExLlamaV3キャッシュの量子化:2〜8ビットキャッシュはVRAMに収まるように圧縮できます

覚えておきたい点は、vLLMが最初からメモリを確保することです。そのため、推論サービスの提供には効率的ですが、他のアプリケーションと共有するGPUにはあまり向いていません。GPUを他の用途にも使う場合は、gpu_memory_utilizationパラメータの値を下げてください。

#どの用途にどのエンジンを使うべきか

状況ごとの判断
あなたの状況推奨されるエンジン理由
Mac、PC、ノートパソコンでの個人利用OllamaまたはLM Studio経由で利用するllama.cpp移植性が高く、シンプル
Apple SiliconのMacで、処理スループットを重視する場合MLX LM または llama.cppMLXはApple Silicon向けに設計されています。使用するモデルで比較する
チームまたはアプリケーションがモデルに問い合わせるvLLM または SGLang継続的なバッチ処理、キャッシュページ
一般向け NVIDIA カード1枚で、最高品質を求める場合ExLlamaV3 と TabbyAPIEXL3量子化
異種ハードウェア環境、CPU、AMD、Intelllama.cpp広範なハードウェア対応
GGUF 限定モデルllama.cppvLLMは実験的にのみ対応しています

エンジンは併用できます。日常のチャットには Ollama、抽出バッチの処理にはオンデマンドで起動する vLLM を使用します。用途が異なる場合、1 つだけを残す理由はなく、同じモデルを 2 つの形式で保存するためのディスク容量を確保するだけです。例えば、チャット用に GGUF ファイル、サーバー用に Hugging Face の重みを使用します。

推論エンジンに関するよくある質問
vLLM か llama.cpp か、どちらを選べばよいですか?+
個人利用や、CPUやMacを含むさまざまなハードウェアでの利用にはllama.cppが適しています。GPUで複数ユーザーにサービスを提供するなら、継続的バッチ処理とページ単位のメモリ管理を備えたvLLMが適しています。マシンを一人で使う場合は、OllamaまたはLM Studio経由でllama.cppを利用すれば、ほとんどの場合は十分です。
Ollamaはllama.cppを使用していますか?+
Ollamaのリポジトリでは、「Supported backends」の項目にllama.cppが記載されています。Ollamaはその上にモデル管理、API、アプリケーションを追加しています。したがって、Ollamaとllama.cppの比較は、アプリケーションとそのエンジンの比較になります。両者ではデフォルト設定、形式、機能が異なります。詳しくは、この比較に特化したガイドを参照してください。
vLLMはGGUFファイルを実行できますか?+
はい。ただし、ドキュメントでは、この対応は非常に実験的で、最適化も十分ではなく、主にメモリ使用量を減らすために役立つと説明されています。現在は別のプラグインを通じて利用します。vLLMには、Hugging FaceのFP16またはFP8の重み、あるいはAWQやGPTQで量子化された重みを優先し、GGUFはllama.cpp用に使ってください。
ExLlamaV2は現在メンテナンスされていますか?+
いいえ。リポジトリには、現時点ではアーカイブされており、開発はExLlamaV3で続いていると表示されています。ExLlamaV3はEXL3形式と、推奨サーバーのTabbyAPIを提供しています。ExLlamaV2とEXL2形式のチュートリアルをもとに進める場合は、始める前に対応するV3向けのチュートリアルを探してください。
どのエンジンが最も速いですか?+
ハードウェア、モデル、同時利用ユーザー数によって異なります。同時処理が多い条件では、Red Hatの測定でvLLMがOllamaに対して明確な優位性を示しています。一度に1件だけリクエストを処理する場合、差は小さくなり、ハードウェアによって変わります。判断する前に、ご自身のモデルで測定してください。
vLLMを使うためにNVIDIA GPUは必要ですか?+
いいえ。vLLMのリポジトリでは、NVIDIA、AMD、IntelのGPUに加え、x86、ARM、PowerPCのCPUへの対応が案内されており、他のアクセラレータ向けの拡張機能もあります。対応する機能はハードウェアによって異なります。採用を決める前に、お使いのプラットフォームのインストールドキュメントを確認してください。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。