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

Inference Engine

Um motor de inferência executa modelos treinados no hardware de destino com camadas fundidas, precisão reduzida e kernels otimizados. Como funciona e quais são os motores mais comuns.

Um mecanismo de inferência é o software que executa uma rede neural treinada para gerar previsões com novos dados. Ele recebe um modelo exportado de uma estrutura de treinamento, geralmente como um grafo computacional, por exemplo, um arquivo ONNX, otimiza esse grafo para um processador específico e o executa com o mínimo possível de latência de inferência e uso de memória. Há mecanismos para todas as classes de hardware, desde GPUs de centros de dados até celulares e microcontroladores. Na implantação de modelos, o mecanismo é o componente que calcula cada previsão.

Como os mecanismos de inferência aceleram os modelos#

Um modelo implantado nunca atualiza seus pesos, então um mecanismo pode descartar tudo o que o treinamento exige, como ativações armazenadas para a retropropagação, e reescrever o grafo livremente. Ele pré-calcula qualquer parte que dependa apenas de constantes, funde sequências de camadas, como convolução, normalização e ativação, em kernels únicos para que os resultados intermediários permaneçam na memória rápida do chip e planeja a memória para reutilizar buffers. Ele pode reduzir a precisão numérica para FP16 ou INT8 por meio da quantização de modelos, medindo intervalos de ativação em dados de amostra para INT8. Mecanismos como o TensorRT então medem o tempo de vários kernels candidatos para cada camada no dispositivo real e mantêm o mais rápido, vinculando o resultado àquele hardware:

Fundir a normalização em lotes com a convolução anterior é uma das reescritas mais comuns. Na inferência, a normalização apenas multiplica e soma valores fixos a cada canal, então esses números podem ser incorporados aos pesos e ao viés da convolução. O PyTorch disponibiliza a mesma transformação como fuse_conv_bn_eval:

import torch
from torch.nn.utils.fusion import fuse_conv_bn_eval

torch.manual_seed(0)

# A trained convolution followed by batch normalization (random statistics here)
conv = torch.nn.Conv2d(16, 32, kernel_size=3, padding=1).eval()
bn = torch.nn.BatchNorm2d(32).eval()
bn.running_mean.uniform_(-1, 1)
bn.running_var.uniform_(0.5, 2.0)

# Fold the normalization's scale and shift into the convolution's weights and bias
fused = fuse_conv_bn_eval(conv, bn)

# One layer now replaces two and produces the same output
x = torch.randn(1, 16, 64, 64)
with torch.inference_mode():
    diff = (bn(conv(x)) - fused(x)).abs().max().item()
print(f"Max difference after fusing: {diff:.1e}")

A saída mostra uma diferença máxima de 2.1e-06, causada pelo arredondamento de ponto flutuante: a camada fundida executa a mesma função que as duas camadas originais, com uma passagem pela memória em vez de duas.

Mecanismos de inferência comuns#

  • TensorRT: mecanismo da NVIDIA para suas GPUs de centros de dados e módulos Jetson. Ele cria um plano para um modelo específico de GPU e uma versão específica do TensorRT, então os mecanismos precisam ser recriados quando qualquer um deles muda.
  • OpenVINO: kit de ferramentas da Intel para suas CPUs, GPUs integradas e discretas e NPUs.
  • ONNX Runtime: mecanismo multiplataforma da Microsoft para modelos ONNX, que encaminha o trabalho a back-ends de hardware chamados provedores de execução, incluindo CUDA, TensorRT, OpenVINO e Core ML.
  • LiteRT: ambiente de execução do Google, anteriormente chamado TensorFlow Lite, para Android, Linux embarcado e microcontroladores, com delegados para GPUs e NPUs móveis.
  • Core ML: estrutura da Apple para execução no dispositivo, que distribui o trabalho entre a CPU, a GPU e o Neural Engine.
  • vLLM: mecanismo de código aberto para modelos de linguagem grandes que adiciona agendamento de solicitações e memória paginada para o cache de atenção, permitindo atender muitos usuários ao mesmo tempo.

A API Ultralytics YOLO escolhe o mecanismo com base no arquivo carregado. Assim, a mesma chamada predict executa um checkpoint .pt no PyTorch, um arquivo .onnx no ONNX Runtime, um arquivo .engine no TensorRT ou uma pasta OpenVINO no OpenVINO. Exportar o Ultralytics YOLO26 para OpenVINO e carregar o resultado troca o mecanismo sem exigir outras alterações no código:

from ultralytics import YOLO

# Exporta o modelo PyTorch para o formato do OpenVINO
model = YOLO("yolo26n.pt")
path = model.export(format="openvino")  # creates 'yolo26n_openvino_model/'

# Carregar a pasta exportada executa as previsões pelo mecanismo OpenVINO
ov_model = YOLO(path)
results = ov_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_openvino.jpg")
  • PyTorch e outras estruturas de treinamento: Mantêm o grafo flexível e registram operações para calcular gradientes, permitindo projetar e treinar modelos. Também executam inferências, com mais sobrecarga do que um mecanismo criado para um dispositivo específico.
  • ONNX: Formato de arquivo que descreve o grafo e os pesos de um modelo. O ONNX Runtime e o TensorRT são mecanismos que leem esse formato.
  • Disponibilização de modelos: envolve um ou mais mecanismos em um serviço de rede com API, processamento de solicitações em lote e gerenciamento de versões, como faz o NVIDIA Dynamo-Triton, anteriormente chamado Triton Inference Server, para modelos TensorRT, ONNX Runtime e PyTorch.
  • Mecanismo de inferência de sistemas especialistas: O significado mais antigo do termo, proveniente da IA baseada em regras, em que o mecanismo de inferência aplica regras se-então a uma base de conhecimento por encadeamento progressivo ou regressivo.

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