Continuous Batching
O batching contínuo adiciona e remove solicitações de um lote em execução a cada etapa, em vez de esperar por um lote completo, aumentando o uso da GPU e reduzindo a latência.
O batching contínuo é uma técnica avançada de agendamento e otimização de inferência usada em aprendizado de máquina (ML) para maximizar a utilização do hardware e a taxa de processamento. No batching estático tradicional, um mecanismo de inferência espera acumular um número predeterminado de solicitações antes de processá-las simultaneamente. Isso costuma gerar ineficiências, pois o sistema precisa aguardar o término da solicitação mais demorada do lote antes de liberar recursos. O batching contínuo, também conhecido como batching em voo ou em nível de iteração, resolve isso inserindo novas solicitações no lote de computação assim que uma solicitação ativa é concluída, reduzindo significativamente o tempo ocioso nas GPUs e melhorando a eficiência geral.
Distinguir conceitos relacionados#
Para entender melhor como os dados são processados durante a implantação de modelos, é útil diferenciar o batching contínuo de outros termos relacionados do glossário:
- Tamanho do lote: refere-se ao número fixo de amostras processadas simultaneamente durante o treinamento ou a inferência. Os fluxos de trabalho tradicionais de processamento em lote dependem de tamanhos estáticos, enquanto o batching contínuo permite que o tamanho efetivo do lote varie dinamicamente de acordo com o tráfego recebido.
- Inferência em tempo real: esse conceito se concentra em minimizar a latência de inferência para gerar previsões imediatas, processando entradas individuais à medida que chegam. O batching contínuo preenche a lacuna entre o batching estático de alta taxa de transferência e a inferência em tempo real de baixa latência, mantendo uma alta taxa de transferência sem obrigar solicitações rápidas a esperar pelas mais lentas.
Aplicações no mundo real#
O batching contínuo é essencial para sistemas de produção que lidam com grandes volumes de solicitações imprevisíveis. Veja dois exemplos concretos de aplicação:
-
Geração de texto de alta taxa de processamento: Ao servir modelos de linguagem de grande escala (LLMs), o tempo necessário para gerar respostas para diferentes usuários varia conforme o tamanho da saída. Frameworks que usam batching contínuo — como o vLLM no Ray Serve — podem transmitir continuamente os tokens recém-gerados e substituir imediatamente as conversas concluídas por novos prompts. Esse método, popularizado originalmente por pesquisas sobre agendamento em nível de iteração, melhora drasticamente a taxa de processamento da geração de texto.
-
Análise assíncrona de vídeo: em tarefas de compreensão de vídeo, como rastrear veículos pela rede de câmeras de trânsito de uma cidade, os quadros chegam em intervalos diferentes. O batching contínuo permite que modelos de rastreamento de objetos processem dinamicamente os quadros de vídeo recebidos assim que os recursos ficam disponíveis, otimizando os pipelines de aceleração de hardware para painéis de cidades inteligentes.
Processamento contínuo em tarefas de visão#
Ao gerenciar práticas de implantação de modelos com alto tráfego, executar inferências em fluxo e de forma iterativa pode simular os benefícios do batching dinâmico, liberando memória gradualmente em vez de mantê-la ocupada. O exemplo de Python a seguir demonstra como usar o padrão gerador com a API de previsão do modelo para processar eficientemente um fluxo contínuo de imagens.
from ultralytics import YOLO
# Load the latest Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Using stream=True acts as a generator, iteratively processing inputs
# to keep memory usage low and throughput high
results = model.predict(source=["img1.jpg", "img2.jpg", "img3.jpg"], stream=True)
# Process each result as soon as it completes
for result in results:
print(f"Detected {len(result.boxes)} objects in this frame.")Gerenciar o agendamento de recursos em nível de sistema exige equilibrar velocidade bruta e custo operacional. As equipes que implantam modelos de visão computacional (CV) e de linguagem em grande escala recorrem cada vez mais a frameworks avançados de disponibilização para gerenciar esses lotes dinâmicos. Para equipes empresariais que buscam simplificar sua infraestrutura, a Plataforma Ultralytics oferece ferramentas robustas para treinar, monitorar e exportar modelos para ambientes de produção altamente otimizados.










