Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Inference Latency

A latência de inferência é o tempo que um modelo demora a transformar uma entrada numa previsão. O que a aumenta, como medi-la e qual é a relação de compromisso com o débito.

A latência de inferência é o tempo que um modelo de aprendizado de máquina treinado leva para transformar uma entrada, como um quadro de câmera ou um prompt de texto, em uma previsão. Geralmente é expressa em milissegundos (ms) e determina a rapidez com que um sistema pode reagir: uma câmera que opera a 30 quadros por segundo fornece um novo quadro a cada 33,3 ms, então um detector que demora mais fica para trás do fluxo e deixa de oferecer inferência em tempo real. A latência é informada apenas para a passagem direta ou de ponta a ponta, desde a entrada bruta até a saída utilizável. Sistemas de produção acompanham percentis como a mediana (p50) e o 99º percentil (p99), pois algumas respostas lentas podem ser tão relevantes quanto a média.

O que aumenta a latência de inferência#

Uma única previsão passa por várias etapas. O pré-processamento decodifica, redimensiona e normaliza a entrada. A passagem direta executa a rede, e seu custo aumenta conforme os FLOPs do modelo, a resolução da entrada e a precisão numérica, enquanto sua velocidade depende do processador, seja uma CPU, uma GPU ou uma unidade de processamento neural (NPU). O pós-processamento converte as saídas brutas em resultados; em um detector, isso envolve decodificar caixas e executar a supressão não máxima (NMS). Uma API na nuvem acrescenta o tempo de ida e volta da rede e qualquer tempo de espera da solicitação na fila, por isso a IA de borda executa modelos no dispositivo que captura os dados. A primeira chamada também é mais lenta que as demais, pois as estruturas alocam memória, carregam pesos nos caches e selecionam kernels na primeira utilização.

O hardware e o ambiente de execução podem alterar o passe direto em uma ordem de magnitude ou mais: o Ultralytics YOLO26 nano leva, em média, 38,9 ms por imagem COCO de 640 pixels com ONNX em uma CPU e 1,7 ms com TensorRT em uma GPU NVIDIA T4. O Ultralytics YOLO registra os tempos de cada etapa de todas as predições no atributo speed do resultado, e o modo de benchmark repete a medição para cada formato de exportação:

from ultralytics import YOLO

# Load the smallest YOLO26 detection model
model = YOLO("yolo26n.pt")

# Predict on one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]

# Per-image time in milliseconds for each stage of the pipeline
for stage, ms in result.speed.items():
    print(f"{stage}: {ms:.1f} ms")

O loop imprime os tempos de pré-processamento, inferência e pós-processamento, cuja soma corresponde à latência do modelo para essa imagem no dispositivo atual.

Como medir a latência com precisão#

Os valores de latência só são comparáveis quando são medidos da mesma forma. Medições confiáveis descartam algumas execuções de aquecimento, medem muitas execuções e informam a mediana e um percentil de cauda, em vez de uma única execução. Em GPUs, o temporizador precisa aguardar o dispositivo, por exemplo, com torch.cuda.synchronize(), pois os kernels são iniciados de forma assíncrona e uma leitura antecipada do relógio termina antes da conclusão do trabalho. O tamanho da entrada, o tamanho do lote, a precisão e o dispositivo precisam corresponder à implantação, pois a latência de um modelo em uma GPU de centro de dados diz pouco sobre sua latência em um celular. Os FLOPs estimam o custo sem considerar nenhum hardware, mas modelos com o mesmo número de FLOPs podem operar em velocidades bem diferentes no mesmo dispositivo.

Latência de inferência e throughput#

Vazão é o número de entradas que um sistema processa por unidade de tempo, como imagens por segundo ou tokens por segundo, e muitas vezes varia em sentido contrário à latência. Um lote maior mantém o hardware mais ocupado e aumenta a vazão, mas cada entrada do lote precisa esperar até que o lote inteiro seja processado, aumentando também o tempo de resposta de cada solicitação:

import time

import torch
import torchvision

# A ResNet-18 image classifier in inference mode on the CPU
model = torchvision.models.resnet18().eval()

for batch in [1, 2, 4, 8]:
    x = torch.randn(batch, 3, 224, 224)
    with torch.inference_mode():
        model(x)  # warmup run, not timed
        times = []
        for _ in range(20):
            start = time.perf_counter()
            model(x)
            times.append(time.perf_counter() - start)
    latency = sorted(times)[len(times) // 2]  # median seconds per batch
    print(f"batch {batch}: {latency * 1e3:5.1f} ms per batch, {batch / latency:4.0f} images/s")

Em uma CPU de laptop, aumentar o lote de 1 para 8 elevou a vazão de 168 para 220 imagens por segundo, enquanto o tempo para retornar um lote aumentou de 6 ms para 36 ms. Por isso, sistemas interativos, como assistência ao motorista e assistentes de voz, operam com tamanho de lote 1, enquanto tarefas offline, como indexar um arquivo de vídeos, processam lotes maiores. Servidores de LLMs usam processamento contínuo em lotes, adicionando e removendo solicitações de um lote em execução para manter a vazão alta sem fazer cada usuário esperar pelo processamento de um lote inteiro.

Redução da latência de inferência#

Os maiores ganhos geralmente vêm da redução dos cálculos: uma variante menor do modelo, uma resolução de entrada mais baixa ou menos pesos por meio da poda de modelos. A quantização de modelos para FP16 ou INT8 torna cada operação restante mais barata em hardware com unidades rápidas de baixa precisão. Exportar para um mecanismo de inferência otimizado, como TensorRT, OpenVINO ou ONNX Runtime, funde camadas e escolhe os kernels mais rápidos para o dispositivo. Executar o modelo no próprio dispositivo elimina o tempo de ida e volta da rede, que costuma custar dezenas de milissegundos em uma conexão móvel.

Onde a latência é importante#

  • Modelos de linguagem grandes (LLMs): os serviços de chat acompanham o tempo até o primeiro token, que os usuários percebem como capacidade de resposta, e o tempo por token de saída, que determina a velocidade de transmissão. A decodificação especulativa reduz o segundo ao verificar vários tokens propostos em um único passe direto.
  • Inspeção industrial: Uma câmera acima de uma esteira precisa classificar cada peça antes que ela chegue ao portão de rejeição, então a latência determina a velocidade máxima da linha.
  • Veículos autônomos: Percepção, planejamento e controle dividem um orçamento de tempo limitado, e a 100 km/h um carro percorre 2,8 metros durante cada atraso de 100 ms.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina