Scikit-learnとPandasのためのNVIDIA CUDA-XライブラリによるSnowflakeの機械学習の強化

企業は、顧客チャーンの予測、トランザクションデータの異常検知、AI埋め込みのクラスタリングパターンの探索など、生成AIやMLモデルをかつてないほど大規模にデータセットに適用しています。MLアルゴリズムの実行が完了するまで数時間または数日待つと、生産性が大幅に低下し、コストが増大する可能性があるため、データセットの増大とともにGPUアクセラレーションが不可欠になっています。
Snowflake MLは、お客様がより大規模なデータセットの需要の増加に対応できるよう、過去数年間にわたりGPU対応のワークフローに多額の投資を行っています。本日、Snowflake MLにNVIDIAのcuMLおよびcuDFライブラリがプリインストールされ、GPUで人気の高いMLアルゴリズムを高速化できるようになりました。このネイティブ統合により、Snowflakeのお客様は、scikit-learn、pandas、UMAP、HDBSCANのモデル開発サイクルを簡単に加速できます。コードの変更は不要です。NVIDIAのベンチマーク実行では、NVIDIA A10 GPUでのCPU実行と比較して、ランダムフォレストでは5倍、HDBSCANでは最大200倍の高速化を示しています。
このブログ記事では、トピックモデリングとゲノミクスの例を段階的に説明し、これらの新しく統合されたライブラリが、Snowflake MLで最先端の次元削減とクラスタリングの技術を使用して大規模データセットを迅速かつシームレスに探索できるようにする仕組みを説明します。
データサイエンスのためのNVIDIA CUDA-Xライブラリ
データセットが数百万行に達し、数百から数千の次元が含まれるようになるにつれて、従来のCPUのみを使用する処理ツールに代わるものが不可欠になっています。cuMLおよびcuDFライブラリは、NVIDIA CUDA-X Data Science(CUDA-X DS)エコシステムの一部です。CUDA-X DSは、データ処理パイプラインを強化するように設計されたGPUアクセラレーションライブラリのオープンソーススイートです。GPUは並列処理能力を備えており、より高速でスケーラブル、効率的なデータワークフローを実現します。

図1:CUDA-Xデータサイエンスは、人気の高いデータサイエンスライブラリやプラットフォームを高速化するオープンソースライブラリのコレクションです。
CUDA-X DSライブラリは、GPUのパワーと、データアナリティクス、機械学習、グラフアナリティクスのための使い慣れたPython APIを組み合わせることで、チームがコードを書き換えることなく大幅な高速化を実現します。CUDA-X DSにより、GPUはモデルのトレーニングと反復最適化サイクルを加速し、単一のGPUで数億行のデータセットを処理できます。A10 GPUでは、cuMLはCPUのみのコンピューティングと比較して、TSNE、UMAP、HDBSCANなどの機械学習アルゴリズムを幅広いデータセットで最大72倍、最大25倍、最大200倍に高速化できます。また、処理時間も数日からわずか数分に短縮できます。
Snowflake MLでのGPUアクセラレーションモデル開発を始める

図2:Snowflake MLには、ガバナンスが確保されたデータと同じプラットフォーム上で、モデル開発、運用、推論の堅牢な機能セットが含まれています 。
Snowflake MLは、シングルプラットフォーム上でデータに直接統合されたエンドツーエンドのML開発および推論機能のセットです。NVIDIAのcuMLおよびcuDFライブラリとの統合には、大規模な機械学習開発のための事前構築環境であるコンテナランタイムを通じてアクセスできます。フルマネージドGPU上でscikit-learnやpandasなどのMLアルゴリズムを高速化するために、Snowflakeのお客様は、Snowflake Notebookを通じて、またはMLジョブによって促進される任意のIDEからのリモートプッシュダウン(関数またはファイルディスパッチ)を通じて、コンテナランタイムでデータサイエンススクリプトを簡単に実行できます。これには、以下のようなメリットがあります。
シンプルな開発者エクスペリエンス:GPU固有のランタイムイメージがあれば、ML開発をサポートする最新の最も人気のあるライブラリやフレームワーク(PyTorch、XGBoost、LightGBM、scikit-learnなど)にすでにアクセスできます。最新のアップデートでは、cuMLとcuDFがデフォルトのGPU環境に完全に統合されているため、pandas、scikit-learn、UMAP、HDBSCANのアクセラレーションに直接アクセスできます。
GPUインスタンスに簡単にアクセス:シンプルなノートブックまたはリモート実行構成では、ワークロードに適したコンピュートプールからインスタンスを選択できます。GPUノードの選択により、単一のノードで1つ以上のGPUにアクセスできるだけでなく、ユースケースの複雑さに合わせてさまざまなタイプのGPUにアクセスできます。

図3:NVIDIAのCUDA-Xライブラリとの直接統合により、Snowflake NotebookのGPUで一般的なMLアルゴリズムを簡単に加速できます 。
SnowflakeはNVIDIAのライブラリを統合することで、トピックモデリングやゲノミクスのユースケースなど、GPUアクセラレーションを必要とする大規模なデータセットを特徴とする業界の課題に対する強力なソリューションとなります。
トピックモデリングを大規模に実現
トピックモデリングのような大規模なテキスト分析に取り組む場合、計算効率はすぐに重要な要素になります。多くのデータサイエンスワークフローは反復性と探索性を備えているため、より優れたパフォーマンスに対するニーズはさらに高まっています。すべてのイテレーションで何時間も待つのは現実的ではありません。
SnowflakeとNVIDIA CUDA-Xライブラリとの統合により、データサイエンスと機械学習のタスクが大幅に高速化します。既存のCPUベースのPythonコードに対するコード変更はほとんど必要ありません。GPUでは、数十万から数百万の製品レビューを生テキストから適切に定義されたトピッククラスターに変換するなどのタスクを数分で完了できます。
この クイックスタート は、Snowflakeの高速化されたコンピューティングが、 50万件の書評 を BERTopic( 人気の高いトピックモデリングライブラリ)で処理することで、CPU_X64_Lインスタンスでは8時間以上かかっていたトピックモデリングを、GPU_NV_Sインスタンスでは数分未満で実行できるようになったことを示しています。
BERTopicベースのトピックモデリングワークフローは通常、以下のステップに従います。
データの読み取り:pandasなどのライブラリを使用してテキストデータをメモリに読み込む
埋め込みの生成:SentenceTransformersライブラリを使用して、生テキストを数値表現(埋め込み)に変換する
次元の削減:umap-learnライブラリを使用して重要な情報を保持しながら、高次元の埋め込みを低次元の空間に凝縮する
クラスター:HDBSCANライブラリを使用して、次元数を減らした埋め込みをクラスタリングし、コアトピックを特定します。
ここまでの4つのステップをすべてノートブックで加速できるようになりました。SentenceTransformerは自動的にCUDA対応のPyTorchを使用します。また、panda、umap-learn、HDBSCANのコードをゼロ変更で高速化するには、cuMLとcuDFをインポートして「スイッチを反転」します。
import cudf.pandas; cudf.pandas.install()
import cuml; cuml.accel.install()
import pandas as pd
from bertopic import BERTopic
from sentence_transformers import SentenceTransformer
data = pd.read_json(data_path, lines=True) # GPU-accelerated
docs = data["text"].tolist()
sentence_model = SentenceTransformer("all-MiniLM-L6-v2")
embeddings = sentence_model.encode(docs, batch_size=128, show_progress_bar=True) # GPU-accelerated
topic_model = BERTopic()
topics, probs = topic_model.fit_transform(docs, embeddings) # GPU-acceleratedこれにより、トピックモデリングのワークフロー全体が加速し、ノートブックの実行が完了するまで何時間も待つ必要がなくなります。
ゲノミクスワークフローの加速によるイノベーションの実現
コンピューティングの加速はヘルスケアとデジタルバイオロジーに変革をもたらしており、科学者や研究者は次世代医療機器によって生成される膨大なデータセットを活用し、AIの運用化によって複雑な問題を解決できます。
Snowflakeユーザーは、cuDF、cuMLなどのNVIDIA CUDA-X DSライブラリのゼロコード変更必須機能を活用して、DNA配列データの分析を加速できます。高次元の生物配列を処理するために、cuMLとcuDFは大幅に加速します。
シーケンス分析の迅速化:生DNA配列を特徴量ベクトルに変換することで、研究者は分類タスク(遺伝子ファミリーの予測など)を大規模に実行できます。
シームレスなワークフロー統合:pandasとscikit-learnコードをGPU上で直接実行すると、データロード、前処理、アンサンブルモデルのトレーニングが劇的に高速化します。
ゼロコード変更アクセラレーション:コードを変更することなく既存のワークフローのGPUアクセラレーションにアクセスできるため、研究者は低レベルのGPUプログラミングではなく、生物学的インサイトやモデル設計に集中できます。
クイックスタートでは、scikit-learnとXGBoostを使用して、DNA配列の遺伝子ファミリーを予測する機械学習モデルをトレーニングするデモを行います。GPUでトレーニングを高速化するには、cuMLアクセラレーター(scikit-learn用)をロードし、XGBoostモデルをdevice="cuda"で構成します。
import cuml; cuml.accel.install()
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
import xgboost as xgb
...
X_train, X_test, y_train, y_test = train_test_split(
dna_embeddings,
y,
test_size = 0.20,
random_state=42
)
classifier = RandomForestClassifier(
n_estimators=200,
max_depth=20,
max_features=1.0,
n_jobs=-1
)
classifier.fit(X_train, y_train) # GPU-accelerated
clf = xgb.XGBClassifier(device="cuda", n_estimators=200)
clf.fit(X_train, y_train, eval_set=[(X_test, y_test)]) # GPU-acceleratedデータサイエンティストなら誰でも知っていることですが、最初にトレーニングしたモデルが最適であることはほとんどありません。残念ながら、堅牢な特徴量エンジニアリングやモデルのチューニングには数時間から数日かかるため、場合によっては数百から数千もの異なるパイプラインのテストが必要になります。
Snowflake MLでは、GPU用にコードを書き換える必要がないため、数時間かかっていたモデルトレーニングを数分に短縮してゲノミクスワークフローに集中できます。
今すぐ始めましょう
Snowflake MLは、NVIDIAのcuMLおよびcuDFライブラリと事前統合されており、Snowflakeデータでの大規模機械学習の運用効率とスケーラビリティを高めます。この拡張された機能により、GPUインフラストラクチャと環境管理に内在する複雑さを排除しながら、コンピュート要件の厳しい領域における開発と発見の反復サイクルを大幅に強化できます。
初めの一歩を踏み出す準備はできましたか?SnowflakeコンテナランタイムからNVIDIAのライブラリを試すには、このクイックスタートと製品ドキュメントに従って簡単にGPUでのMLワークフローを加速します。

