Delen via


Spark ML-modellen trainen in Databricks Connect met pyspark.ml.connect

Dit artikel bevat een voorbeeld dat laat zien hoe u de pyspark.ml.connect module kunt gebruiken om gedistribueerde training uit te voeren om Spark ML-modellen te trainen en modeldeductie uit te voeren.

Wat is pyspark.ml.connect?

Spark 3.5 introduceert pyspark.ml.connect dat is ontworpen voor het ondersteunen van de Spark-verbindingsmodus en Databricks Connect. Meer informatie over Databricks Connect.

De pyspark.ml.connect module bestaat uit algemene leeralgoritmen en hulpprogramma's, waaronder classificatie, functietransformaties, ML-pijplijnen en kruisvalidatie. Deze module biedt vergelijkbare interfaces als de verouderde pyspark.ml module, maar de pyspark.ml.connect module bevat momenteel alleen een subset van de algoritmen in pyspark.ml. De ondersteunde algoritmen worden hieronder vermeld:

  • Classificatie-algoritme: pyspark.ml.connect.classification.LogisticRegression
  • Functietransformatoren: pyspark.ml.connect.feature.MaxAbsScaler en pyspark.ml.connect.feature.StandardScaler
  • Evaluator: pyspark.ml.connect.RegressionEvaluatoren pyspark.ml.connect.BinaryClassificationEvaluatorMulticlassClassificationEvaluator
  • Pijpleiding: pyspark.ml.connect.pipeline.Pipeline
  • Modelafstemming: pyspark.ml.connect.tuning.CrossValidator

Vereisten

In Databricks Runtime 17.0 en hoger is Spark ML op Spark Connect standaard ingeschakeld voor rekenresources met de standaardtoegangsmodus met enkele beperkingen. Zie Beperkingen voor Databricks Runtime 17.0 op Standard-rekenkracht. Gebruik Spark ML op Standard-rekenproces als u spark-niveaudistributie nodig hebt voor gegevens die niet in het geheugen op één knooppunt passen of als u gedistribueerde hyperparameters moet afstemmen.

Voor Databricks Runtime 14.0 ML en hoger (inclusief Databricks Runtime 17.0 voor rekenresources met behulp van de toegewezen toegangsmodus), zijn er aanvullende vereisten voor het gebruik van Spark ML:

Voorbeeld van notebook

In het volgende notebook ziet u hoe u gedistribueerde ML gebruikt in Databricks Connect:

Gedistribueerde ML op Databricks Connect

Haal notitieblok op

Voor referentie-informatie over API's in pyspark.ml.connect, raadt Databricks de Apache Spark-API-verwijzing aan

Beperkingen voor Databricks Runtime 17.0 op Standard-rekenkracht

  • Alleen Python: Spark ML op Standard-rekenkracht ondersteunt alleen Python. R en Scala worden niet ondersteund.
  • Bibliotheekondersteuning: alleen het pyspark.ml pakket wordt ondersteund. Het pyspark.mllib pakket wordt niet ondersteund.
  • Beperkingen voor modelgrootte: de maximale modelgrootte is 1 GB, dus het trainen van extreem grote modellen is mogelijk niet haalbaar. De training van boommodellen stopt vroeg als de modelgrootte bijna 1 GB overschrijdt.
  • Geheugenbeperkingen: hoewel gegevens over het cluster kunnen worden gedistribueerd, wordt het getrainde model zelf in de cache opgeslagen op het stuurprogrammaknooppunt, dat wordt gedeeld met andere gebruikers. De maximale grootte van de modelcache per sessie is 10 GB en de maximale cachegrootte van het model in het geheugen per sessie is 25% van het JVM-geheugen van het Spark-stuurprogramma.
  • Sessietime-outs: Het gecachte model op de standaard rekeneenheid vervalt automatisch na 15 minuten inactiviteit. Als u wilt voorkomen dat uw model verloren gaat, slaat u het op schijf op binnen 15 minuten nadat de training is voltooid of houdt u de sessie actief met frequent gebruik.
  • Resourceconflicten: in standaard-rekenomgevingen worden resources gedeeld tussen gebruikers en taken in de werkruimte. Het gelijktijdig uitvoeren van meerdere grote taken kan leiden tot tragere prestaties of concurrentie om executor-slots.
  • Geen GPU-ondersteuning: Standard-rekenomgevingen bieden geen ondersteuning voor GPU-versnelling. Voor met GPU versnelde machine learning-workloads worden toegewezen GPU-clusters aanbevolen.
  • Beperkte SparkML-modellen: de volgende SparkML-modellen worden niet ondersteund:
    • DistributedLDAModel
    • FPGrowthModel