1行のコードでsklearnの操作が数千倍高速化

1行のコードでsklearnの操作が数千倍高速化

1 はじめに

みなさんこんにちは、フェイ先生です。機械学習の定番フレームワークであるscikit-learnは誕生以来10年以上開発されてきましたが、その計算速度はユーザーから批判されてきました。 scikit-learn に精通している友人は、scikit-learn に付属する joblib などのライブラリに基づくコンピューティング高速化機能の一部は効果が限られており、コンピューティング能力を十分に活用できないことを知っているはずです。

今日紹介する知識は、元のコードを変更することなく、scikit-learn の計算効率を数十倍、あるいは数千倍も向上させるのに役立ちます。さあ、始めましょう!

2 sklearnexを使用してscikit-learnを高速化する

高速コンピューティングの効果を得るには、sklearnex 拡張ライブラリをインストールするだけで、Intel プロセッサを搭載したデバイスでのコンピューティング効率を大幅に向上させることができます。

慎重に行動すれば、別の conda 仮想環境で実験を行うことができます。すべてのコマンドは次のとおりです。IDE として jupyterlab もインストールします。

 conda create -n scikit - learn - intelex - demo python = 3.8 - c https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main-y
conda アクティベートscikit - 学習- intelex - デモ
pip インストールscikit - 学習scikit - 学習- intelex jupyterlab - i https://pypi.douban.com/simple/

実験環境の準備が完了したら、Jupyter Lab でテスト コードを記述して、高速化の効果を確認します。使い方は非常に簡単です。コードに scikit-learn 関連の関数モジュールをインポートする前に、次のコードを実行するだけです。

 sklearnex からpatch_sklearn をインポートしunpatch_sklearn を実行します。
パッチ_sklearn ()

加速モードが正常にオンになると、次の情報が印刷されます。

後は、元の scikit-learn コードを実行するだけです。私は、オープンソース プロジェクトの作成と開発に使用している古い Savior ラップトップでこれをテストしました。

線形回帰を例にとると、数百万のサンプルと数百の特徴を持つサンプルデータセットでは、加速モードをオンにした後、トレーニングセットのトレーニングを完了するのにわずか 0.21 秒しかかかりませんでした。unpatch_sklearn() を使用して加速モードを強制的にオフにした後 (scikit-learn 関連モジュールを再インポートする必要があることに注意してください)、トレーニング時間はすぐに 11.28 秒に増加しました。これは、sklearnex によって計算速度が 50 倍以上向上したことを意味します。

公式発表によると、CPU の性能が高ければ高いほど、パフォーマンスの向上率が高くなります。下の図は、公式が Intel Xeon Platinum 8275CL プロセッサで一連のアルゴリズムをテストした後に得られたパフォーマンスの向上結果を示しています。トレーニング速度が向上するだけでなく、モデル推論予測速度も向上します。シナリオによっては、パフォーマンスの向上が数千倍に達することもあります。

公式では、K-means、DBSCAN、ランダムフォレスト、ロジスティック回帰、リッジ回帰など、さまざまな一般的なアルゴリズムの例を示した ipynb の例もいくつか提供しています (https://github.com/intel/scikit-learn-intelex/tree/master/examples/notebooks)。興味のある読者は、ダウンロードして自分で学習することができます。

<<:  偏見と不平等にノーと言いましょう!マイクロソフト、物議を醸していた顔認識サービスの提供を停止

>>:  私たちは人工知能によってどのように制御されているのでしょうか?

ブログ    
ブログ    

推薦する

C#DES アルゴリズムの概念と特性の簡単な分析

C# DES アルゴリズムは開発のセキュリティ部分として、その概念といくつかの簡単な歴史的起源を理解...

Python の顔認識の優れた教育例、顔認識システムを構築するための 40 行のコード!

[[229034]] Face Id は、高性能な顔認証ソフトウェアです。公式の主張は、「100 ...

...

マイクロソフトのハリー・シャムがGitHub、データの信念、そしてコンピューティングの未来について語る

1 月 20 日、マイクロソフトのグローバル エグゼクティブ バイスプレジデントであるハリー シャム...

2022年の主要イベントが近づいています。ビッグネームの共演をお見逃しなく

2022年、デジタル化の東風が到来し、新たな技術・産業革命が本格化します。デジタル化の波に立ち、絶え...

ハードウェアとコードを分離し、APIを安定化したPyTorch Lightning 1.0.0が正式リリース

Keras と PyTorch はどちらも初心者にとても優しいディープラーニング フレームワークです...

Beike Renting: 業界に力を与え、レンタル部門の基準の再構築を推進

[原文は51CTO.comより] 国家の不動産市場マクロコントロール政策の導入以来、住宅購入の敷居は...

数学者を助けたいなら、人工知能の意味は何でしょうか?

AIに対して幻想を抱いている人もいれば、偏見を持っている人もいます。 AIはツールとコンピューティ...

ディープラーニングの最適化を理解するにはどうすればよいでしょうか?勾配降下法の軌跡を分析することで

ニューラル ネットワークの最適化は本質的に非凸ですが、単純な勾配ベースの方法は常にこのような問題を解...

Mac専用の大型モデルフレームワークが登場! 2行のコードでデプロイでき、ローカルデータとチャットでき、中国語もサポートしています

Mac ユーザーは、ついに、RTX を使用した独自の大型モデル チャットを持つ N カード プレーヤ...

...

グラフのディープラーニングのための 7 つのオープンソース ライブラリ

[51CTO.com クイック翻訳]ディープラーニングの愛好家であれば、強力なディープニューラルネッ...

人工知能との競争において、カスタマーサービスと宅配業者が勝つ可能性はどれくらいでしょうか?

[[409291]]労働日報記者 イェ・ユン・チェン・ニン 写真家 チェン・ニン編集者注人工知能(...

...

将来、ロボットは人間よりもはるかに強力になります。ロボットは人間に反抗するでしょうか?

私たちは長い間、ロボットを私たちの世界から締め出すことができるのか、あるいは人間は人工知能(あるいは...