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

この記事の内容は、机上確認なので、私もどこかで実際に試してみたいと思います。。

参考

このBlogの内容は個人の意見に基づくものであり、 所属組織団体の公式見解とは異なる場合があります点、ご了承ください。