Кроссплатформенный ускоритель для запуска ML-моделей, экспортированных в формат ONNX, с поддержкой обучения с помощью PyTorch-скриптов.
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
Установите пакет Python из PyPI
pip install tract - 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 обновляется ежедневно.
Похожие проекты
Библиотека Python, которая преобразует обученные модели scikit-learn, LightGBM и XGBoost в тензорные вычисления для запуска в PyTorch, TorchScript, ONNX или TVM.
Учебная программа Microsoft по ИИ для начинающих: 12 недель и 24 урока о символическом ИИ, нейросетях, компьютерном зрении, NLP и этике, с ноутбуками на PyTorch и TensorFlow.
Компилятор и среда выполнения на базе MLIR, преобразующие ML-модели в единое IR для развертывания в дата-центрах, на мобильных и периферийных устройствах.
Пакет Python для преобразования нейросетей из Keras, PyTorch и ONNX в код HLS для запуска инференса на FPGA.
Независимый от движка фреймворк глубокого обучения для Java, позволяющий создавать, обучать и запускать модели через нативный Java API.