Repolode
sonos

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. 1

    Instale o pacote Python do PyPI

    pip install tract
  2. 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