Batching
Batching na inferência de modelo é a prática de agrupar múltiplas solicitações de entrada e processá-las juntas em uma única passagem direta através do modelo, melhorando utilização de GPU e vazão. Batching contínuo estende isso inserindo e removendo sequências durante a geração em vez de esperar que um lote inteiro termine.
Batching agrega múltiplas solicitações de inferência—cada uma uma sequência de tokens—em um único tensor alimentado ao modelo simultaneamente. Operações de multiplicação de matriz GPU processam um lote de n sequências quase tão rápido quanto uma única sequência quando a capacidade de memória permite, porque o custo fixo de carregar pesos de modelo da memória é amortizado entre todos os membros do lote. Sem batching, cada solicitação incorre nesse overhead independentemente, deixando GPUs subutilizadas.
Em batching estático (ou síncrono), um grupo fixo de solicitações é montado antes que a geração comece; todas as sequências devem ser completas antes que o lote seja liberado, então solicitações que terminam rapidamente ficam ociosas esperando as lentas. Esse bloqueio de cabeça-de-fila tipicamente resulta em utilização de GPU de 20–40% sob cargas de comprimento misto. Batching contínuo, introduzido no artigo de pesquisa Orca (2022) e adotado por vLLM (2023), agenda no nível de iteração: sequências completas são removidas e novas solicitações inseridas em cada passo de decodificação, mantendo a GPU totalmente carregada independentemente da variância de comprimento de sequência. Isso aumenta utilização para 70–90%+ na prática.
Batching é o mecanismo principal pelo qual sistemas de disponibilização amortizam overhead de GPU entre usuários concorrentes. É também a principal alavanca disponível para operadores que desejam aumentar vazão sem adicionar hardware. O custo é latência aumentada para solicitações individuais, porque uma solicitação deve às vezes esperar na fila até que um slot de lote se abra—um compromisso que pode ser ajustado por ajuste de tamanho máximo de lote e política de agendamento.
A partir de 2026, batching contínuo é a estratégia padrão em runtimes LLM de código aberto importantes—vLLM, LMDeploy, SGLang e MLC-LLM—e é usado internamente por todos os grandes provedores de inferência comercial. Áreas de pesquisa ativa incluem prefill dividido (intercalando processamento de prompt com decodificação para reduzir picos de latência), batching especulativo e arquiteturas desagregadas que separam cargas de trabalho de prefill e decodificação em pools de hardware diferentes para controle de recurso mais fino.