Acelerador multiplataforma para executar modelos de ML exportados no formato ONNX, com suporte ao treinamento de scripts do PyTorch.
sonos/tract
Um mecanismo de inferência autônomo em Rust que carrega modelos ONNX e NNEF e os executa em CPU, Apple Metal, NVIDIA CUDA e WebAssembly.
- Estrelas
- 3,111
- Forks
- 298
- Issues abertas
- 136
- Último commit
- há 2 horas
O que é?
tract é um mecanismo de inferência de redes neurais escrito em Rust e desenvolvido pela Sonos. Ele carrega modelos ONNX e NNEF, otimiza-os e os executa em diversos destinos, de CPUs ARM embarcadas a GPUs NVIDIA e Apple, no navegador via WebAssembly ou em máquinas Linux, macOS e Windows. Um pacote Python baseado no mesmo núcleo também está disponível no PyPI.
Uma ideia central é traduzir o modelo uma única vez para o formato intermediário tract-OPL, baseado em NNEF, e então distribuir apenas um runtime pequeno com a aplicação. O projeto também oferece inferência pulsificada, que converte um modelo sequencial para processar blocos de tamanho fixo ao longo do eixo de streaming, atendendo tanto a casos em lote quanto a aplicações em tempo real e baixa latência, como detecção de palavra de ativação e reconhecimento de fala por streaming. Os exemplos no repositório abrangem classificação de imagens, reconhecimento de fala, geração de texto com transformers, geração de imagens a partir de texto e detecção de rostos.
Recursos principais
- 01Carrega modelos ONNX, NNEF, TensorFlow Lite e grafos congelados legados do TensorFlow 1.
- 02Executa em CPU com kernels SIMD escritos manualmente, além de oferecer backends para Apple Metal e NVIDIA CUDA.
- 03Compila para WebAssembly para implantação em navegadores ou WASI.
- 04Converte modelos para um formato compacto baseado em NNEF, mantendo pequenas as dependências do runtime.
- 05Oferece inferência pulsificada para modelos de streaming, como reconhecimento de palavra de ativação e de fala.
- 06Disponibiliza uma API Rust e um pacote Python no PyPI.
Casos de uso
- Executar detecção de palavra de ativação ou reconhecimento de fala por streaming em dispositivos ARM embarcados.
- Distribuir um runtime de inferência pequeno, sem protobuf nem loaders de frameworks de treinamento.
- Executar modelos ONNX ou NNEF em uma aplicação Rust, na CPU ou GPU.
- Executar modelos de imagem, fala ou linguagem no navegador via WebAssembly.
Início rápido
- 1
Instale o pacote Python do PyPI
pip install tract - 2
Carregue um modelo ONNX e execute-o com a API Rust, seguindo o exemplo de início rápido do README
Antes de usar
- O TensorFlow 2 não é compatível diretamente, então os modelos precisam ser convertidos para ONNX antes.
- Para compilar a partir do código-fonte, é necessário usar rustc 1.91.0 ou mais recente.
- Os ambientes de execução Metal e CUDA precisam de GPUs da Apple e da NVIDIA, respectivamente.
Tópicos
Perguntas frequentes
- O que é tract?
- Um mecanismo de inferência autônomo em Rust que carrega modelos ONNX e NNEF e os executa em CPU, Apple Metal, NVIDIA CUDA e WebAssembly. tract é um mecanismo de inferência de redes neurais escrito em Rust e desenvolvido pela Sonos. Ele carrega modelos ONNX e NNEF, otimiza-os e os executa em diversos destinos, de CPUs ARM embarcadas a GPUs NVIDIA e Apple, no navegador via WebAssembly ou em máquinas Linux, macOS e Windows. Um pacote Python baseado no mesmo núcleo também está disponível no PyPI.
- tract é gratuito? Qual é a licença?
- tract é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- tract ainda é mantido?
- Manutenção ativa. O último commit de tract foi em 6 de nov. de 2026.
- Para que posso usar tract?
- Executar detecção de palavra de ativação ou reconhecimento de fala por streaming em dispositivos ARM embarcados. Distribuir um runtime de inferência pequeno, sem protobuf nem loaders de frameworks de treinamento. Executar modelos ONNX ou NNEF em uma aplicação Rust, na CPU ou GPU. Executar modelos de imagem, fala ou linguagem no navegador via WebAssembly.
- Como instalar tract?
- Instale o pacote Python do PyPI: pip install tract Carregue um modelo ONNX e execute-o com a API Rust, seguindo o exemplo de início rápido do README
- Onde consigo tract?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sonos/tract
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Biblioteca Python que compila modelos treinados do scikit-learn, LightGBM e XGBoost em operações com tensores para executar inferências com PyTorch, TorchScript, ONNX ou TVM.
Currículo introdutório de IA da Microsoft, com 24 aulas ao longo de 12 semanas sobre IA simbólica, redes neurais, visão computacional, NLP e ética, incluindo notebooks em PyTorch e TensorFlow.
Um compilador e runtime baseado em MLIR que reduz modelos de ML a uma IR unificada para implantação em datacenters, dispositivos móveis e de edge.
Pacote Python que converte redes neurais de Keras, PyTorch e ONNX em código HLS para executar inferência de ML em FPGAs.
Um framework de deep learning para Java independente de engine, que permite criar, treinar e executar modelos com uma API nativa de Java.