uxlfoundation/scikit-learn-intelex

Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application

scikit‑learn‑intelex – CPU・GPUで高速化するscikit‑learn

概要

  • 対応ハードウェア上で、人気のPythonライブラリ scikit‑learn を最大約100倍高速化するオープンソースの拡張機能です。scikit‑learnのコアアルゴリズムを、IntelのoneAPI Data Analytics Library(oneDAL)の高度に最適化された実装に置き換えることで動作します。

重要性

  • scikit‑learnは、表形式の機械学習(ロジスティック回帰、ランダムフォレスト、SVM、クラスタリングなど)の定番ツールキットです。多くの本番パイプラインで使用されていますが、ライブラリ自体はハードウェアを認識しません。scikit‑learn‑intelex は、コード変更なしで、SIMD、マルチスレッド、キャッシュ認識、GPUオフロードの最適化を追加します。

主な機能

  • CPU高速化 – SIMDとマルチコア最適化により、数値結果を維持しながら、トレーニングと推論で平均8.5倍の高速化を実現。
  • GPU・マルチGPU対応 – さらなる高速化のためのオプションのoneAPIベースのオフロード(Intel oneAPIランタイムが必要)。
  • ゼロコード統合 – 既存の sklearn インポートをモンキーパッチするか(from sklearnex import patch_sklearn; patch_sklearn())、ドロップイン互換のモジュール sklearnex を直接インポートします。
  • 互換性 – scikit‑learn 1.6〜1.9、Python 3.10〜3.14で動作。PyPIおよびconda‑forgeから入手可能。
  • モデルビルダー互換性 – XGBoostやLightGBMで生成された決定木モデルを高速化できます。

典型的なユースケース

  • トレーニングやスコアリング時間がボトルネックとなる大規模な表形式データパイプライン。
  • 低レイテンシー予測が必要なリアルタイム推論サービス。
  • マルチノードクラスターやGPU対応ワークステーションでの分散トレーニング。

はじめに

# PyPIからインストール(またはconda‑forgeを使用)
pip install scikit-learn-intelex
# CPUの例 – scikit‑learnをパッチ
from sklearnex import patch_sklearn
patch_sklearn()
from sklearn.cluster import DBSCAN
clustering = DBSCAN(eps=3, min_samples=2).fit(X)
# GPUの例 – config_contextを使用
from sklearnex import patch_sklearn, config_context
patch_sklearn()
with config_context(target_offload="gpu:0"):
    clustering = DBSCAN(eps=3, min_samples=2).fit(X)

ドキュメントとリソース

  • 完全なドキュメント: https://uxlfoundation.github.io/scikit-learn-intelex/
  • ベンチマークとサンプルノートブックはリポジトリからリンクされています。
  • GitHub Discussionsによるコミュニティサポート。貢献ガイドも用意されています。

結論 scikit-learn-intelex を使用すると、使い慣れたscikit‑learn APIを維持しながら、Intel oneDALのパフォーマンスを引き出すことができ、表形式データで機械学習モデルを構築するすべての人にとって実用的なアクセラレーターとなります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト