Repolode
sonos

sonos/tract

ONNXとNNEFのモデルを読み込み、CPU、Apple Metal、NVIDIA CUDA、WebAssemblyで実行できる、自己完結型のRust推論エンジン。

スター
3,112
フォーク
297
未解決の Issue
136
最終コミット
5 時間前

これは何?

tractはSonosが開発するRust製のニューラルネットワーク推論エンジンです。ONNXとNNEFのモデルを読み込み、最適化して、組み込みのARM CPUからNVIDIAやAppleのGPUまで、WebAssembly経由のブラウザー、Linux、macOS、Windowsのマシンなど、幅広い環境で実行できます。同じコアを使ったPythonパッケージもPyPIで公開されています。

モデルを一度NNEFベースの中間形式であるtract-OPLに変換し、アプリケーションには小さなランタイムだけを同梱するのが基本的な考え方です。また、系列モデルをストリーミング軸に沿った固定サイズのチャンクで処理できるよう変換する、pulsified inferenceにも対応しています。これにより、バッチ処理と、ウェイクワード検出やストリーミング音声認識などの低遅延なリアルタイム処理の両方に対応できます。リポジトリには、画像分類、音声認識、transformerによるテキスト生成、text-to-image生成、顔検出のサンプルがあります。

主な機能

  • 01ONNX、NNEF、TensorFlow Lite、旧式のTensorFlow 1 frozen graphモデルを読み込みます。
  • 02手書きのSIMDカーネルを使ったCPU実行に加え、Apple MetalとNVIDIA CUDAのバックエンドに対応しています。
  • 03ブラウザーやWASIへのデプロイ向けにWebAssemblyへコンパイルできます。
  • 04モデルをコンパクトなNNEFベースの形式に変換し、ランタイムの依存関係を小さく保てます。
  • 05ウェイクワード検出や音声認識などのストリーミングモデルで、pulsified inferenceを利用できます。
  • 06Rust APIと、PyPIで公開されているPythonパッケージを提供しています。

ユースケース

  • 組み込みARMデバイスでウェイクワード検出やストリーミング音声認識を実行する。
  • protobufや学習フレームワークのローダーに依存しない、小さな推論ランタイムを配布する。
  • RustアプリケーションでONNXまたはNNEFモデルをCPUやGPU上で実行する。
  • WebAssembly経由で、ブラウザー上で画像、音声、言語モデルを実行する。

クイックスタート

  1. 1

    PyPIからPythonパッケージをインストールする

    pip install tract
  2. 2

    READMEのクイックスタート例に従ってONNXモデルを読み込み、Rust APIで実行する

使う前に知っておきたいこと

  • TensorFlow 2は直接サポートされていないため、モデルをあらかじめONNXに変換する必要があります。
  • ソースからビルドするにはrustc 1.91.0以降が必要です。
  • MetalランタイムとCUDAランタイムには、それぞれApple製GPUとNVIDIA製GPUが必要です。

トピック

よくある質問

tract とは?
ONNXとNNEFのモデルを読み込み、CPU、Apple Metal、NVIDIA CUDA、WebAssemblyで実行できる、自己完結型のRust推論エンジン。 tractはSonosが開発するRust製のニューラルネットワーク推論エンジンです。ONNXとNNEFのモデルを読み込み、最適化して、組み込みのARM CPUからNVIDIAやAppleのGPUまで、WebAssembly経由のブラウザー、Linux、macOS、Windowsのマシンなど、幅広い環境で実行できます。同じコアを使ったPythonパッケージもPyPIで公開されています。
tract は無料で使えますか?ライセンスは?
tract は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
tract は今もメンテナンスされていますか?
活発にメンテナンス中。tract の最終コミットは 2026年11月7日 です。
tract は何に使えますか?
組み込みARMデバイスでウェイクワード検出やストリーミング音声認識を実行する。 protobufや学習フレームワークのローダーに依存しない、小さな推論ランタイムを配布する。 RustアプリケーションでONNXまたはNNEFモデルをCPUやGPU上で実行する。 WebAssembly経由で、ブラウザー上で画像、音声、言語モデルを実行する。
tract のインストール方法は?
PyPIからPythonパッケージをインストールする: pip install tract READMEのクイックスタート例に従ってONNXモデルを読み込み、Rust APIで実行する
tract はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/sonos/tract

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト