Azure Machine Learning サービスで NVIDIA RAPIDS をサポート

執筆者: Kaarthik Sivashanmugam (AI Platform, Microsoft)

このポストは、2019 年 3 月 18 日に投稿された Azure Machine Learning service now supports NVIDIA’s RAPIDS の翻訳です。

 

Azure Machine Learning サービスは、主要なクラウド機械学習サービスの中で初めて NVIDIA RAPIDS をサポートしました。RAPIDS は、NVIDIA GPU により従来型の機械学習パイプラインを高速化するソフトウェア ライブラリ スイートです。

GPU の活用によって、トレーニングと推論のパフォーマンスがかつてないほど向上し、ディープ ラーニングに革命的な進化が起きたように、RAPIDS でも GPU の力で従来型の機械学習を劇的に進化させることができます。Azure Machine Learning サービスで RAPIDS を使用すると、NC_v3NC_v2NDND_v2 の各シリーズの GPU によって、データ処理、トレーニング、推論などの機械学習パイプライン全体を高速化できます。パフォーマンスは (GPU 4 基の場合) 20 倍以上アップし、トレーニング時間も数時間から数分に短縮され、より短い時間でインサイトが得られるようになりました。

以下の図は、XGBoost による勾配ブースティングを利用したデシジョン ツリーのトレーニングを CPU で実行した場合と GPU (Azure NC24s_v3) を使用した場合を比較したものです。この図からわかるように、GPU 数の増加に合わせてパフォーマンスが向上しています。Azure Machine Learning サービスで RAPIDS を使用し、この結果を再現する方法については、次のセクションで出てくる Jupyter ノートブックのリンク先の手順をご確認ください。

image

Azure Machine Learning サービスで RAPIDS を使用するには

Azure Machine Learning サービスで RAPIDS を使用する (英語) ために必要なものは、すべて GitHub から入手できます。

このリポジトリはマスターの Jupyter ノートブック (英語) で構成されており、Azure Machine Learning サービスの SDK を使用することで RAPIDS 用のリソース グループ、ワークスペース、コンピューティング クラスター、事前構成済み環境が自動で作成されます。また、このノートブックには、勾配ブースティングを利用したデシジョン ツリー モデルのトレーニングに使用される典型的な ETL と機械学習ワークフローが記載されています。ユーザーは、データ サイズや GPU 数をさまざまに変化させながら、複数の GPU をサポートする RAPIDS を自由にテストできます。

RAPIDS について

RAPIDS ではハイ パフォーマンス GPU の実行に NVIDIA CUDA を使用しており、GPU の並列実行と大きなメモリ帯域幅をユーザー フレンドリな Python インターフェイスから使用できます。これには、Pandas ユーザーにおなじみの cuDF と呼ばれるデータフレーム ライブラリと、scikit-learn で使用可能な GPU バージョンの機械学習アルゴリズムをすべて提供する cuML と呼ばれる ML ライブラリが含まれています。さらに DASK を組み合わせることで、RAPIDS でマルチノードやマルチ GPU の構成を Azure で使用できるようになります。

image

あらゆる機械学習を高速化

Azure Machine Learning サービスで RAPIDS をサポートしたことに続き、マイクロソフトは今後も開発者とデータ サイエンティストが使い慣れたツールやフレームワークを使用して、オープンで相互運用可能なエコシステムを実現できるよう取り組んでいきます。Azure Machine Learning サービスのユーザーは、現在使用している他の機械学習フレームワークと同じ方法で RAPIDS を使用できます。また、RAPIDS を Pandas、scikit-learn、PyTorch、TensorFlow などと組み合わせて使用することもできます。ぜひお試しのうえ、フィードバックをお寄せください!