Adaptive Multi-Objective Tiered Storage Configuration for KV Cache in LLM Service

O artigo apresenta o Kareto, um otimizador que utiliza poda guiada por retornos decrescentes e ajuste adaptativo para gerenciar dinamicamente a configuração de armazenamento em camadas do cache KV em serviços de LLM, permitindo identificar configurações na fronteira de Pareto que melhoram significativamente o throughput, reduzem a latência ou diminuem os custos em comparação com estratégias estáticas.

Xianzhe Zheng, Zhengheng Wang, Ruiyan Ma, Rui Wang, Xiyu Wang, Rui Chen, Peng Zhang, Sicheng Pan, Zhangheng Huang, Chenxin Wu, Yi Zhang, Bo Cai, Kan Liu, Teng Ma, Yin Du, Dong Deng, Sai Wu, Guoyun Zhu, Wei Zhang, Feifei Li

Publicado Wed, 11 Ma
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que você está operando uma pizzaria de alta tecnologia onde os clientes (as pessoas usando o chatbot) pedem pizzas (perguntas) e a cozinha (o computador) precisa prepará-las instantaneamente.

Para fazer isso rápido, a cozinha tem uma estante de prateleiras super-rápidas (a memória do computador, chamada GPU) onde guarda os ingredientes que usa o tempo todo. Mas, aqui está o problema: essa estante é muito pequena e muito cara. Se você tiver muitos clientes pedindo pizzas ao mesmo tempo, a estante enche e você precisa jogar ingredientes fora para fazer espaço para os novos pedidos. Isso faz a cozinha ter que ir até o armazém principal (que é mais lento e fica longe) buscar os ingredientes de novo, atrasando tudo.

A solução comum é colocar um armário intermediário (memória RAM) e um depósito no porão (disco rígido) perto da cozinha. O desafio é: quanto espaço você deve alugar em cada um desses lugares?

Se você alugar um armário gigante, gasta muito dinheiro e pode não usar tudo. Se alugar um depósito minúsculo, a cozinha fica parada esperando ingredientes, e você perde clientes. Fazer essa conta manualmente é um pesadelo porque o número de pedidos muda a cada hora, a cada dia da semana.

O que é o "Kareto"?

O Kareto é como um gerente de pizzaria superinteligente e futurista que resolve esse problema para você. Ele não tenta adivinhar; ele usa uma simulação de realidade virtual para testar milhares de cenários antes de você abrir a loja no dia seguinte.

Aqui está como ele funciona, passo a passo:

1. O Simulador de "Mundo Paralelo"

Em vez de gastar dinheiro real alugando armários gigantes e depois descobrir que foi um erro, o Kareto cria um mundo virtual. Ele pega os pedidos que a pizzaria fez na semana passada e "roda" o dia seguinte mil vezes no computador, testando diferentes tamanhos de estantes, armários e depósitos.

  • A analogia: É como um piloto de avião que usa um simulador de voo para treinar para tempestades sem nunca sair do chão. O Kareto treina a configuração da sua memória sem gastar um centavo extra.

2. O Equilíbrio Perfeito (A Fronteira de Pareto)

O Kareto não busca apenas "o melhor" em uma coisa; ele busca o equilíbrio perfeito entre três coisas que brigam entre si:

  • Velocidade: Quão rápido a pizza sai? (Latência)
  • Quantidade: Quantas pizzas você consegue fazer por hora? (Vazão/Throughput)
  • Preço: Quanto você gasta alugando os armários? (Custo)

Imagine que você tem um gráfico onde o eixo X é o dinheiro e o eixo Y é a velocidade. O Kareto desenha uma linha mágica (a "Fronteira de Pareto") que mostra: "Se você quiser gastar 10% a mais, você ganha 20% de velocidade. Mas se quiser gastar mais 10% além disso, você só ganha 1% de velocidade." Ele encontra o ponto exato onde vale a pena gastar e onde é desperdício.

3. O "Poda Inteligente" (Não perca tempo no óbvio)

Testar todas as combinações possíveis levaria anos. O Kareto usa uma técnica chamada "Poda de Retornos Decrescentes".

  • A analogia: Imagine que você está regando uma planta. As primeiras garrafas de água fazem a planta crescer muito. Mas depois de um certo ponto, jogar mais água só faz a planta afogar e você gasta água à toa. O Kareto sabe exatamente quando parar de "jogar água" (aumentar a memória) porque percebeu que o crescimento parou de valer a pena. Ele pula as configurações inúteis e foca apenas nas áreas onde a mágica acontece.

4. O "Etiquetador Personalizado" (TTL por Grupo)

Aqui está a parte mais genial. Normalmente, os sistemas tratam todos os ingredientes da mesma forma: "Se não foi usado há 1 hora, jogue fora". Mas o Kareto percebe que nem todos os ingredientes são iguais.

  • A analogia: Na sua pizzaria, a mussarela é usada em 90% das pizzas (é um ingrediente "quente"). O alho é usado apenas em 1 pizza por dia (é um ingrediente "frio").
    • Um sistema burro joga o algo fora rápido e a mussarela também, ou mantém tudo por muito tempo.
    • O Kareto cria grupos. Ele diz: "A mussarela fica na prateleira rápida para sempre. O alho vai para o armário intermediário. O tempero exótico vai direto para o porão e só é trazido se alguém pedir especificamente."
    • Ele analisa o histórico de pedidos e descobre que certos "pedidos de pizza" (como frases de sistema ou prompts comuns) sempre voltam, então ele mantém esses ingredientes vivos por mais tempo, enquanto joga fora o que ninguém mais quer.

O Resultado na Vida Real

Quando os autores testaram o Kareto em dados reais de servidores de inteligência artificial:

  • Eles conseguiram fazer mais pizzas (aumentar a velocidade de resposta) em até 9,3%.
  • Conseguiram atender os clientes muito mais rápido (reduzir o atraso) em até 58,3%.
  • Ou, se preferissem, economizaram até 20,2% no aluguel dos armários, mantendo a mesma qualidade.

Resumo Final

O Kareto é um sistema que para de adivinhar quanto de memória você precisa para rodar Inteligência Artificial. Em vez de usar uma configuração fixa e cara (como "compre sempre 1 TB de memória"), ele observa o comportamento dos clientes, simula o futuro e ajusta automaticamente onde guardar os dados: o que é usado muito fica na memória rápida e cara; o que é usado pouco vai para o disco lento e barato.

É como ter um gerente de estoque que nunca dorme, nunca erra e sabe exatamente quanto de cada ingrediente você precisa para não desperdiçar dinheiro nem deixar o cliente esperando.