Saiba como o processamento contínuo em lotes otimiza GPU e reduz a latência. Descubra como usar Ultralytics para maximizar a eficiência em tarefas de ML de produção.
O processamento contínuo em lotes é uma técnica avançada de otimização de programação e inferência usada em aprendizado de máquina (ML) para maximizar a utilização do hardware e o rendimento. No processamento estático tradicional em lotes, um mecanismo de inferência aguarda um número predeterminado de solicitações para acumular antes de processá-las simultaneamente. Isso muitas vezes leva a ineficiências, pois o sistema precisa aguardar a conclusão da solicitação de execução mais longa no lote antes de liberar recursos. O processamento contínuo em lote, também conhecido como processamento dinâmico ou em nível de iteração, resolve isso injetando 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.
Para entender melhor como os dados são processados durante a implementação do modelo, é útil diferenciar o processamento contínuo em lotes de outros termos relacionados no glossário:
O processamento contínuo por lotes é fundamental para sistemas de produção que lidam com grandes volumes de solicitações imprevisíveis. Aqui estão dois exemplos concretos da sua aplicação:
Ao gerir práticas de implementação de modelos de alto tráfego, o streaming iterativo de inferências pode simular os benefícios do processamento dinâmico em lotes, garantindo que a memória seja liberada progressivamente, em vez de bloqueada. O Python a seguir demonstra como usar o padrão gerador com a API de previsão do modelo para lidar com um fluxo contínuo de imagens de maneira eficiente.
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.")
A gestão do agendamento de recursos ao nível do sistema requer um equilíbrio entre velocidade bruta e custo operacional. As equipas que implementam visão computacional (CV) e modelos de linguagem em grande escala dependem cada vez mais de estruturas de serviço avançadas para gerir esses lotes dinâmicos. Para equipas empresariais que procuram otimizar a sua infraestrutura, a Ultralytics oferece ferramentas robustas para treinar, monitorizar e exportar modelos para ambientes de produção altamente otimizados.