ONNX形式にエクスポートしたMLモデルを実行するクロスプラットフォームのアクセラレーター。PyTorchスクリプトでの学習にも対応します。
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
PyPIからPythonパッケージをインストールする
pip install tract - 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 の数値は毎日更新されます。
関連プロジェクト
学習済みのscikit-learn、LightGBM、XGBoostモデルをテンソル演算に変換し、PyTorch、TorchScript、ONNX、TVMで推論を実行できるPythonライブラリです。
Microsoftによる12週間・全24レッスンの初学者向けAIカリキュラム。記号AI、ニューラルネットワーク、コンピュータービジョン、NLP、倫理を扱い、PyTorchとTensorFlowのノートブックを提供します。
MLIRベースのコンパイラとランタイム。MLモデルを統一IRに変換し、データセンターからモバイル・エッジデバイスまで展開できます。
Keras、PyTorch、ONNXのニューラルネットワークを、FPGAでのML推論向けHLSコードに変換するPythonパッケージです。
Java APIでモデルの構築、学習、実行ができる、特定のエンジンに依存しないJava向け深層学習フレームワーク。