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

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

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

ブログ    

推薦する

HarmonyOS メタサービス開発実践: デスクトップカード辞書

1. プロジェクトの説明1.DEMOのアイデアはカード辞書です。 2. カードによって表示される内容...

保存しておくべき機械学習チートシート 27 選

機械学習にはさまざまな側面があり、調査を始めたときに、特定のトピックの要点を簡潔にリストしたさまざま...

AI が「長すぎて読めない」問題の解決を支援: 深層要約モデルの構築方法

過去数十年にわたり、私たちは情報に関する一連の根本的な変化と課題を経験してきました。今日、情報へのア...

公正な「データアクセス」の新秩序の構築 AIが都市統治に根付く

最近では、AI テクノロジーがさまざまな業界に大きな影響を与えていることがニュースで頻繁に紹介されて...

2018年ニューリテール5大トレンド:無人小売が広がり続け、人工知能やIoTが新たな価値を創出

[[220105]]画像出典: Visual China 2016年10月の雲旗大会で、ジャック・マ...

「ドメイン外」テキストは不要、Microsoft: NLP はターゲットを絞った方法で事前トレーニングする必要がある

[[337084]]バイオメディカルなどの専門分野では、NLP モデルのトレーニングには、特定のデー...

「人工知能+教育」はどのような機会と課題をもたらすのでしょうか?

人工知能がどのような新しい形で登場するかが話題になっている一方で、教育分野では新たな一連の変化が起こ...

5G の出現は AI 連合学習にどのような影響を与えるでしょうか?

開発チームが AI ツールの作成に奔走する中、エッジ デバイスでのアルゴリズムのトレーニングが一般的...

ヘルスケアにおける人工知能の機会とリスク

人工知能 (AI) が医療分野において大きなチャンスと潜在的なリスクを抱えていることはよく知られてい...

...

2018年栄智連ITイネーブラーサミットのゲストラインナップが発表されました

現在、中国ではデジタル革命が急速に進んでおり、デジタル変革は国内企業が課題に対処するための主な戦略と...

情報抽出における画期的な進歩! NLP は大規模に実装されようとしているのでしょうか?

AI におけるブレークスルーには、一般的に 3 つの種類があります。学術ランキングで上位を占め、学...

マイクロソフトCEOナデラ氏:AIはルールを変えるインターネットの波のようなもの

8月18日、マイクロソフトが人工知能(AI)技術の研究開発に注力し、OpenAIに100億ドル以上を...