KV Cache 感知路由#

在本教程中,您将学习如何在 vLLM Production Stack 中启用和使用 KV Cache 感知路由。通过 KV Cache 感知路由,传入的请求将被路由到具有最高 KV Cache 命中率的实例,这有助于最大化缓存效率并提升整体性能。与前缀感知路由不同(前缀感知路由始终将具有相同前缀的请求发送到同一实例,即使缓存已被驱逐),KV Cache 感知路由优先考虑缓存命中,以优化资源使用。

目录#

  1. 先决条件

  2. 第 1 步:使用 KV 缓存感知路由进行部署

  3. 第 2 步:端口转发

  4. 第 3 步:测试 KV 缓存感知路由

  5. 第 4 步:清理

先决条件#

步骤 1:使用 KV Cache 感知路由进行部署#

我们将使用预定义的配置文件 values-17-kv-aware.yaml,该文件设置了两个启用了 KV Cache 感知路由的 vLLM 实例。

  1. 使用配置部署Helm chart

    helm install vllm helm/ -f tutorials/assets/values-17-kv-aware.yaml
    

    请注意,要添加更多实例,您需要在 lmcacheConfig 中指定不同的 instanceId

    等待部署完成

    kubectl get pods -w
    

步骤2:端口转发#

将路由器服务端口转发到您的本地机器

kubectl port-forward svc/vllm-router-service 30080:80

步骤 3:测试 KV Cache 感知路由#

首先,向路由器发送一个请求

curl https://:30080/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Llama-3.1-8B-Instruct",
    "prompt": "What is the capital of France?",
    "max_tokens": 100
  }'

然后,发送另一个具有相同提示前缀的请求

curl https://:30080/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/Llama-3.1-8B-Instruct",
    "prompt": "What is the capital of France? And what is its population?",
    "max_tokens": 100
  }'

您应该会观察到第二个请求被路由到与第一个请求相同的实例。这是因为 KV Cache 感知路由器检测到第二个请求在第一个请求所在的实例中具有更高的 KV Cache 命中率,并将其路由到同一实例以最大化 KV Cache 利用率。

步骤4:清理#

清理部署

helm uninstall vllm

结论#

在本教程中,我们演示了如何

  1. 使用 KV Cache 感知路由部署 vLLM Production Stack

  2. 设置端口转发以访问路由器

  3. 测试 KV Cache 感知路由功能

KV Cache 感知路由功能通过确保请求被路由到具有最高 KV Cache 命中率的实例来帮助提高性能,从而最大化 KV Cache 的利用率。