Repolode
sonos

sonos/tract

Автономный движок инференса на Rust для запуска моделей ONNX и NNEF на CPU, Apple Metal, NVIDIA CUDA и WebAssembly.

Звёзды
3,112
Форки
297
Открытые issues
136
Последний коммит
8 часов назад

Что это?

tract — движок инференса нейросетей на Rust, который разрабатывает Sonos. Он загружает модели ONNX и NNEF, оптимизирует их и запускает на самых разных устройствах: от встроенных ARM-процессоров до GPU NVIDIA и Apple, в браузере через WebAssembly, а также на компьютерах с Linux, macOS и Windows. На PyPI также опубликован Python-пакет, построенный на том же ядре.

В основе проекта — идея один раз преобразовать модель в промежуточный формат на базе NNEF, tract-OPL, а затем поставлять вместе с приложением только небольшую среду выполнения. Проект также поддерживает инференс с пульсациями (pulsified inference): он преобразует последовательную модель так, чтобы она обрабатывала данные фиксированными по размеру блоками вдоль оси потока. Это позволяет использовать пакетную обработку и инференс с низкой задержкой в реальном времени, например для обнаружения ключевых слов активации и потокового распознавания речи. В репозитории есть примеры классификации изображений, распознавания речи, генерации текста с трансформерами, генерации изображений по тексту и обнаружения лиц.

Ключевые возможности

  • 01Загружает модели ONNX, NNEF, TensorFlow Lite и замороженные графы TensorFlow 1 предыдущего поколения.
  • 02Запускается на CPU с SIMD-ядрами, написанными вручную, а также использует бэкенды Apple Metal и NVIDIA CUDA.
  • 03Компилируется в WebAssembly для развертывания в браузере или WASI.
  • 04Преобразует модели в компактный формат на базе NNEF, чтобы свести к минимуму зависимости среды выполнения.
  • 05Поддерживает инференс с пульсациями для потоковых моделей, например для обнаружения ключевых слов активации и распознавания речи.
  • 06Предоставляет Rust API и Python-пакет на PyPI.

Сценарии использования

  • Запуск обнаружения ключевых слов активации или потокового распознавания речи на встроенных ARM-устройствах.
  • Поставка небольшой среды выполнения инференса без protobuf и загрузчиков фреймворков для обучения.
  • Запуск моделей ONNX или NNEF в приложении на Rust на CPU или GPU.
  • Запуск моделей для работы с изображениями, речью или языком в браузере через WebAssembly.

Быстрый старт

  1. 1

    Установите пакет Python из PyPI

    pip install tract
  2. 2

    Загрузите модель ONNX и запустите её с помощью Rust API, следуя примеру быстрого старта в README

Что важно знать

  • TensorFlow 2 напрямую не поддерживается, поэтому модели необходимо предварительно преобразовать в ONNX.
  • Для сборки из исходного кода требуется rustc версии 1.91.0 или новее.
  • Для сред выполнения Metal и CUDA нужны соответственно графические процессоры Apple и NVIDIA.

Темы

Частые вопросы

Что такое tract?
Автономный движок инференса на Rust для запуска моделей ONNX и NNEF на CPU, Apple Metal, NVIDIA CUDA и WebAssembly. tract — движок инференса нейросетей на Rust, который разрабатывает Sonos. Он загружает модели ONNX и NNEF, оптимизирует их и запускает на самых разных устройствах: от встроенных ARM-процессоров до GPU NVIDIA и Apple, в браузере через WebAssembly, а также на компьютерах с Linux, macOS и Windows. На PyPI также опубликован Python-пакет, построенный на том же ядре.
tract можно использовать бесплатно? Какая у него лицензия?
tract распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
tract всё ещё поддерживается?
Активно поддерживается. Последний коммит в tract — 7 нояб. 2026 г..
Для чего можно использовать tract?
Запуск обнаружения ключевых слов активации или потокового распознавания речи на встроенных ARM-устройствах. Поставка небольшой среды выполнения инференса без protobuf и загрузчиков фреймворков для обучения. Запуск моделей ONNX или NNEF в приложении на Rust на CPU или GPU. Запуск моделей для работы с изображениями, речью или языком в браузере через WebAssembly.
Как установить tract?
Установите пакет Python из PyPI: pip install tract Загрузите модель ONNX и запустите её с помощью Rust API, следуя примеру быстрого старта в README
Где скачать tract?
Исходный код и инструкции по установке — на GitHub: https://github.com/sonos/tract

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Учебная программа Microsoft по ИИ для начинающих: 12 недель и 24 урока о символическом ИИ, нейросетях, компьютерном зрении, NLP и этике, с ноутбуками на PyTorch и TensorFlow.

70,6 тыс.+218 за неделю13,7 тыс.Jupyter NotebookMITОбновлён 3 дня назад