Zubnet AIAprenderWiki › ONNX
Infraestrutura

ONNX

Também conhecido como: Open Neural Network Exchange
Um formato aberto para representar modelos de machine learning que permite interoperabilidade entre frameworks. Um modelo treinado em PyTorch pode ser exportado para ONNX e depois executado usando ONNX Runtime, TensorRT ou outros motores de inferência otimizados para hardware específico. ONNX funciona como uma linguagem comum entre o mundo de treinamento (PyTorch, TensorFlow) e o mundo de deploy (runtimes otimizados).

Por que isso importa

ONNX resolve um problema real de produção: você treina em PyTorch (o padrão de pesquisa) mas faz deploy em hardware que funciona melhor com um runtime diferente. Converter para ONNX permite usar motores de inferência otimizados sem reescrever seu modelo. É especialmente importante para deploy em edge onde você precisa de desempenho máximo em hardware limitado.

Em profundidade

ONNX define um formato de grafo computacional: nós representam operações (multiplicação de matrizes, convolução, atenção), arestas representam tensores fluindo entre operações. O grafo inclui toda a informação necessária para executar o modelo: arquitetura, pesos, formatos de entrada/saída e definições de operadores. ONNX Runtime (Microsoft) é o runtime mais popular, suportando CPU, GPU e aceleradores especializados.

Quando Usar ONNX

ONNX é mais útil quando: (1) você precisa fazer deploy em hardware não-NVIDIA (Intel, AMD, ARM, mobile) onde PyTorch CUDA não está disponível, (2) você precisa de velocidade máxima de inferência e as otimizações do ONNX Runtime superam PyTorch, ou (3) você está integrando um modelo em uma aplicação não-Python (ONNX Runtime tem bindings para C++, C#, Java e JavaScript). Para inferência GPU padrão com LLMs grandes, frameworks especializados de serving (vLLM, TGI) tipicamente superam ONNX.

Limitações

Nem todas as operações PyTorch convertem perfeitamente para ONNX, especialmente operadores personalizados e arquiteturas dinâmicas. Modelos complexos podem exigir intervenção manual para exportar corretamente. ONNX também atrasa em relação a arquiteturas de ponta — novos tipos de modelo podem não ser suportados até que operadores ONNX sejam adicionados. Para inferência de LLM especificamente, o ecossistema GGUF/llama.cpp e TensorRT-LLM se tornaram mais populares que ONNX para a maioria dos casos de uso.

Conceitos relacionados

← Todos os termos
← Ollama OpenAI →