Mímisbrunnr知恵の泉

← ローカルLLM 一覧

🎓 レベル:発展 | 重要度:B(推奨) 📎 前提:llama.cpp | 原理:推論の実務(機械学習)

要点(結論先出し)

概念 ── 「同時に何件捌くか」を最大化する

単機チャットのエンジンは1リクエストを速く返すのが目的。対して vLLM/TGI は多数のリクエストを並べてGPUを埋め尽くす設計です。鍵は2つ(要最新確認):

仕組み ── バッチを動的に詰める

flowchart LR
  R["多数のリクエスト"] --> SCHED["スケジューラ(連続バッチング)"]
  SCHED --> KV["KVをページ管理(PagedAttention)"]
  KV --> GPU["GPUを常時フル稼働"]
  GPU --> OUT["各リクエストへストリーム返却"]

結果として、同時実行時のスループットは単機向けエンジンを大きく上回ります(公称で数倍〜十数倍の例も・要最新確認)。

動くコマンド(OpenAI互換サーバ例)

# vLLMをOpenAI互換APIサーバとして起動(モデル名は要最新確認)
vllm serve Qwen/Qwen2.5-7B-Instruct \
  --port 8000 --max-model-len 8192

起動後は OpenAI互換API と同じ叩き方で接続できます。

運用の勘所

なぜそうするか

ローカルでも「1人がたまに使う」と「複数人が同時に使う」は要求が真逆。後者では**1件の速さよりGPU占有率(同時処理量)**が効きます。vLLM/TGIはそこに最適化しているので、用途が同時多人数なら選ぶ価値があります。クラウド規模の本番サービングになると話はMLOpsへ → オンライン推論サービング

⚠️ よくある落とし穴

対応lab

関連