GUIA Técnico

Envio de pré-preenchimento e decodificação desagregado

Uma arquitetura de serviço que divide a inferência de grandes modelos de linguagem em duas fases separadas – pré-preenchimento e decodificação – e as executa em diferentes pools de GPUs.

  • 2 minutos de leitura
  • Última atualização
Nesta página2 minutos de leitura
  1. Visão geral
  2. Mergulho profundo
  3. Impacto Estratégico
  4. O futuro do pré-preenchimento desagregado e da veiculação decodificada
  5. Implementação no mundo real
  6. Riscos e guarda-corpos
  7. Roteiro de implementação
  8. Continue explorando
  9. Perguntas frequentes

Visão geral

It matters because these two phases have opposite hardware appetites, and forcing them onto the same machines wastes capacity and hurts latency.

Mergulho profundo

Quando um LLM responde, ele funciona em duas etapas. O Prefill lê todo o prompt de uma vez e cria o cache de valor-chave (KV); esta é uma grande explosão paralela e limitada à computação que satura as unidades matemáticas da GPU. A decodificação então gera tokens um de cada vez, cada etapa lendo todo o cache KV – um gotejamento levemente computado limitado pela largura de banda da memória. Executados juntos, um longo pré-preenchimento paralisa a decodificação de todos (bloqueio de linha) e agrupar os dois em lote cria interferência. A desagregação coloca o pré-preenchimento em um pool de GPU e a decodificação em outro, transferindo o cache KV entre eles por meio de interconexões rápidas como NVLink ou InfiniBand. Cada pool é ajustado e dimensionado de forma independente, melhorando o bom rendimento, suavizando a latência final e permitindo que os operadores atinjam metas rígidas de tempo para o primeiro token e de tempo por token de saída simultaneamente.

Impacto Estratégico

Custo e orçamento

As decisões de arquitetura impulsionam o desempenho e os custos operacionais durante anos.

Decisões mais claras

A educação técnica ajuda as equipes a escolher a pilha certa, não apenas a mais nova.

Controle de qualidade

Melhores escolhas de engenharia reduzem incidentes de confiabilidade na produção.

O futuro do pré-preenchimento desagregado e da veiculação decodificada

Espere que a desagregação se torne um padrão nas pilhas de produção. Sistemas como DistServe, Splitwise e Mooncake o popularizaram, e vLLM e NVIDIA Dynamo agora oferecem modos desagregados. A pesquisa está impulsionando otimizações de transferência de cache KV, pooling de cache e reutilização entre solicitações, reequilíbrio dinâmico de taxas de pré-preenchimento/decodificação sob mudança de tráfego e integração mais estreita com cache de prefixo e pré-preenchimento fragmentado. À medida que as janelas de contexto crescem para milhões de tokens, a separação dessas fases torna-se cada vez mais essencial para um serviço econômico e de baixa latência.

Implementação no mundo real

Um assistente de bate-papo encaminha longos prompts de documentos para um cluster de pré-preenchimento com muita computação e, em seguida, transmite respostas de um cluster de decodificação com otimização de memória para manter a latência de digitação suave.

O NVIDIA Dynamo e o vLLM permitem que as operadoras implantem grupos de trabalhadores de pré-preenchimento e decodificação separados para que uma série de prompts longos não congele as gerações contínuas.

Mooncake (usado por Kimi da Moonshot AI) desagrega o pré-preenchimento e a decodificação e adiciona um pool de cache KV distribuído para reduzir a recomputação de prompt redundante em escala.

Um serviço de conclusão de código dedica um pequeno pool de pré-preenchimento para prompts curtos e um grande pool de decodificação, já que a maior parte do custo vem do streaming de muitos tokens de saída.

Riscos e guarda-corpos

  • A otimização de um benchmark pode ocultar fraquezas mais amplas do sistema.

  • Os custos de infraestrutura e manutenção são frequentemente subestimados.

  • As lacunas de segurança e observabilidade podem aumentar à medida que os sistemas se tornam mais complexos.

Roteiro de implementação

  1. Defina metas de latência, qualidade e custo antes da implementação.

  2. Benchmark sob condições realistas de carga e dados.

  3. Monitoramento de instrumentos para erros, desvios e impacto no usuário.

  4. Prepare caminhos de reversão e resposta a incidentes antes de escalar.

Continue explorando

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Disaggregated Prefill and Decode Serving quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Iniciar teste

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Perguntas frequentes

What is Disaggregated Prefill and Decode Serving?

Uma arquitetura de serviço que divide a inferência de grandes modelos de linguagem em duas fases separadas – pré-preenchimento e decodificação – e as executa em diferentes pools de GPUs. É importante porque essas duas fases têm apetites de hardware opostos e forçá-las nas mesmas máquinas desperdiça capacidade e prejudica a latência.

Qual é o principal motivo do hardware para separar o pré-preenchimento e a decodificação em diferentes pools de GPU?

O pré-preenchimento processa todo o prompt em paralelo e satura a computação, enquanto a decodificação lê o cache KV em cada etapa e é limitada pela largura de banda da memória – apetites opostos que justificam pools separados e ajustados de forma independente.

Qual estrutura de dados deve ser transferida dos trabalhadores de pré-preenchimento para os trabalhadores de decodificação?

O Prefill cria o cache KV para o prompt; decode precisa desse cache para continuar gerando, portanto, o cache é enviado por meio de uma interconexão rápida para o pool de decodificação.

Qual problema a desagregação reduz especificamente em uma configuração de GPU compartilhada?

Em GPUs compartilhadas, uma longa explosão de pré-preenchimento pode bloquear etapas de decodificação em andamento; separá-los evita essa interferência e estabiliza a latência da cauda.

Por que o pré-preenchimento pode ser agrupado de forma agressiva, mas a decodificação se beneficia de ajustes diferentes?

O pré-preenchimento processa todos os tokens de prompt juntos, para que lotes maiores alimentem bem os núcleos do tensor; decode gera um token por vez e é controlado pela memória, portanto, é dimensionado de maneira diferente.

Quais interconexões são normalmente usadas para mover o cache KV entre conjuntos desagregados?

Links de alta largura de banda e baixa latência, como NVLink (intra-nó) e InfiniBand (entre nós), são necessários para que a transferência de cache KV não se torne o novo gargalo.