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)。興味のある読者は、ダウンロードして自分で学習することができます。

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

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

ブログ    

推薦する

MITはレーザー彫刻機にAIを搭載し、材料を自動的に識別し、98%の精度で彫刻の強度を判定した。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ファーウェイが推進する「マシンビジョン」はインダストリー4.0成功の鍵となるのか?

最近、「新インフラ」や「デジタルインフラ」がホットワードとなっている。新インフラの一つである「産業イ...

機械学習とディープラーニングの違いは何ですか?

機械学習とディープラーニングのアルゴリズムフローついに人工知能研究僧に入学しました。機械学習とディー...

傲慢か偏見か?AIはあなたの美的観念に影響を与えていますか?

数日前、TikTokで、ある親がTikTokの特殊効果を使って子供の年齢と容姿を計測する動画を見まし...

ソフトウェア開発プロセスの近代化における生成AIの役割

近年、ソフトウェア エンジニアリングでは、自動化の強化と開発プロセスの合理化に向けて大きな変化が見ら...

...

散乱アルゴリズムの3つのソリューションとその選択シナリオ

背景分割とは、推奨、広告、検索システムの結果に基づいてユーザーの視覚的なエクスペリエンスを向上させる...

周志華:「データ、アルゴリズム、計算力」は人工知能の3つの要素であり、今後は「知識」が加わる必要があります。

CCF-GAIR 2020人工知能フロンティア特別セッションでは、南京大学コンピュータサイエンス学...

...

...

タイムトラベルが現実になる?人間はワームホールを通じて「時空の端」に到達できるかもしれないし、量子AIは機械に意識を与えるだろう

[[436484]]タイムトラベルは本当に可能なのでしょうか?新たな研究によれば、今から数千年後には...

快手が手の姿勢推定機能を発表、電光手の秘密を公式に公開

アイアンマンは指と手のひらを回すだけで、あっという間に鎧の製作を完了した。この魔法のような技に、スク...

2021年にAIは暗号通貨分野に参入するでしょうか?

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

アルゴリズムの問​​題を解決するための Python 3 コード フレームワーク

序文現在インターンシップをしており、仕事量はそれほど多くないので、空き時間を利用してPATのウェブサ...

AIに人間主義の精神を持ち込むことについて、フェイフェイ・リーとビル・ゲイツは今日スタンフォードで何について話したのでしょうか?

マイクロソフト創業者のビル・ゲイツ氏、グーグルの人工知能の第一人者ジェフ・ディーン氏、ディープマイン...