LLM Serving Optimization with Variable Prefill and Decode Lengths
Este artigo aborda o problema NP-difícil de escalonamento de serviço de LLM offline sob restrições fixas de cache KV com comprimentos de requisição heterogêneos, propondo o algoritmo Sorted-F, que alcança uma garantia de aproximação de fator constante e reduz significativamente a latência de ponta a ponta em comparação com as linhas de base padrão.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você está administrando uma cozinha de restaurante movimentada (o servidor LLM) com uma regra muito específica: você tem apenas uma quantidade limitada de espaço de balcão (a memória KV-cache) para preparar os pedidos.
Nesta cozinha, cada pedido tem duas partes:
- O Ticket do Pedido (Prefill): O cliente lhe entrega uma lista longa ou curta de ingredientes. Você tem que ler a lista inteira antes de começar a cozinhar. Isso ocupa espaço no balcão imediatamente.
- O Cozimento (Decode): Você cozinha o prato um passo de cada vez. Cada vez que você adiciona um novo ingrediente à panela, a panela fica um pouco maior, ocupando ainda mais espaço no balcão.
O objetivo é servir todos os clientes o mais rápido possível (minimizar a latência).
O Probleo: O Erro do "Tamanho Único"
Anteriormente, os chefs pensavam que a melhor estratégia era simples: "Cozinhar os pratos menores primeiro." Se um cliente pede um aperitivo minúsculo, cozinhe-o antes de um bife gigante.
Mas os autores deste artigo descobriram uma armadilha. No mundo real, os pedidos são bagunçados:
- Pedido A: Um menu enorme (entrada longa) mas um prato minúsculo (saída curta). Ele ocupa muito espaço no balcão apenas para ler o menu, mas cozinha instantaneamente.
- Pedido B: Um menu minúsculo (entrada curta) mas um ensopado de cozimento lento (saída longa). Ele ocupa pouco espaço para começar, mas a panela continua crescendo por um longo tempo.
Se você seguir a antiga regra de "o menor prato primeiro", pode ficar preso. Você pode começar o ensopado de cozimento lento porque ele parecia pequeno no início, apenas para perceber que ele está sugando todo o seu espaço de balcão, forçando você a esperar horas antes que possa sequer começar os outros pedidos. O artigo prova que, se você misturar esses diferentes tipos de pedidos, as antigas regras podem falhar espetacularmente, e encontrar o cronograma perfeito é matematicamente impossível de resolver instantaneamente (é um problema NP-difícil).
A Solução: A "Pontuação de Eficiência" (Sorted-F)
Os autores inventaram uma nova maneira de decidir o que cozinhar a seguir, chamada Sorted-F. Em vez de apenas olhar o quão pequeno é o prato, eles criaram uma Pontuação de Eficiência especial (a métrica F).
Pense nesta pontuação como uma calculadora de "custo-benefício" para o seu espaço de balcão. Ela pergunta:
"Se eu colocar este grupo de pedidos no balcão agora, quantos pratos totais eu terminarei por minuto de espaço de balcão utilizado?"
Ela equilibra duas coisas:
- Tamanho do Lote (Batch Size): Quantos pedidos podem caber no balcão ao mesmo tempo?
- Tempo de Cozimento: Por quanto tempo as panelas continuarão crescendo?
A Estratégia:
- Agrupamento: O algoritmo olha para o backlog de pedidos e tenta formar "lotes" (grupos de pedidos cozinhados juntos).
- Pontuação: Ele calcula a Pontuação de Eficiência para cada grupo possível.
- Seleção: Ele escolhe o grupo com a melhor pontuação (o número mais baixo) e começa a cozinhar.
- Ajuste Dinâmico: Assim que um prato no grupo é finalizado, sua panela diminui, liberando espaço para um novo pedido entrar imediatamente.
Os Resultados: Por Que Funciona
Os autores testaram isso com dados do mundo real, misturando mensagens de chat curtas (como pedir um café) com resumos de documentos longos (como cozinhar um banquete de 10 pratos).
- O Jeito Antigo (O Mais Curto Primeiro): Ficou travado com pratos longos e lentos que bloqueavam o balcão.
- O Novo Jeito (Sorted-F): Encontrou a mistura perfeita. Ele pode até começar alguns pratos longos se eles se encaixarem bem com muitos pratos curtos, garantindo que o balcão esteja sempre cheio de trabalho produtivo.
O Número Mágico:
O artigo prova matematicamente que o novo método deles nunca é mais do que 48 vezes pior do que o cronograma absolutamente perfeito (que é impossível de calcular). Na prática, no entanto, ele performa quase tão bem quanto o melhor teórico, cortando tempos de espera por margens enormes (às vezes 4x a 5x mais rápido) em comparação com os métodos padrão quando a cozinha está movimentada.
Dicas Práticas para a Cozinha
Como calcular o grupo perfeito a cada segundo é muito lento para uma cozinha real, os autores também construíram três "códigos de trapaça" (aproximações) para diferentes situações:
- O Calculador Exato: Para cozinhas pequenas (poucos pedidos), ele encontra o grupo perfeito todas as vezes.
- O Trocador Local: Para cozinhas médias, ele faz pequenos ajustes em um plano inicial bom para torná-lo melhor.
- O Escolhedor Rápido: Para cozinhas massivas e caóticas, ele usa uma estimativa rápida e bruta para obter uma resposta boa o suficiente instantaneamente.
Eles também mostraram que, mesmo que você não saiba exatamente quanto tempo um prato levará (porque você tem que adivinhar o tempo de cozimento), o sistema deles pode se adaptar sobre a hora. Se um prato demorar mais do que o esperado, o sistema remove gentilmente os pratos menos importantes do balcão para abrir espaço, em vez de causar o colapso de todo o sistema.
A Conclusão
Quando você tem uma mistura de tarefas curtas e longas competindo por memória limitada, você não pode simplesmente escolher as mais curtas. Você precisa de um sistema inteligente que olhe para o grupo inteiro e como eles se encaixam. O algoritmo Sorted-F faz exatamente isso, agindo como um mestre chef que sabe exatamente como organizar as panelas no fogão para colocar o jantar na mesa o mais rápido possível.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.