La inteligência artificial local Já não é algo exclusivo de grandes empresas com enormes centros de dados. Hoje, você pode executar modelos avançados de IA diretamente no seu PC, laptop ou até mesmo em dispositivos embarcados, aproveitando sua CPU, GPU ou NPU, sem depender constantemente da nuvem e garantindo que atenda aos requisitos. Requisitos mínimos e recomendados para um desempenho ideal.
Neste artigo, examinaremos calmamente como O ONNX Runtime permite que você execute modelos de IA em seu próprio hardware.Seja integrando-o com .NET e VB.NET, usando-o em Python, C++ ou C#, ou aproveitando a integração nativa com o Windows ML, você verá o que é o formato ONNX, como os modelos são exportados e otimizados, o papel dos Provedores de Execução e por que tudo isso é fundamental para ter IA rápida, privada e acessível no seu trabalho diário. Também veremos como... Aproveite a IA local com o Ryzen. em dispositivos compatíveis.
O que é ONNX e qual problema ele resolve?
Onnx., acrônimo para Troca de rede neural abertaÉ um padrão aberto para representar modelos de aprendizado de máquina e aprendizado profundo. Seu objetivo é permitir que você treinar um modelo em uma estrutura como PyTorch, TensorFlow, Keras, TFLite ou scikit-learn, e depois executá-lo em um ambiente diferente sem se preocupar com conversões específicas.
Este formato define um serialização baseada em grafos que descreve a arquitetura do modelo (camadas, conexões, operações, tipos de dados, etc.) e um conjunto de operadores padrão (convoluções, ativações, normalizações, etc.). Por ser baseado em grafos e não em formatos binários fechados como Pickle ou Joblib, facilita a interoperabilidade entre linguagens e frameworks, algo especialmente útil em visão computacional e aplicações de baixa latência.
Para as equipes de IA, o ONNX se tornou um componente essencial porque Isso reduz a dependência de um único fornecedor.Você treina onde quiser, converte para ONNX e, em seguida, escolhe o mecanismo de inferência que melhor se adapta às suas necessidades (ONNX Runtime, TensorRT, OpenVINO etc.) no hardware disponível, seja um servidor em nuvem, um computador desktop, um FPGA ou um dispositivo de borda.
O padrão conta com o apoio de grandes empresas do setor, como... Microsoft, NVIDIA, Intel e outros fabricantesIsso fomentou um ecossistema muito amplo de ferramentas: conversores oficiais, bibliotecas para conversão e otimização, visualização de modelos com Netron e o famoso ONNX Model Zoo, com modelos pré-treinados para começar sem precisar treinar do zero.

Como o ONNX Runtime se integra ao Windows ML e ao ecossistema Windows?
No Windows, o ONNX Runtime está intimamente integrado através de Aprendizado de máquina do Windows (Windows ML)Essa camada funciona como um middleware que agrupa e gerencia os recursos de hardware do seu PC (CPU, GPU e NPU) para executar modelos ONNX com o melhor desempenho possível, sem que você precise gerenciar os detalhes de baixo nível de cada chip.
O Windows ML fornece uma cópia compartilhada do ambiente de execução ONNX Em nível de sistema, isso permite que os aplicativos usem esse ambiente comum em vez de empacotar sua própria versão do ONNX Runtime no instalador. Isso reduz o tamanho do aplicativo, simplifica as atualizações e garante que a versão mais adequada para o sistema seja utilizada.
Além disso, o sistema operacional é capaz de baixar dinamicamente provedores de execução específicos para o hardware disponível. Ou seja, ele detecta se o seu computador possui uma GPU NVIDIA, uma NPU Qualcomm ou uma GPU integrada Intel ou AMD e baixa o EP correspondente, mantendo-o atualizado sem que o desenvolvedor precise se preocupar com isso.
Para programadores C#, C++ ou Python, o Windows ML oferece uma API que reutiliza os conceitos e padrões do ONNX Runtime, de forma que Você pode migrar cargas de trabalho existentes baseadas no ONNX Runtime para o ambiente Windows ML com poucas alterações.E se você estiver trabalhando com o SDK de aplicativos do Windows (versão 1.8.1 ou posterior no Windows 11 24H2 ou posterior), essa integração já está pronta para uso; isso é especialmente útil em dispositivos modernos, como... Notebooks Windows com Snapdragon X2 Elite.
Modelos ONNX: estrutura, tipos e exemplos práticos
Um modelo de formato ONNX é, essencialmente, um representação matemática do sistema aprendido após o treinamento. Essa representação inclui tudo o que é necessário para realizar inferências em outro ambiente, sem precisar preservar o código original da estrutura onde foi treinado.
Dentro de um arquivo ONNX você encontrará o arquitetura modelo (as camadas, os nós de computação, as conexões entre eles e o tipo de operações), o pesos treinados (os parâmetros que o modelo ajustou durante o treinamento) e a definição formal de entradas e saídas, com suas dimensões, tipos de dados e nomes.
Por exemplo, um modelo de classificação de imagens treinado em PyTorch pode ser exportado para ONNX para aceitar um tensor com uma imagem normalizada como entrada e retornar um vetor com as probabilidades de pertencimento a cada classe como saída. Esse mesmo arquivo pode então ser executado com o ONNX Runtime em um servidor Windows com GPU ou em um dispositivo IoT sem alterar o modelo; além disso, se você trabalha com visão computacional avançada, pode consultar guias para detectar objetos em imagens com IA.
O ecossistema ONNX inclui o Zoológico Modelo ONNXUm repositório de modelos pré-treinados e prontos para uso: redes de classificação de imagens (ResNet, MobileNet e similares, com tamanhos na ordem de 5 a 10 MB), modelos de linguagem como o GPT-2 (aproximadamente 500 MB) ou arquiteturas muito robustas para detecção e segmentação de objetos (1 a 2 GB ou mais). Isso permite testar modelos de alta qualidade sem precisar treiná-los do zero.
Vantagens de executar IA em seu próprio hardware
Um dos motivos pelos quais o ONNX e o ONNX Runtime ganharam tanta popularidade é porque Eles facilitam a execução de IA localmente.Ou seja, no próprio dispositivo do usuário ou na infraestrutura local da empresa, reduzindo a dependência de serviços em nuvem.
A primeira vantagem é a dados privadosAo não enviar informações para servidores de terceiros, o risco de vazamentos ou uso indevido é minimizado. Isso é crucial em setores que lidam com dados sensíveis (saúde, finanças, administração pública ou departamentos jurídicos corporativos) e não desejam que seus dados circulem fora de sua rede interna.
Isso também reduz significativamente custo recorrenteIsso porque você não precisa pagar constantemente por instâncias de computação em nuvem para executar modelos de inferência. Você investe em seu próprio hardware (ou aproveita o que já possui) e evita surpresas na sua fatura no final do mês, quando o uso da API dispara.
Outra vantagem muito clara é a baixa latênciaAo executar o modelo no próprio dispositivo, você elimina o tempo de ida e volta da rede, o que é especialmente perceptível em aplicações em tempo real (visão computacional industrial, assistentes interativos, processamento de vídeo ao vivo ou videogames com IA integrada).
Por fim, executar modelos localmente lhe permite controle total sobre a implantaçãoVocê pode personalizar o pipeline, aplicar quantização ou poda, restringir o acesso a determinados recursos, decidir quando atualizar o modelo e adaptar a inferência aos regulamentos internos da sua empresa ou às regulamentações aplicáveis.
Requisitos básicos para começar a usar o ONNX Runtime em .NET e outros ambientes.
Se você quiser começar a usar Runtime ONNX com .NET e VB.NET No seu computador, os requisitos iniciais são bastante razoáveis. Você precisará de um sistema operacional compatível (Windows, macOS ou uma distribuição Linux popular) e do .NET Framework ou .NET Core instalado, dependendo do seu projeto.
No caso específico do Visual Studio, basta abrir sua solução e Adicione o pacote NuGet Microsoft.ML.OnnxRuntime.Este pacote inclui as bibliotecas necessárias para carregar um modelo ONNX, criar sessões de inferência e invocar o mecanismo com os dados de entrada apropriados.
Além do tempo de execução, você precisará de pelo menos um modelo em formato ONNXVocê pode treiná-lo você mesmo com PyTorch ou TensorFlow e exportar os resultados, ou baixar um do ONNX Model Zoo para testes. A partir daí, você se concentrará no pré-processamento dos dados de entrada e na interpretação das saídas do modelo; se precisar de ajuda para escolher o hardware, consulte nosso guia. guia para escolher bem.
Em máquinas com hardware mais modesto, o ONNX Runtime foi projetado para ser Eficiente mesmo sem uma GPU potente.No entanto, se você for lidar com modelos de linguagem, generativos ou de visão grandes e complexos, ter uma GPU moderna ou, melhor ainda, uma NPU dedicada fará diferença nos tempos de resposta.
Como usar o ONNX Runtime passo a passo: sessões, inferência e compilação.
O fluxo de trabalho típico com o ONNX Runtime consiste em: Carregar um modelo, criar uma sessão de inferência e executar previsões.Embora o código específico varie dependendo da linguagem, a filosofia é muito semelhante em todas elas.
Primeiro, você especifica o caminho para o arquivo .onnx e Você cria uma sessão de inferência. com as opções desejadas (por exemplo, configurar quais provedores de execução você deseja permitir ou ajustar parâmetros de otimização). No .NET, isso é feito por meio das classes expostas por Microsoft.ML.OnnxRuntime; em Python, você usará a API onnxruntime diretamente.
Em seguida, você constrói o conjunto de entradas para o modeloNormalmente, um ou mais tensores com o formato e o tipo de dados que o modelo espera (imagens pré-processadas, texto tokenizado, vetores numéricos, etc.). Essas entradas são agrupadas em um dicionário ou estrutura de mapa que associa o nome da entrada ao seu valor.
Assim que a entrada estiver preparada, você chama o método de execução da sessãoque retorna as saídas do modelo também na forma de tensores. Tudo o que resta é pós-processar esses resultados para transformá-los em algo compreensível (rótulos, pontuações, texto gerado, caixas delimitadoras, etc.) e usá-los em sua aplicação.
A partir da versão 1.22 do ONNX Runtime, existe uma abordagem mais avançada: compilar modelos em uma representação otimizada antes de serem lançadas em produção. Novas APIs, como as associadas ao framework OrtCompileApi, encapsulam melhor as etapas de compilação para que o ambiente de execução gere artefatos específicos para o hardware de destino, melhorando ainda mais o desempenho.
Windows ML, provedores de execução de hardware e gerenciamento automático
No ecossistema Windows, o Windows ML serve como um camada de orquestração inteligente Sobre o ONNX Runtime. Ele não apenas reutiliza seu mecanismo de inferência, mas também gerencia automaticamente qual provedor de execução é mais adequado para cada máquina e modelo.
Un Provedor de Execução (PE) Basicamente, é um componente que sabe como otimizar determinadas operações de IA para um backend específico (CPU, GPU, NPU ou aceleradores especializados), registrando os kernels necessários e participando do particionamento do grafo de operações para que cada parte seja executada no dispositivo mais eficiente.
O Windows ML oferece diversas vantagens notáveis: Download e gerenciamento automático de EPs Recursos específicos de hardware, uso de um ambiente de execução ONNX compartilhado em nível de sistema (o que reduz drasticamente o tamanho do aplicativo) e compatibilidade com uma ampla variedade de configurações (PCs desktop x64, sistemas ARM64, servidores Windows, etc.).
O fluxo de implantação automatizado normalmente segue estas etapas: durante a instalação de um aplicativo baseado no SDK do Windows App, o Windows ML é inicializado; o ambiente de execução detecta o hardware disponível; os pacotes de extensão (EPs) ideais são baixados (por exemplo, TensorRT para uma GPU RTX, um EP específico para a NPU Snapdragon X ou a pilha OpenVINO para Intel); e a partir daí, O aplicativo pode começar a executar modelos de IA imediatamente..
Graças a essa arquitetura, os desenvolvedores não precisam empacotar drivers ou bibliotecas específicos para cada fabricante, nem manter versões separadas do aplicativo para cada hardware. O Windows ML cuida disso. Resumo dos detalhes do backend e garantir que a inferência seja realizada com o melhor desempenho possível.
Conversão de modelos para ONNX e fluxo de trabalho de desenvolvimento típico
Para usufruir dos benefícios do ONNX Runtime, o primeiro passo é Converta seus modelos para o formato ONNX.O fluxo de trabalho mais comum em projetos de visão computacional e aprendizado de máquina em geral combina estas fases: treinamento, exportação, otimização e implantação.
Normalmente, você treina o modelo em sua estrutura preferida (por exemplo, uma rede de classificação de imagens em PyTorch ou uma rede de detecção de objetos em TensorFlow) e, uma vez alcançado o desempenho desejado, exportá-lo para ONNXEm PyTorch, utiliza-se a função torch.onnx.export, enquanto em TensorFlow, geralmente se usa a ferramenta tf2onnx ou outras integradas em bibliotecas de alto nível.
Nessa exportação, é aconselhável definir um versão de opset compatível (por exemplo, a versão 15, que tem amplo suporte) para evitar problemas com mecanismos de inferência mais antigos. Após gerar o arquivo ONNX, você pode inspecioná-lo com ferramentas como o Netron para verificar se o grafo está como esperado e se não há operadores exóticos ou não padronizados.
Antes da implementação em produção, muitas equipes aplicam uma fase de otimização de modelo: quantização para reduzir o tamanho e melhorar a velocidade, poda de pesos e filtros, agrupamento de parâmetros ou até mesmo destilação de conhecimento, passando informações de um modelo grande para um menor que seja mais gerenciável em dispositivos com recursos limitados.
Uma vez que o modelo esteja em ONNX e otimizado, ele é integrado ao ONNX Runtime ou a plataformas como Windows ML, TensorRT ou OpenVINO, e implantado no ambiente de destino: servidores em nuvem, PCs industriais, dispositivos de borda ou aplicativos móveis e de desktop.
Aceleração de hardware e desempenho de inferência com o ONNX Runtime.
El desempenho de inferência Essa é uma das principais razões para escolher o ONNX Runtime. Em muitas comparações práticas, foram observadas melhorias significativas ao executar modelos convertidos do PyTorch ou do TensorFlow. tempos de resposta e consumo de recursos.
Em casos de uso com um tamanho de lote de 1 (muito típico em interfaces interativas ou visão em tempo real), o ONNX Runtime geralmente oferece velocidades de inferência inicial 20% maiores Em comparação com o PyTorch, e em execuções prolongadas, foram relatadas acelerações de até 5 vezes, com reduções notáveis no uso da CPU sem aumento da latência.
Essas melhorias devem-se a otimizações como a Fusão de kernels, simplificação de grafos e quantização.Isso permite que menos operações efetivas sejam realizadas para alcançar o mesmo resultado. Ao mesmo tempo, a capacidade de segmentar o grafo e atribuir partes específicas a GPUs ou NPUs maximiza a utilização do hardware.
O ONNX Runtime suporta uma ampla variedade de aceleradores: NVIDIA CUDA e TensorRT para GPUs dedicadas, Intel OpenVINO e oneDNN para CPUs e VPUs, AMD ROCm, Qualcomm QNN, Apple CoreML e Android NNAPI para dispositivos móveis e DirectML em ambientes Windows. ampla compatibilidade com EPs Isso permite que o mesmo modelo ONNX seja executado de forma eficiente em diversas plataformas diferentes.
Tudo isso faz do ONNX Runtime uma escolha ideal para aplicações de visão computacional, sistemas embarcados e dispositivos de borda que exigem respostas em tempo real e consumo muito baixo de RAM e CPU.
Nesse contexto, o ONNX e o ONNX Runtime se consolidaram como uma ponte sólida entre o treinamento em frameworks populares e a execução otimizada em qualquer tipo de hardware, oferecendo a combinação ideal de desempenho, flexibilidade e privacidade para levar modelos de inteligência artificial ao seu próprio hardware sem complicações desnecessárias.

