sonos/tract
Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference
何を解決するか
tract は、幅広いハードウェア上で AI モデルを実行するためのニューラルネットワーク推論エンジンであり、最小限のランタイムフットプリントで動作します。ONNX、NNEF、TFLite などのフォーマットからモデルを読み込み、さまざまな環境(組み込み ARM CPU や GPU(NVIDIA/Apple)から Web ブラウザでの WebAssembly まで)にモデルをデプロイする際、重い学習フレームワークや大きなローダーを配布する必要がなくなる問題を解決します。
動作方法
tract は ONNX、NNEF、TFLite などのフォーマットからモデルを読み込み、特定のランタイム向けに最適化およびコンパイルします。NNEF を基盤とした特殊な中間表現である tract-OPL を使用することで、「一度変換、軽量ランタイムを配布」というワークフローを実現し、モデルをビルド時にコンパクトな形式に変換することで、最終的なデプロイには最小限のコアライブラリのみが必要になります。
また、「パルス化(pulsification)」機能も備えており、完全なシーケンスで訓練されたモデルを、固定サイズの「パルス」データを処理できるバージョンに変換します。これにより、ウェイクワード検出などのタスクにおいて、低遅延でリアルタイムのストリーミング推論が可能になります。
対象ユーザー
リソース効率が重要なプロダクション環境に AI モデルをデプロイする開発者向けです。組み込みデバイス、ブラウザベースのアプリケーション、Linux、macOS、Windows 上のワークステーションなどが該当します。
特徴
- マルチプラットフォーム対応: x86、ARM(SVE を含む)、Apple Metal、NVIDIA CUDA、WebAssembly で動作。
- 広範なモデル互換性: ONNX、NNEF、TFLite、およびレガシーな TensorFlow 1 のフローズングラフをサポート。
- ストリーミング推論: パルス化ネットワークの第一級サポートにより、リアルタイムで低遅延の処理が可能。
- 最小限のフットプリント: 変換プロセスと実行エンジンを分離することで、小さなランタイムサイズを最適化。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト