vLLM Sleep Mode
Posted on
vLLM は、1インスタンスで1つのモデルを動かします。 そのモデルのスループットを最大化するため、GPUメモリの殆どの領域をKV Cacheとして利用します。
一方で、vLLMの起動には、torch compileや量子化、モデルロードのために、数分程度を要することがあります。 そこで、複数のモデルを「さっと」切り替えるために、vLLMは「sleep mode」を提供しています。
vLLMを起動する際に、 --enable-sleep-mode
をつけて起動します。
このインスタンスをスリープモードにしたいときは、 /sleep
エンドポイントに、スリープのレベルをあわせて、リクエストを投げます。
curl -X POST localhost:8000/sleep -d '{"level":1}'
スリープモードのレベルは、以下のように設定できます。
1
: KV CacheをGPUメモリから削除し、モデルの重みはCPUメモリにオフロードします。2
: KV CacheをGPUメモリから削除し、モデルの重みも削除します。
インスタンスをアクティブにしたいときは、 /wake_up
エンドポイントにリクエストを投げます。
curl -X POST localhost:8000/wake_up
この記事の内容は、机上確認なので、私もどこかで実際に試してみたいと思います。。
参考
Pro-tip for vLLM power-users: free ≈ 90 % of your GPU VRAM in seconds—no restarts required🚀
— EmbeddedLLM (@EmbeddedLLM) July 8, 2025
🚩 Why you’ll want this
• Hot-swap new checkpoints on the same card
• Rotate multiple LLMs on one GPU (batch jobs, micro-services, A/B tests)
• Stage-based pipelines that call… pic.twitter.com/WAzdiZWL6u