Freigeben über


Trainieren von Spark ML-Modellen in Databricks Connect mit pyspark.ml.connect

Dieser Artikel enthält ein Beispiel, in dem veranschaulicht wird, wie das pyspark.ml.connect Modul verwendet wird, um verteilte Schulungen zum Trainieren von Spark ML-Modellen und zum Ausführen von Modellrückschlüssen durchzuführen.

Was ist pyspark.ml.connect?

Spark 3.5 führt das pyspark.ml.connect-Modell ein, das für die Unterstützung des Spark Connect-Modus und von Databricks Connect entwickelt wurde. Weitere Informationen zu Databricks Connect.

Das pyspark.ml.connect-Modul besteht aus allgemeinen Lernalgorithmen und Hilfsprogrammen, einschließlich Klassifizierung, Funktionstransformatoren, ML-Pipelines und Kreuzvalidierung. Dieses Modul bietet ähnliche Schnittstellen zum älteren pyspark.ml-Modul, aber das pyspark.ml.connect-Modul enthält derzeit nur eine Teilmenge der Algorithmen in pyspark.ml. Es werden die folgenden Algorithmen unterstützt:

  • Klassifizierungsalgorithmus: pyspark.ml.connect.classification.LogisticRegression
  • Featuretransformatoren: pyspark.ml.connect.feature.MaxAbsScaler und pyspark.ml.connect.feature.StandardScaler
  • Auswerter: pyspark.ml.connect.RegressionEvaluator, pyspark.ml.connect.BinaryClassificationEvaluator und MulticlassClassificationEvaluator
  • Rohrleitung: pyspark.ml.connect.pipeline.Pipeline
  • Modelloptimierung: pyspark.ml.connect.tuning.CrossValidator

Anforderungen

In Databricks Runtime 17.0 und höher ist Spark ML unter Spark connect standardmäßig für Computeressourcen mit Standardzugriffsmodus mit einigen Einschränkungen aktiviert. Siehe Einschränkungen für Databricks Runtime 17.0 auf der Standardberechnung. Verwenden Sie Spark ML auf Standard-Compute, wenn Sie eine Spark-Level-Verteilung für Daten benötigen, die nicht in den Speicher eines einzelnen Knotens passen, oder wenn Sie verteilte Hyperparameter-Optimierung durchführen müssen.

Für Databricks Runtime 14.0 ML und höher (einschließlich Databricks Runtime 17.0 für Computeressourcen mit dediziertem Zugriffsmodus) gibt es zusätzliche Anforderungen für die Verwendung von Spark ML:

Notebook mit Beispielen

Das folgende Notebook veranschaulicht die Verwendung von verteiltem ML auf Databricks Connect:

Verteiltes ML auf Databricks Connect

Notebook abrufen

Für Referenzinformationen zu APIs in pyspark.ml.connect empfiehlt Databricks die Apache Spark API-Referenz

Einschränkungen für die Databricks Runtime 17.0 auf der Standard-Compute

  • Nur Python: Spark ML auf Standard-Compute unterstützt nur Python. R und Scala werden nicht unterstützt.
  • Bibliotheksunterstützung: Nur das pyspark.ml Paket wird unterstützt. Das pyspark.mllib Paket wird nicht unterstützt.
  • Größenbeschränkungen des Modells: Die maximale Modellgröße beträgt 1 GB, sodass das Trainieren extrem großer Modelle möglicherweise nicht machbar ist. Das Baummodelltraining wird frühzeitig beendet, wenn die Modellgröße dabei ist, 1 GB zu überschreiten.
  • Speichereinschränkungen: Während Daten über den Cluster verteilt werden können, wird das trainierte Modell selbst auf dem Treiberknoten zwischengespeichert, der für andere Benutzer freigegeben wird. Die maximale Modellcache-Größe pro Sitzung beträgt 10 GB, und die maximale im Arbeitsspeicher befindliche Modellcache-Größe pro Sitzung beträgt 25% des Spark-Treiber-JVM-Speichers.
  • Sitzungstimeouts: Das zwischengespeicherte Modell auf der Standardberechnung läuft automatisch nach 15 Minuten Inaktivität ab. Um zu verhindern, dass Ihr Modell verloren geht, speichern Sie es innerhalb von 15 Minuten nach Abschluss des Trainings auf dem Datenträger, oder halten Sie die Sitzung mit häufiger Nutzung aktiv.
  • Ressourcenkonflikt: In Standard-Computeumgebungen werden Ressourcen unter den Benutzern und Aufgaben innerhalb des Arbeitsbereichs geteilt. Das gleichzeitige Ausführen mehrerer großer Aufträge kann zu einer langsameren Leistung oder einem Wettbewerb für Ausführungsplätze führen.
  • Keine GPU-Unterstützung: Standardmäßige Computeumgebungen unterstützen keine GPU-Beschleunigung. Für GPU-beschleunigte Machine Learning-Workloads werden dedizierte GPU-Cluster empfohlen.
  • Eingeschränkte SparkML-Modelle: Die folgenden SparkML-Modelle werden nicht unterstützt:
    • DistributedLDAModel
    • FPGrowthModel