ローカルLLMの推論エンジン、結局どれ使う?──Ollama・vLLM・exl3を実際に触って選んだ話【2026】

AI活用

「ローカルLLM動かすぞ」ってなると、だいたい最初に触るのがOllama。1コマンドで動くし、正直これで9割の人は満足だと思う。

でも自分みたいに「社内で何人かで共有したい」「エージェントで並列にブン回したい」ってなった瞬間、話がガラッと変わる。Ollamaで動く、と、複数人で並列運用できる、は別問題なんだよね。

この記事では、まず世の中にある推論エンジンをざっくり紹介して、そのあと自分が実際に社内サーバーを組んで「vLLMで始めてexl3に落ち着いた」話をする。専門用語は最後にまとめて解説つけたので、途中で「?」ってなっても大丈夫。

そもそも「推論エンジン」って何?

ざっくり言うと、モデルの重み(ggufとかsafetensorsのファイル)を読み込んで、実際に「入力→応答」を計算してくれるソフトのこと。ChatGPTでいう中身の実行部分を、自分のPCやサーバーで動かすやつ。

多くのエンジンがOpenAI互換APIを喋る。だからアプリ側は接続先URLを差し替えるだけで動く…というのが建前で、ここに落とし穴もあるんだけど、それはまた別記事で。まずは「どれを選ぶか」から。

主要な推論エンジンをざっくり

2026年時点でよく名前が挙がるのはこのへん。用途で棲み分けてる感じ。

エンジン 向いてる用途 ざっくり中身
Ollama 1人・お試し・開発の入口 中身はllama.cpp。GGUF形式・OpenAI互換API。とにかく手軽
LM Studio GUIで触りたい人 中身はllama.cpp / MLX。画面ポチポチで動く
llama.cpp とにかく色んなハードで動かしたい 土台的存在。CUDA/AMD ROCm/Mac Metal/CPU、なんでもいける
vLLM 本番・多人数の並列(5人以上〜) NVIDIA GPU + Linux前提。同時アクセスに桁違いに強い(負荷時Ollamaの10〜20倍とも)
SGLang エージェント・RAG・構造化出力 共通のシステムプロンプトを使い回すと速い(RadixAttention)
ExLlamaV3 (exl3) + TabbyAPI 消費者GPUで並列&大きめモデル EXL3量子化+量子化KVキャッシュが効く。3090/4090勢の通好み。TabbyAPIでOpenAI互換に
MLX (mlx-lm) Apple Silicon(Mac) M系チップ最適化。自分もMacではこれ

おおまかには、1人ならOllama、本番の並列ならvLLM、って覚えとけばまず外さない。ただ、この「本番の並列」でGPUがちょっと古いと、自分みたいにハマる。

自分の実体験:vLLMで始めて、exl3に落ち着いた話

社内で何人かがAIを同時に使えるサーバーを組みたくて、最初はvLLMを選んだ。並列といえばvLLM、って評判だったし。

でもここでGPUの世代がネックになった。自分の手元はRTX3090。少し古いAmpere世代なんだけど、vLLMのFP8 KVキャッシュ量子化がAmpereでは非対応だった。これはvLLMのバグとかじゃなくて、FP8のKVキャッシュ圧縮が4090やH100以降のGPUじゃないとハード的に効かない、という話。

何が困るかというと、KVキャッシュを圧縮できない=VRAMを大量に食う。長いコンテキスト×並列をやろうとすると、すぐVRAMが埋まる。8bitや4bitに圧縮してなんとかしようとしても、3090だとうまくハマらなかった。

そこでexl3(ExLlamaV3)+TabbyAPIに切り替えた。EXL3は量子化のKVキャッシュが3090でもちゃんと効くのが大きい。結果どうなったかというと——

  • Qwen3.6:27B を 128Kコンテキストで 5並列まで快適に回せてる
  • デコード速度:50〜70 token/s(後述のMTPあり。MTP無しだと30 token/sくらい)
  • プレフィル速度:700〜1200 token/s

この速度アップの立役者がMTP(Multi-Token Prediction)。exl3がMTPに対応してて、有効にするとデコードが50〜70 token/sまで伸びた。MTPを切ると30 token/sくらいなので、体感でほぼ倍違う。ここ、エンジン選びで意外と見落とされがちなポイントだと思う。

※これは自分の環境(RTX3090)での実測なんで、GPUやモデル・設定で普通に変わる。あくまで一例として。

言いたいのは、「Ollamaで動く」と「社内で並列運用できる」は本当に別問題ってこと。そして並列をやるときは、GPUの世代とKVキャッシュの相性で選ぶエンジンが変わる。ここ、意外と情報が少ないんだよね。

用語解説(ここだけ読んでも可)

  • 推論エンジン:モデルの重みを読んで「入力→応答」を計算する実行ソフト。Ollamaやv LLMがこれ。
  • OpenAI互換API:OpenAIと同じ形式のAPIを喋ること。アプリ側は接続先を変えるだけで繋がる(建前上は)。
  • KVキャッシュ:会話の途中経過(過去トークンの計算結果)を保持しておくメモリ。長い文脈・並列で急激に増える。VRAMを食う主犯。
  • 量子化(4bit/8bit):モデルやキャッシュの数値の精度を落として容量を減らすこと。GGUF・EXL3などが量子化の形式。多少の劣化と引き換えにVRAMを節約。
  • コンテキスト長:一度に扱える文章の長さ(トークン数)。128K=約12万トークン。長いほどKVキャッシュも増える。
  • prefill / decode:prefill=入力(プロンプト)をまとめて処理する段階。decode=応答を1トークンずつ生成する段階。速度の単位が違うのはこのため。
  • MTP(Multi-Token Prediction):1ステップで複数トークンをまとめて予測して生成を速くする仕組み(投機的デコードの一種)。対応エンジン+対応モデルの組み合わせで効く。自分の環境ではこれのオン/オフでデコードが30→50〜70 token/sと、ほぼ倍変わった。
  • 並列(バッチング):複数リクエストを同時にさばくこと。5並列=5人分を同時処理。vLLMやexl3が得意。
  • スループット(token/s):1秒あたり何トークン処理できるか。並列運用ではここが体感速度に直結。
  • VRAM:GPUのメモリ。モデル本体+KVキャッシュがここに乗る。足りないと落ちるか遅くなる。

まとめ:用途で選ぶのが正解

  • 1人・お試し → Ollama / LM Studio
  • 非力なハードや何でも動かしたい → llama.cpp
  • 本番で多人数の並列(新しめのGPU) → vLLM
  • エージェント・RAGで共通プロンプトを使い回す → SGLang
  • 消費者GPU(3090/4090)で並列&大きめモデル → exl3 + TabbyAPI ← 自分はここ
  • Mac → MLX

次回は、この「OpenAI互換だから差し替えるだけでしょ?」が半分ウソだった話——vLLMに繋いで実際に踏んだ落とし穴——を書く予定。まずはエンジン選びの地図として、この記事が役に立てば。

参考:vLLMのFP8 KVキャッシュがAmpere(3090)で非対応という点は、vLLM公式フォーラム/GitHub Issueでも報告されている(「type fp8e4nv not supported in this architecture」)。エンジン全体の棲み分けは各種2026年比較ガイドを参照。

タイトルとURLをコピーしました