SLO-Aware Compute Resource Allocation for Prefill-Decode Disaggregated LLM Inference

Este artigo propõe uma abordagem híbrida que combina modelagem teórica e medições empíricas para determinar a alocação ótima de recursos computacionais em sistemas de inferência de LLM com desagregação Prefill-Decode, garantindo o cumprimento de objetivos de nível de serviço (SLOs) relacionados ao tempo de primeiro token e ao tempo por token de saída.

Luchang Li, Dongfang Li, Bozhao Gong, Yu Zhang

Publicado 2026-03-06
📖 5 min de leitura🧠 Leitura aprofundada

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

Imagine que você está gerenciando um restaurante de luxo muito popular, onde os clientes pedem pratos complexos (os LLMs ou Modelos de Linguagem). O processo de servir um prato tem duas etapas distintas:

  1. A Preparação (Prefill): O chef lê o pedido, pega os ingredientes e começa a cozinhar. Isso exige muita força e atenção, mas é rápido.
  2. O Serviço (Decode): O prato é entregue ao cliente e ele começa a comer, pedindo mais um pouco de cada vez. Isso exige menos força do chef, mas é um processo contínuo e lento.

No passado, o mesmo chef fazia as duas coisas ao mesmo tempo. O problema? Quando o chef estava focado em preparar o próximo pedido (Preparação), ele demorava para atender o cliente que já estava comendo (Serviço). Isso criava um gargalo: o cliente ficava esperando a primeira garfada (o "Primeiro Token") e, depois, a comida saía devagar.

Para resolver isso, a indústria criou a Desagregação P/D (Prefill-Decode). Agora, temos dois tipos de cozinheiros:

  • Cozinheiros de Preparação (Prefill): Super rápidos, focados apenas em pegar o pedido e começar a cozinhar.
  • Cozinheiros de Serviço (Decode): Focados apenas em entregar a comida e manter o cliente satisfeito enquanto come.

O Problema: Quantos Cozinheiros Contratar?

Aqui entra o dilema que este artigo resolve. Se você contratar muitos Cozinheiros de Preparação e poucos de Serviço, os pedidos ficam prontos, mas ninguém os entrega rápido, e os clientes reclamam que a comida chega fria (o "Token por Tempo" fica alto). Se contratar muitos de Serviço e poucos de Preparação, os clientes ficam esperando horas para receber o primeiro prato (o "Tempo até o Primeiro Token" fica alto).

A pergunta difícil é: Qual é a quantidade exata de cada tipo de cozinheiro que eu preciso para atender X clientes por hora, sem que ninguém fique insatisfeito e sem gastar dinheiro com cozinheiros ociosos?

A Solução: A Receita Mágica (O Método do Artigo)

Os autores deste artigo propuseram uma "receita" inteligente que mistura matemática teórica com testes práticos para descobrir o número perfeito de cozinheiros.

1. A Teoria do Trânsito (Para a Preparação)

Para saber quantos "Cozinheiros de Preparação" são necessários, eles usam uma teoria chamada M/M/1 (que é basicamente como estudamos filas de banco ou trânsito).

  • A Analogia: Imagine que o Cozinheiro de Preparação é uma única janela de atendimento. Se muitos clientes chegam de uma vez, eles formam uma fila.
  • O Truque: Eles medem o quanto o cozinheiro consegue fazer no máximo (quando não há fila). Depois, eles calculam: "Se o cliente exige que a primeira garfada chegue em 2 segundos, quantos clientes posso atender por vez sem criar uma fila longa demais?"
  • Resultado: Eles descobrem que, para ser rápido, o cozinheiro precisa trabalhar um pouco menos do que sua capacidade máxima, para não deixar ninguém esperando. Isso define quantos cozinheiros de preparação você precisa.

2. O Teste de Resistência (Para o Serviço)

Para os "Cozinheiros de Serviço", a lógica é diferente. Eles podem atender vários clientes ao mesmo tempo (como um garçom que leva várias bandejas).

  • A Analogia: Se o garçom carrega 10 pratos de uma vez, ele é super eficiente, mas se ele carregar 20, ele pode tropeçar e demorar mais para entregar cada um (o tempo por token aumenta).
  • O Truque: Eles fazem testes práticos (benchmarks) para ver qual é o "número mágico" de pratos que o garçom pode carregar sem violar o tempo de entrega prometido ao cliente.
  • Resultado: Eles descobrem exatamente quantos pedidos o garçom pode processar por segundo mantendo a promessa de rapidez.

3. O Equilíbrio Final

Com esses dois números (quantos pedidos a preparação consegue fazer e quantos o serviço consegue entregar), eles usam uma fórmula simples para descobrir a proporção ideal.

  • Se os pedidos são longos (muitos ingredientes), você precisa de mais Cozinheiros de Preparação.
  • Se os pedidos geram respostas longas (o cliente come muito), você precisa de mais Cozinheiros de Serviço.

O Resultado na Prática

Os autores testaram essa "receita" em um cenário real, usando modelos de IA gigantes (como o DeepSeek) em computadores superpotentes (GPUs H200).

  • O Cenário: Eles precisavam atender 5 milhões de "bocas" por minuto, garantindo que o primeiro prato chegasse em 2 segundos e a comida continuasse chegando a cada 20 milissegundos.
  • A Descoberta: A fórmula deles disse: "Você precisa de 3 Cozinheiros de Preparação e 4 Cozinheiros de Serviço".
  • A Confirmação: Quando eles montaram exatamente essa equipe, o restaurante funcionou perfeitamente, atendendo a meta de velocidade e volume. Se tivessem usado 3 e 3, os clientes teriam reclamado da lentidão na entrega. Se tivessem usado 3 e 5, teriam gastado dinheiro com um garçom extra que não era necessário.

Resumo em uma frase

Este artigo ensina como calcular a quantidade exata de "cérebros rápidos" (para começar a tarefa) e "cérebros contínuos" (para terminar a tarefa) que você precisa para rodar uma Inteligência Artificial, garantindo que ela seja rápida para todos e não desperdice dinheiro com equipamentos parados. É como encontrar o equilíbrio perfeito entre cozinheiros e garçons para um restaurante lotado.