sonos/tract
Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference
解决的问题
tract 是一个神经网络推理引擎,旨在在各种硬件上运行 AI 模型,从嵌入式 ARM CPU 和浏览器中的 WebAssembly 到 NVIDIA 和 Apple GPU。它通过将模型从 ONNX、TensorFlow Lite 和 NNEF 等格式转换为专用的中间表示(tract-OPL),避免了运行时对重型训练框架加载器和 protobuf 的依赖,从而实现极小的运行时占用空间。
工作原理
它从 ONNX、NNEF 和 TFLite 等格式加载模型,针对目标硬件进行优化并执行。它使用 TypedModel IR(中间表示),允许在不同平台之间迁移已优化的模型。对于唤醒词检测或流式语音识别等实时、低延迟工作负载,它采用一种称为“脉冲化(pulsification)”的过程,将通常处理完整序列的网络转换为每步处理固定大小数据脉冲的网络。
适用人群
需要在不同硬件目标上部署模型的嵌入式系统、基于浏览器的 AI 或工作站开发者,他们需要高性能且轻量级的运行时环境。
主要亮点
- 多平台支持: 支持 x86、ARM(包括 SVE)、Apple Metal、NVIDIA CUDA 和 WebAssembly。
- 广泛模型支持: 兼容 ONNX、NNEF 和 TFLite,通过
torch-to-nnef提供从 PyTorch 到 NNEF 的直接路径。 - 极小运行时占用: 使用 tract-OPL 仅分发必要的运行时组件,避免使用臃肿的加载器。
- 流式推理: 对实时、低延迟的音频/语音工作负载提供原生支持的脉冲化推理。
- 语言绑定: 支持 Rust 和 Python 两种语言。
相关
- 项目
- 项目
- 项目
- 项目
- 项目