As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Cache KV e roteamento inteligente
O Amazon SageMaker HyperPod Inference fornece armazenamento gerenciado em cache hierárquico de valores-chave (KV) e roteamento inteligente para otimizar o desempenho da inferência para cargas de trabalho de grandes modelos de linguagem (LLM). O cache KV salva vetores de valores-chave pré-computados após o processamento de tokens anteriores, eliminando recálculos redundantes. Por meio de uma arquitetura de cache de duas camadas, você pode configurar um cache L1 que usa memória da CPU para reutilização local de baixa latência e um cache L2 que aproveita o Redis ou o armazenamento hierárquico gerenciado para permitir o compartilhamento de cache escalável em nível de nó.
O roteamento inteligente analisa as solicitações recebidas e as direciona para a instância de inferência com maior probabilidade de ter pares de valores-chave relevantes em cache. O sistema examina a solicitação e a encaminha com base em uma das seguintes estratégias de roteamento:
-
prefixaware— Solicitações subsequentes com o mesmo prefixo de prompt são roteadas para a mesma instância. -
kvaware— As solicitações recebidas são roteadas para a instância com a maior taxa de acerto de cache de KV. -
session— As solicitações da mesma sessão de usuário são roteadas para a mesma instância. -
roundrobin— Distribui as solicitações uniformemente sem considerar o estado do cache KV.
O roteamento inteligente funciona com todos os métodos de implantação do Amazon SageMaker HyperPod Inference, incluindo SageMaker JumpStart implantações da Amazon (console e kubectl), implantações de armazenamento local NVMe e implantações do Amazon S3, Amazon FSx ou Hugging Face Hub. Você pode ativar o armazenamento em cache e o roteamento, independentemente do método de implantação usado para servir seu modelo.
nota
Atualmente, o cache KV e o roteamento inteligente suportam apenas contêineres de inferência v. LLM-based
Configurar o cache KV e o roteamento inteligente
-
Ative o cache KV configurando
enableL1CacheeenableL2Cachepara.trueEm seguida, configurel2CacheSpecl2CacheBackenddefinindo comoredisoutieredstorage. Se você escolherredis, atualizel2CacheLocalUrlcom a URL do cluster Redis.kvCacheSpec: enableL1Cache: true enableL2Cache: true l2CacheSpec: l2CacheBackend: <redis | tieredstorage> l2CacheLocalUrl: <Redis cluster URL if l2CacheBackend is redis >nota
Se o cluster Redis não estiver na mesma Amazon VPC do HyperPod cluster, a criptografia dos dados em trânsito não é garantida.
nota
Você não precisa
l2CacheLocalUrlsetieredstorageestiver selecionado. -
Ative o roteamento inteligente configurando como
enabledtrueunderintelligentRoutingSpec. Você pode especificar emroutingStrategyqual estratégia de roteamento usar. Se nenhuma estratégia de roteamento for especificada, o padrão é.prefixawareintelligentRoutingSpec: enabled: true routingStrategy: <routing strategy to use> -
Ative as métricas do roteador e as métricas de cache definindo como
enabledtrueabaixometrics. Oportvalor precisa ser igual aocontainerPortvalor abaixomodelInvocationPort.metrics: enabled: true modelMetrics: port: <port value> ... modelInvocationPort: containerPort: <port value>
KV-aware compatibilidade de roteamento
A matriz de compatibilidade e as restrições de versão nesta seção se aplicam somente à estratégia de kvaware roteamento. A kvaware estratégia direciona as solicitações recebidas para a instância de inferência com a maior taxa de acerto do cache de KV e atualmente suporta apenas LLM-based imagens v com a /completions API como endpoint de invocação.
nota
Se você usa kvaware roteamento, deve definir como invocationEndpoint /completions em seu manifesto de implantação. O /v1/chat/completions endpoint não é compatível com kvaware roteamento. Outras estratégias de roteamento (prefixaware,session,roundrobin) funcionam com qualquer endpoint de invocação.
Imagens suportadas:
-
Imagem vLLM: hub.docker. com/r/vllm/vllm-openai
-
Imagem do LMCache: hub.docker. com/r/lmcache/vllm-openai
-
AWS Contêiner de aprendizado profundo: gallery.ecr. aws/deep-aprendendo- containers/vllm
| Versão do operador de inferência | Add-on Versão Amazon EKS | Versão de imagem do LMCache | Versão da imagem vLLM |
|---|---|---|---|
| > = v3.1.3 | > = v1.2.1-eksbuild.1 | > = v0.4.3 | > = v0.19.1 |
| < v3.1.3 | < v1.2.1-eksbuild.1 | v0.3.9 postagem 2 | v0.11.1 |
nota
Recomendamos usar a versão v3.1.3 ou superior do operador de inferência com as versões correspondentes do LMCache e do vLLM mostradas na matriz de suporte. As versões mais recentes do LMCache suportam paralelismo de tensores, melhor tratamento de falhas e registro de trabalhadores de cache, que fornecem maior robustez para o roteamento. KV-aware
Validando o roteamento com reconhecimento de cache KV
Depois de implantar um modelo com o KV-aware roteamento ativado, use as etapas a seguir para verificar se o roteamento está funcionando corretamente.
Verifique o registro do trabalhador
Verifique se os funcionários se registraram no roteador verificando os registros do roteador:
kubectl logs -n hyperpod-inference-system <router-pod> | grep -i "register"
Um registro saudável mostra:
INFO: Worker registered: lmcacheengineconfig_<hash>
Verifique os acessos de cache nos registros do roteador
Verifique se o roteador está usando KV-aware roteamento para direcionar solicitações:
kubectl logs -n hyperpod-inference-system <router-pod> | grep -i "kvaware\|Matched instance\|Lookup"
Quando o KV-aware roteamento está funcionando corretamente:
INFO: Routing request to lmcacheengineconfig_<hash> found by kvaware router
Quando o KV-aware roteamento não está funcionando (volta ao round-robin):
DEBUG: Matched instance url None
Verifique a inicialização do LMCache nos registros do trabalhador
Verifique se o LMCache foi inicializado com sucesso nos pods de trabalho:
kubectl logs -n <namespace> <worker-pod> | grep -i "LMCache"
Uma inicialização saudável mostra:
LMCache INFO: LMCacheManager initialized successfully
Se o LMCache falhar na inicialização, você verá:
LMCache ERROR: Failed to initialize LMCacheManager components: . System will operate in degraded mode (recompute).
Verifique com as métricas do Grafana
Com as métricas habilitadas (metrics.enabled: true), as seguintes métricas do /metrics endpoint do trabalhador vLLM confirmam os acessos ao cache. Essas métricas devem mostrar valores altos quando o KV-aware roteamento está funcionando corretamente:
| Métrica | Description |
|---|---|
vllm:prefix_cache_hits_total / vllm:prefix_cache_queries_total |
Taxa de acerto do cache do prefixo da GPU (calculada como uma proporção) |
lmcache:num_vllm_hit_tokens_total |
Número de tokens fornecidos pelo LMCache |
lmcache:num_lookup_hits_total / lmcache:num_lookup_tokens_total |
Taxa de acerto de pesquisa do LMCache (calculada como uma proporção) |
lmcache:request_cache_hit_rate |
Per-request taxa de acerto do cache (histograma) |