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.RegressionEvaluator、pyspark.ml.connect.BinaryClassificationEvaluator、MulticlassClassificationEvaluator - パイプライン:
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
pyspark.ml.connectのAPIに関する参考情報については、Apache Spark APIリファレンスをお勧めします。
Standard コンピュートの Databricks Runtime 17.0 の制限事項
このセクションの制限事項は、 Standard アクセス モードのコンピュート リソースに適用されます。Serverless コンピュートは、モデルキャッシュおよび個々のモデルに対してより厳しい制限を適用します。See Serverless コンピュートの制限事項.
- 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 モデルはサポートされていません。
DistributedLDAModelFPGrowthModel