メインコンテンツまでスキップ

Databricks Connect での Spark ML モデルのトレーニング: pyspark.ml.connect

この記事では、 pyspark.ml.connect モジュールを使用して分散トレーニングを実行し、Spark ML モデルをトレーニングし、モデル推論を実行する方法を示す例を示します。

pyspark.ml.connectとは?

Spark 3.5 では、Spark Connect モードと Databricks Connect をサポートするために設計された pyspark.ml.connect が導入されています。 Databricks Connect の詳細については、こちらをご覧ください。

pyspark.ml.connectモジュールは、分類、特徴トランスフォーマー、ML パイプライン、クロス検証など、一般的な学習アルゴリズムとユーティリティで構成されています。このモジュールは、従来の pyspark.ml モジュールと同様のインターフェイスを提供しますが、pyspark.ml.connect モジュールには現在、 のアルゴリズムのサブセットしか含まれpyspark.ml。サポートされているアルゴリズムを以下に示します。

  • 分類アルゴリズム: pyspark.ml.connect.classification.LogisticRegression
  • 特徴量変換: pyspark.ml.connect.feature.MaxAbsScaler および pyspark.ml.connect.feature.StandardScaler
  • 評価者: pyspark.ml.connect.RegressionEvaluatorpyspark.ml.connect.BinaryClassificationEvaluatorMulticlassClassificationEvaluator
  • パイプライン: pyspark.ml.connect.pipeline.Pipeline
  • モデルチューニング: pyspark.ml.connect.tuning.CrossValidator

必要条件

Databricks Runtime17.0SparkML 以降では、Spark Connect の は、標準アクセス モードの デフォルト on コンピュート リソースによって有効になりますが、いくつかの制限があります。Standard コンピュートの「Databricks Runtime 17.0 の制限事項」を参照してください。Spark ML on Standard コンピュートは、単一ノード上のメモリに収まらないデータに対してSparkレベルの分散が必要な場合や、分散ハイパーパラメーターチューニングを行う必要がある場合に使用します。

Databricks Runtime14.0ML 以降 (Databricks Runtime 専用 アクセス モードを使用するコンピュート リソースの 17.0を含む) では、 を使用するための追加の要件があります。SparkML

  • クラスターで Databricks Connect を設定します。 については、Databricks Connectにおけるコンピュートの設定 を参照してください。
  • Databricks Runtime 14.0 ML 以降がインストールされている。
  • コンピュート リソース with Dedicated access mode.

ノートブックの例

次のノートブックは、Databricks Connect で分散 ML を使用する方法を示しています。

Databricks Connect の分散 ML

Open notebook in new tab

pyspark.ml.connectのAPIに関する参考情報については、Apache Spark APIリファレンスをお勧めします。

Standard コンピュートの Databricks Runtime 17.0 の制限事項

  • Pythonのみ :Standard コンピュートのSpark MLはPythonのみをサポートします。R と Scala はサポートされていません。
  • ライブラリのサポート : pyspark.ml パッケージのみがサポートされています。pyspark.mllibパッケージはサポートされていません。
  • モデル サイズの制約 : 最大モデル サイズは 1 GB であるため、非常に大きなモデルのトレーニングは実現できない場合があります。モデルのサイズが 1GB を超えそうになると、ツリーモデルのトレーニングは早期に停止します。
  • メモリの制約 : データはクラスタリング全体に分散できますが、トレーニング済みのモデル自体はドライバー ノードにキャッシュされ、他のユーザー間で共有されます。 セッションあたりの最大モデル キャッシュ サイズは 10 GB で、セッションあたりの最大インメモリ モデル キャッシュ サイズは Spark ドライバーの JVM メモリの 25% です。
  • セッション タイムアウト : Standard コンピュートにキャッシュされたモデルは、非アクティブな状態が 15 分間続くと自動的にタイムアウトし、モデルの概要は失われます。 モデルが失われないようにするには、トレーニングが完了してから 15 分以内にディスクに保存するか、頻繁に使用するセッションをアクティブに保ちます。
  • リソースの競合 : Standard コンピュート環境では、リソースはワークスペース内のユーザーとジョブ間で共有されます。 複数の大きなジョブを同時に実行すると、パフォーマンスが低下したり、エグゼキュータースロットの競合が発生したりする可能性があります。
  • GPU サポートなし : 標準のコンピュート環境は GPU アクセラレーションをサポートしていません。 GPU で高速化された機械学習ワークロードの場合は、専用の GPU クラスタリングをお勧めします。
  • 制限付き SparkML モデル : 次の SparkML モデルはサポートされていません。
    • DistributedLDAModel
    • FPGrowthModel