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

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

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

ブログ    
ブログ    
ブログ    

推薦する

...

...

張亜琴:業界にとって、ディープラーニングの黄金時代は始まったばかりだ

本日、張亜琴教授はCNCC 2020で「スマートテクノロジーのトレンド」をテーマに講演しました。デジ...

X-Dreamerは2Dと3D生成のギャップを埋め、高品質のテキストから3D生成を実現します。

近年、事前学習済みの拡散モデル[1, 2, 3]の開発により、テキストから3Dコンテンツへの自動作成...

ヘルスケアにおける6つの新たなテクノロジートレンド

ヘルスケア業界におけるテクノロジーの浸透は、この分野の専門家のほぼすべての業務に影響を及ぼしています...

人工知能技術に注目し導入すべき3つの理由

AI の導入が拡大しているにもかかわらず、多くの IT リーダーは AI のリスクと機会を取り巻く不...

Think2Drive: 自動運転のための初のモデルベース RL 手法 (上海交通大学)

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

...

ロシアメディア:人工知能は顔認識技術を使って宗教的傾向を判断できる

ロシア新聞は1月19日、「もう隠せないのか?」と題する記事を掲載し、米スタンフォード大学の学者マイケ...

中国の建設ロボット軍団がやってくる!

[[408565]]香港のサウスチャイナ・モーニング・ポストに6月29日に掲載された記事「中国の道...

AIOps で IT 運用にインテリジェンスを組み込む方法

クラウド プラットフォーム、マネージド サービス プロバイダー、デジタル変革を進めている組織は、AI...

2050年に「電子的不死」は達成されるのか?計画が鍵

海外メディアの報道によると、有名な未来学者イアン・ピアソン博士は最近、今後数十年以内に、人間は思考と...

機械学習入門

1. 機械学習の定義機械学習はコンピュータサイエンスのサブフィールドであり、人工知能の分野および実装...

初心者向けガイド: 機械学習とディープラーニング

ウェッジ:機械学習とディープラーニングは現在注目されており、突然多くの人がそれについて話していること...