ChatGPTのようなAIを自分のサーバーで動かしたい、しかもできるだけ速く推論したい——そう考えたとき、最も注目されているのが vLLM(Virtual Large Language Model)です。
vLLMは、UbuntuにインストールしてNVIDIA GPUと組み合わせるだけで、Hugging Faceのモデルを高速に推論できるPythonライブラリです。PagedAttentionという独自のメモリ管理によって、同じGPUでもより多くのリクエストを同時にさばけるのが特徴です。
本記事では、結論から言うと python3 -m venv で仮想環境を作って pip install vllm するだけで導入できます。実際に ubuntu:24.04(Docker公式イメージ)を起動して、バージョン要件・PEP 668 エラーの再現・pip の挙動までを実測しました。検証日は2026年6月15日、対象は vLLM 0.23.0(2026年6月13日リリースの最新版)です。
この記事のポイント
- vLLM 0.23.0 は Ubuntu 24.04 + Python 3.12 + venv でインストールできる(
pip install vllm一行) - vLLMの Python 要件は
>=3.10,<3.15(PyPIメタデータで実測。3.9以前は不可) - Ubuntu 24.04 は PEP 668 により venv が必須——
--break-system-packagesは使わない - 依存として
torch==2.11.0と NVIDIA CUDA 13(cu13)系カーネルが入る(実測) - 起動後は OpenAI 互換の REST API(
http://localhost:8000/v1)として動き、既存コードを base_url の変更だけで流用できる
目次
- vLLMとは——なぜ高速なのか
- 動作環境と要件(実測)
- vLLMのインストール手順
- APIサーバーを起動する
- Swagger UIでAPIを確認する
- curlとPythonでAPIをテストする
- よくあるエラーと解決策
- まとめ
vLLMとは——なぜ高速なのか
vLLMはカリフォルニア大学バークレー校のSky Computing Labが2023年に公開したOSSです。LLM推論の大きなボトルネックだった「KVキャッシュのメモリの無駄」を PagedAttention(ページド・アテンション) という仕組みで解決しています。
簡単に言うと、GPUメモリをOSのページングのように細かく区切って管理し、使っていない領域を別のリクエストで再利用します。さらに Continuous Batching(実行中のバッチに新しいリクエストを動的に差し込む方式)と組み合わせることで、次のような効果が出ます。
- 同じGPUでより多くのリクエストを並列処理できる
- メモリの断片化が減り、大きなモデルでも安定して動かせる
- スループット(秒間に処理できるトークン数)が大きく向上する

そしてもう一つの強みが OpenAI互換のREST API を内蔵していることです。OpenAI Pythonライブラリの base_url を自前サーバーに向けるだけで、既存コードをほぼ無修正で流用できます。商用APIから自前サーバーへ移行するコストが小さいのは、地味ですが大きな利点です。
動作環境と要件(実測)
まず、自分の環境がvLLMの要件を満たしているか確認しましょう。今回は ubuntu:24.04 のDocker公式イメージ(linux/amd64)を起動して、実際にコマンドを叩いて確かめました。
Distributor ID: Ubuntu
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble
$ python3 –version
Python 3.12.3
$ ldd –version | head -1
ldd (Ubuntu GLIBC 2.39-0ubuntu8.7) 2.39
$ uname -m
x86_64

Ubuntu 24.04.4 LTS には Python 3.12.3 が標準搭載され、glibc は 2.39 でした。ここで気をつけたいのが vLLMの実際の要件です。PyPI のメタデータ(requires_python / requires_dist)を取得して確認したところ、次のとおりでした。

注目すべきは、Python の対応バージョンが >=3.10,<3.15 だという点です。古い記事では「Python 3.9以上」と書かれていることがありますが、vLLM 0.23.0 では 3.9 以前ではインストールできません。また配布されている wheel は manylinux_2_28(glibc 2.28以上)向けで、Ubuntu 24.04 の glibc 2.39 なら問題なく動きます。
注意:本番はNVIDIA GPUが前提です
vLLM 0.23.0 の依存パッケージを実測すると、torch==2.11.0 がバージョン固定で入り、nvidia-cutlass-dsl[cu13] など CUDA 13(cu13)向けのカーネルが含まれます。本来の用途はNVIDIA GPUでの推論です。GPUなし環境では --device cpu で動作確認はできますが、推論速度は桁違いに遅くなります。VPSでGPUを試すならVultrの時間課金GPUインスタンスが手頃です。
Ubuntu 22.04 と 24.04、どちらを使うべきか
「手元のサーバーが22.04なんだけど大丈夫?」という疑問もよくあります。両方のイメージで apt-cache policy を実行して、標準のPythonバージョンを比べてみました。

Ubuntu 22.04 の標準 Python は 3.10.6、24.04 は 3.12.3 でした。どちらも vLLM の要件(3.10以上)を満たしますが、24.04 は標準で 3.12 を備えているため追加のリポジトリ設定が要りません。これから始めるなら 24.04 LTS をおすすめします。
vLLMのインストール手順
手順1:パッケージを更新してPython環境を準備する
まずシステムを最新にして、Python と venv をインストールします。
Reading package lists… Done
$ sudo apt install -y python3 python3-pip python3-venv git curl
Setting up python3 (3.12.3-0ubuntu2) …
Setting up python3-pip (24.0+dfsg-1ubuntu1.2) …
Setting up python3-venv (3.12.3-0ubuntu2) …
Ubuntu 24.04 から PEP 668(外部管理環境) が有効になっており、システムのPythonに直接 pip install するとエラーになります。これは意図的な仕様です。実際にエラーを再現してみましょう。
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
create a virtual environment using python3 -m venv path/to/venv.
hint: See PEP 668 for the detailed specification.

このとおり、システムの pip に直接インストールしようとすると弾かれます。--break-system-packages で無理やり通すこともできますが、OS標準のPythonを壊すリスクがあるので使いません。正しい回避策は、次の手順で venv(仮想環境)を作ることです。
手順2:仮想環境(venv)を作成してpipを最新化する
$ source /opt/vllm_env/bin/activate
(vllm_env) $ which python3
/opt/vllm_env/bin/python3
(vllm_env) $ pip –version
pip 24.0 from /opt/vllm_env/lib/python3.12/site-packages/pip (python 3.12)
(vllm_env) $ pip install –upgrade pip
Successfully uninstalled pip-24.0
Successfully installed pip-26.1.2
/opt/vllm_env に仮想環境を作成しました。有効化すると which python3 が /opt/vllm_env/bin/python3 を指します。venv 内の pip は最初 24.0 で、pip install --upgrade pip によって 26.1.2 に更新されました(いずれも実測)。
手順3:vLLMをインストールする
あとは pip install vllm を実行するだけです。インストール前に pip index versions vllm で最新版を確認しておくと安心です。
vllm (0.23.0)
Available versions: 0.23.0, 0.22.1, 0.22.0, 0.21.0, 0.20.2, …
(vllm_env) $ pip install vllm
Collecting vllm
Collecting torch==2.11.0 (from vllm)
Collecting transformers>=4.56.0 (from vllm)
Collecting fastapi[standard]>=0.115.0 (from vllm)
Collecting openai>=2.0.0 (from vllm)
Collecting pydantic>=2.12.0 (from vllm)
…
Successfully installed vllm-0.23.0
(vllm_env) $ vllm –version
0.23.0

pip index versions vllm が返す最新版は 0.23.0(2026年6月13日リリース)でした。pip install vllm は torch==2.11.0 をはじめ PyTorch・Transformers・FastAPI など大量の依存を引き込みます。正直、ここが一番時間のかかるポイントです。コーヒーでも飲みながら待ちましょう。
手順4:CUDAドライバーを確認する(GPU環境のみ)
GPU環境では、NVIDIAドライバーが正しく入っているかを nvidia-smi で確認します。vLLM 0.23.0 は CUDA 13 系のカーネルに依存するため、ドライバーは新しめのものを用意してください。
+—————————————————————————–+
| NVIDIA-SMI 580.xx Driver Version: 580.xx CUDA Version: 13.0 |
| 0 NVIDIA RTX 4090 | 00000000:01:00.0 Off | N/A |
| 30% 42C P8 20W / 450W | 300MiB / 24564MiB | 0% Default |
GPUが認識されないとき
nvidia-smi が動かない場合は、sudo ubuntu-drivers autoinstall で推奨ドライバーを入れて再起動してください。上の出力は GPU 環境での表示例です(本記事の検証はGPUなしのコンテナで行ったため、ドライバーのバージョンは環境により異なります)。
APIサーバーを起動する
インストールできたら、vllm serve でAPIサーバーを起動します。モデルはHugging Faceから自動でダウンロードされます。
–host 0.0.0.0 \
–port 8000 \
–max-model-len 8192
INFO … vLLM API server version 0.23.0
INFO … Model: Qwen/Qwen2.5-7B-Instruct
INFO … Loading model weights…
INFO … Application startup complete.
INFO … Uvicorn running on http://0.0.0.0:8000
起動後は http://localhost:8000 でAPIが使えます。よく使うオプションをまとめます。
--host 0.0.0.0:他のマシンからもアクセス可能にする(デフォルトは localhost のみ)--port 8000:待ち受けポート番号(デフォルト 8000)--max-model-len 8192:最大コンテキスト長(VRAMが少ない場合に削減)--tensor-parallel-size 2:GPU 2枚でモデルを分割する場合--gpu-memory-utilization 0.9:GPU VRAMの使用率(デフォルト 0.9)
本記事の検証範囲について
本記事は GPU を持たない ubuntu:24.04 コンテナで検証したため、バージョン要件・PEP 668・pip の挙動は実測ですが、vllm serve 起動以降のログや推論の出力は GPU 環境での例示です。実際の応答内容やINFOログの行番号は、モデル・GPU・バージョンによって変わります。
Swagger UIでAPIを確認する
vLLMのAPIサーバーはデフォルトで Swagger UI(http://localhost:8000/docs)を内蔵しています。ブラウザからアクセスすると、利用できるエンドポイントを一覧で確認できます。

主なエンドポイントは次のとおりです。OpenAI と同じパス構成(/v1/chat/completions、/v1/completions、/v1/embeddings、/v1/models)に加え、/tokenize や /health、Prometheus 用の /metrics も用意されています。
現在ロードされているモデルは http://localhost:8000/v1/models にアクセスするとJSONで確認できます。ReDoc形式のドキュメントは http://localhost:8000/redoc です。
curlとPythonでAPIをテストする
curlでチャット生成
-H “Content-Type: application/json” \
-d ‘{
“model”: “Qwen/Qwen2.5-7B-Instruct”,
“messages”: [{“role”: “user”, “content”: “Ubuntuとは何ですか?一言で。”}],
“max_tokens”: 100
}’
{
“object”: “chat.completion”,
“model”: “Qwen/Qwen2.5-7B-Instruct”,
“choices”: [{
“message”: {“role”: “assistant”, “content”: “Ubuntuは、Linuxカーネルを基盤とした使いやすいオープンソースOSです。”},
“finish_reason”: “stop”
}]
}
レスポンスは OpenAI のチャット補完APIとまったく同じJSON構造です(上の応答内容はGPU環境での例示です)。choices[].message.content に生成テキストが入ります。
Pythonから呼び出す(OpenAI互換)
OpenAI Pythonライブラリ(pip install openai)で、base_url を変えるだけで呼び出せます。APIキーは不要ですが、引数として何かを渡す必要があるため "EMPTY" を指定します。
client = OpenAI(base_url=”http://localhost:8000/v1″, api_key=”EMPTY”)
resp = client.chat.completions.create(
model=”Qwen/Qwen2.5-7B-Instruct”,
messages=[{“role”: “user”, “content”: “こんにちは!”}])
print(resp.choices[0].message.content)
こんにちは!何かお手伝いできることはありますか?
ここだけは順番を間違えると動きません——必ず vllm serve でサーバーが起動してから、Pythonコードを実行してください。なお vLLM 0.23.0 は依存に openai>=2.0.0 を要求するので、クライアント側のライブラリも新しめにしておくと安心です。
よくあるエラーと解決策
①「error: externally-managed-environment」
Ubuntu 24.04 の PEP 668 によるエラーです。本記事の手順2のとおり、python3 -m venv /opt/vllm_env で仮想環境を作り、source /opt/vllm_env/bin/activate で有効化してからインストールしてください。
②「ERROR: Package ‘vllm’ requires a different Python」
Python のバージョンが要件外(3.9 以前、または 3.15 以上)の場合に出ます。vLLM 0.23.0 の要件は >=3.10,<3.15 です。python3 --version で確認し、Ubuntu 24.04 標準の 3.12 を使うのが確実です。
③「CUDA out of memory」
GPUのVRAMが不足しています。以下のいずれかで対処します。
--max-model-len 4096のようにコンテキスト長を短くする--gpu-memory-utilization 0.7でVRAM使用率を下げる- より小さいモデルを選ぶ(7B → 3B など)
--quantization awqで量子化モデルを使う
④「ModuleNotFoundError: No module named ‘vllm’」
venv が有効化されていません。source /opt/vllm_env/bin/activate を実行してから試してください。which python3 が /opt/vllm_env/bin/python3 を返せば有効化されています。
本記事の検証環境
インストール手順・バージョン要件・PEP 668・pipの挙動は ubuntu:24.04 Docker公式イメージ(linux/amd64、2026-06-15)で実測しています。vLLM のバージョン・要件・依存は PyPI(https://pypi.org/pypi/vllm/json)から同日取得した一次データです。GPUを持たないコンテナでの検証のため、実推論の出力例は GPU 環境に準じた例示です。
まとめ
Ubuntu 24.04 に vLLM 0.23.0(2026年6月時点の最新)をインストールして、高速推論APIサーバーを構築する手順を実測ベースで解説しました。
- Ubuntu 24.04.4 LTS は Python 3.12.3 / glibc 2.39 を備え、vLLMの要件を満たす
- vLLMの Python 要件は 3.10以上 3.15未満(PyPI実測。3.9以前は不可)
- PEP 668 のため
python3 -m venvで仮想環境を作ってからpip install vllmする - venv 内の pip は 24.0 から 26.1.2 へ更新された(実測)
- 依存に
torch==2.11.0と CUDA 13(cu13)系カーネルが入る - 起動は
vllm serve <モデル名>、OpenAI Pythonライブラリから base_url 変更だけで呼べる
vLLMを本格的に運用するなら、GPUを搭載したクラウドサーバーが現実的です。Vultrは時間課金のGPUインスタンスを提供しており、必要なときだけ使えてコストを抑えやすいです。
関連記事:Ollamaでローカルchatを動かす方法やOpen WebUIのインストールと使い方もあわせてどうぞ。GPUの料金を比較したい方はクラウドGPUの料金比較も参考になります。



コメント