ONNX形式にエクスポートしたMLモデルを実行するクロスプラットフォームのアクセラレーター。PyTorchスクリプトでの学習にも対応します。
microsoft/hummingbird
学習済みのscikit-learn、LightGBM、XGBoostモデルをテンソル演算に変換し、PyTorch、TorchScript、ONNX、TVMで推論を実行できるPythonライブラリです。
- スター
- 3,553
- フォーク
- 293
- 未解決の Issue
- 78
- 最終コミット
- 2 か月前
これは何?
Hummingbirdは、従来型の機械学習モデルをテンソル演算に変換し、ニューラルネットワーク向けのフレームワークで実行できるようにします。scikit-learnの決定木やランダムフォレスト、LightGBMやXGBoostの分類器・回帰器を、モデルを書き換えることなくPyTorch、TorchScript、ONNX、TVM向けに変換できます。
この変換では、木ベースの演算子など古典的な演算子を、ベクトル化やGPU実行に適した行列演算に置き換えます。Hummingbirdはscikit-learnにならった統一的なpredict形式のAPIを提供するため、変換済みモデルに差し替えても推論コードをそのまま維持できます。変換したPyTorchモデルとTorchScriptモデルはTorchServeで配信できます。
インストールにはpipでhummingbird-mlを使い、LightGBMとXGBoost向けの追加機能も任意で導入できます。Linux、Windows、macOSでPython 3.9~3.11をサポートし、PyTorch 1.6.0以降が必要です。
主な機能
- 01scikit-learnの決定木やランダムフォレスト、LightGBM、XGBoostのモデルを変換
- 02PyTorch、TorchScript、ONNX、TVMのバックエンドに対応
- 03変換済みモデル向けにscikit-learn形式のpredict APIを提供
- 04model.to('cuda')などを使い、CPUまたはGPUで予測を実行
- 05変換済みモデルの保存と読み込みに対応
ユースケース
- 学習済みランダムフォレストのバッチ推論をGPUで高速化
- PyTorchベースの単一の配信スタックで、古典的なMLモデルとニューラルネットワークを併せてデプロイ
- 木ベースのモデルをONNXまたはTVMにエクスポートし、Python以外の環境で実行
クイックスタート
- 1
pytorch.org から、お使いのプラットフォーム向けの PyTorch(バージョン 1.6.0 以降)をインストールします
- 2
pip から Hummingbird をインストールします
python -m pip install hummingbird-ml - 3
hummingbird.ml をインポートした後、convert(model, 'pytorch') で学習済みの scikit-learn モデルを変換します
使う前に知っておきたいこと
- Hummingbird を使用する前に、PyTorch を別途インストールする必要があります。
- TVM バックエンドは Python 3.10 でのみ動作します。
- 対応しているのは、scikit-learn、LightGBM、XGBoost のモデルと特徴量変換器の一部であり、すべてではありません。
収録されている特集
トピック
よくある質問
- hummingbird とは?
- 学習済みのscikit-learn、LightGBM、XGBoostモデルをテンソル演算に変換し、PyTorch、TorchScript、ONNX、TVMで推論を実行できるPythonライブラリです。 Hummingbirdは、従来型の機械学習モデルをテンソル演算に変換し、ニューラルネットワーク向けのフレームワークで実行できるようにします。scikit-learnの決定木やランダムフォレスト、LightGBMやXGBoostの分類器・回帰器を、モデルを書き換えることなくPyTorch、TorchScript、ONNX、TVM向けに変換できます。
- hummingbird は無料で使えますか?ライセンスは?
- hummingbird は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- hummingbird は今もメンテナンスされていますか?
- 半年以内に更新あり。hummingbird の最終コミットは 2026年9月14日 です。
- hummingbird は何に使えますか?
- 学習済みランダムフォレストのバッチ推論をGPUで高速化 PyTorchベースの単一の配信スタックで、古典的なMLモデルとニューラルネットワークを併せてデプロイ 木ベースのモデルをONNXまたはTVMにエクスポートし、Python以外の環境で実行
- hummingbird のインストール方法は?
- pytorch.org から、お使いのプラットフォーム向けの PyTorch(バージョン 1.6.0 以降)をインストールします pip から Hummingbird をインストールします: python -m pip install hummingbird-ml hummingbird.ml をインポートした後、convert(model, 'pytorch') で学習済みの scikit-learn モデルを変換します
- hummingbird はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/microsoft/hummingbird
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ONNXとNNEFのモデルを読み込み、CPU、Apple Metal、NVIDIA CUDA、WebAssemblyで実行できる、自己完結型のRust推論エンジン。
PyTorch上に構築された深層学習ライブラリ。高水準のコンポーネントで素早く学習を進め、低水準の部品で独自の研究にも対応できます。
MLIRベースのコンパイラとランタイム。MLモデルを統一IRに変換し、データセンターからモバイル・エッジデバイスまで展開できます。
Java APIでモデルの構築、学習、実行ができる、特定のエンジンに依存しないJava向け深層学習フレームワーク。
Keras、PyTorch、ONNXのニューラルネットワークを、FPGAでのML推論向けHLSコードに変換するPythonパッケージです。