Descubra como o ONNX aprimora a portabilidade e a interoperabilidade do modelo de IA, permitindo a implantação perfeita dos modelos Ultralytics YOLO em diversas plataformas.
O ONNX (Open Neural Network Exchange) é um formato de código aberto para representar modelos de aprendizagem automática (ML). Co-desenvolvido por empresas como a Microsoft e o Facebook, o ONNX actua como um tradutor universal, permitindo aos programadores mover modelos entre diferentes estruturas e ferramentas de ML. Esta interoperabilidade é crucial para simplificar o percurso desde o desenvolvimento do modelo até à produção. Em vez de ficarem presas a um único ecossistema, as equipas podem treinar um modelo numa estrutura, como o PyTorch, e implementá-lo para inferência utilizando outra, como o TensorFlow ou um motor de inferência especializado. Os modelos YOLO do Ultralytics, por exemplo, podem ser facilmente exportados para o formato ONNX, proporcionando máxima flexibilidade para implantação em várias plataformas.
O ONNX fornece uma definição padrão para um gráfico computacional, juntamente com uma lista de operadores incorporados. Quando se converte um modelo para o formato ONNX, a sua arquitetura - composta por camadas e operações matemáticas - é mapeada para esta norma universal. O resultado .onnx
contém a estrutura da rede e os dados treinados pesos do modelo.
Este ficheiro normalizado pode então ser carregado por qualquer ferramenta que suporte a especificação ONNX. Isto inclui:
A flexibilidade do ONNX torna-o inestimável em muitos cenários de visão computacional e ML.
Implantação de IA em dispositivos de borda: Um programador pode treinar um modelo de deteção de objectos complexo, como o Ultralytics YOLO11, num computador de secretária potente com GPUs NVIDIA. Para que a aplicação seja executada num dispositivo periférico de baixo consumo, como um Raspberry Pi ou uma câmara inteligente utilizada na análise de retalho, o modelo é exportado para o ONNX. Pode então ser optimizado por um tempo de execução como o ONNX Runtime ou o OpenVINO para um desempenho eficiente no hardware de destino sem necessitar do ambiente PyTorch original.
Integração de modelos em diversas aplicações: Considere uma empresa de cuidados de saúde que constrói um modelo de análise de imagens médicas utilizando Python e TensorFlow. A infraestrutura de software existente do hospital é construída com C# e .NET. Em vez de reescrever o modelo, a equipa exporta-o para ONNX. A aplicação C# pode então utilizar o ONNX Runtime for .NET para integrar diretamente as capacidades do modelo, reduzindo significativamente o tempo de desenvolvimento e a complexidade.
É importante distinguir ONNX de termos relacionados:
.pt
ou SavedModel do TensorFlow são nativos dos seus respectivos quadros. O ONNX actua como um intermediário, permitindo a conversão entre estes formatos ou a implementação através de um tempo de execução comum. TorchScript é outro formato para a serialização de modelos PyTorch, por vezes utilizado como alternativa ou precursor da exportação ONNX.Em resumo, o ONNX é um padrão vital para garantir flexibilidade e interoperabilidade no pipeline de operações de aprendizado de máquina (MLOps), permitindo que os desenvolvedores escolham as melhores ferramentas para treinamento e implantação sem serem restringidos por limitações de estrutura. Plataformas como o Ultralytics HUB aproveitam esses formatos para simplificar a jornada desde o desenvolvimento do modelo até a aplicação no mundo real. Para saber mais, visite o sítio Web oficial do ONNX e explore o projeto no GitHub.