sonos/tract

Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference

解决的问题

tract 是一个神经网络推理引擎,旨在以极小的运行时占用空间在多种硬件上运行 AI 模型。它解决了跨不同环境部署模型的问题——从嵌入式 ARM CPU 和 GPU(NVIDIA/Apple)到通过 WebAssembly 运行的 Web 浏览器——而无需附带庞大的训练框架或大型加载器。

工作原理

tract 从 ONNX、NNEF 和 TFLite 等格式加载模型,然后针对特定的运行时对其进行优化和编译。它使用一种名为 tract-OPL(基于 NNEF)的专用中间表示,以实现“一次转换,部署微型运行时”的工作流,即在构建时将模型转换为紧凑格式,从而在最终部署时只需要一小组核心库。

它还具有“脉冲化(pulsification)”特性,可将基于完整序列训练的模型转换为能够处理固定大小数据“脉冲”的版本,从而为唤醒词检测等任务实现低延迟的实时流式推理。

适用人群

它专为将 AI 模型部署到资源效率至关重要的生产环境的开发者而构建,例如嵌入式设备、基于浏览器的应用程序,以及跨 Linux、macOS 和 Windows 的工作站。

亮点

  • 多平台支持:在 x86、ARM(包括 SVE)、Apple Metal、NVIDIA CUDA 和 WebAssembly 上运行。
  • 广泛的模型兼容性:支持 ONNX、NNEF、TFLite 和传统的 TensorFlow 1 冻结图。
  • 流式推理:为脉冲化网络提供一流支持,以实现实时、低延迟的处理。
  • 极小占用空间:通过将转换过程与执行引擎分离,针对较小的运行时体积进行了优化。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目