sonos/tract
Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference
何を解決するか
tract は、ONNX、TensorFlow Lite、NNEF などの形式からモデルを専用の中間表現(tract-OPL)に変換することで、実行時に重いトレーニングフレームワークのローダーやprotobufを必要とせずに、極めて小さなランタイムフットプリントを実現するニューラルネットワーク推論エンジンです。エッジARM CPU、ブラウザ内のWebAssembly、NVIDIAおよびApple GPUなど、幅広いハードウェア上でAIモデルを実行することを目的としています。
動作方法
ONNX、NNEF、TFLiteなどの形式からモデルを読み込み、ターゲットハードウェアに最適化して実行します。TypedModel IR(中間表現)を使用することで、あるプラットフォームで最適化されたモデルを別のプラットフォームに移行できます。ウェイクワード検出やストリーミング音声認識など、リアルタイムで低遅延が必要なワークロードでは、「パルス化(pulsification)」と呼ばれるプロセスを使用し、通常はフルシーケンスを処理するネットワークを、各ステップで固定サイズのデータパルスを処理するように変換します。
対象ユーザー
エッジシステム、ブラウザベースのAI、またはワークステーション向けのAIアプリケーションを開発し、異なるハードウェアターゲットにモデルをデプロイするための高パフォーマンスで軽量なランタイムを必要とする開発者。
特徴
- マルチプラットフォーム対応: x86、ARM(SVEを含む)、Apple Metal、NVIDIA CUDA、WebAssemblyで動作。
- 広範なモデル対応: ONNX、NNEF、TFLiteと互換性があり、
torch-to-nnefを通じてPyTorchからNNEFへの直接パスを提供。 - 小さなランタイムフットプリント: tract-OPLを使用して、必要なランタイムコンポーネントのみを配布し、重いローダーを回避。
- ストリーミング推論: リアルタイムで低遅延な音声/スピーチワークロード向けに、パルス化推論を第一級のサポート。
- 言語バインディング: RustおよびPythonの両方で利用可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト