Dela via


Träna Spark ML-modeller på Databricks Connect med pyspark.ml.connect

Den här artikeln innehåller ett exempel som visar hur du använder modulen pyspark.ml.connect för att utföra distribuerad träning för att träna Spark ML-modeller och köra modellinferens.

Vad är pyspark.ml.connect?

Spark 3.5 introducerar pyspark.ml.connect som är utformat för stöd för Spark-anslutningsläge och Databricks Connect. Läs mer om Databricks Connect.

Modulen pyspark.ml.connect består av vanliga inlärningsalgoritmer och verktyg, inklusive klassificering, funktionstransformatorer, ML-pipelines och korsvalidering. Den här modulen tillhandahåller liknande gränssnitt som den äldre pyspark.ml modulen, men modulen pyspark.ml.connect innehåller för närvarande bara en delmängd av algoritmerna i pyspark.ml. De algoritmer som stöds visas nedan:

  • Klassificeringsalgoritm: pyspark.ml.connect.classification.LogisticRegression
  • Funktionstransformatorer: pyspark.ml.connect.feature.MaxAbsScaler och pyspark.ml.connect.feature.StandardScaler
  • Utvärderare: pyspark.ml.connect.RegressionEvaluator, pyspark.ml.connect.BinaryClassificationEvaluator och MulticlassClassificationEvaluator
  • Rörledning: pyspark.ml.connect.pipeline.Pipeline
  • Modelljustering: pyspark.ml.connect.tuning.CrossValidator

Krav

På Databricks Runtime 17.0 och senare är Spark ML på Spark Connect aktiverat som standard på beräkningsresurser med standardåtkomstläge med vissa begränsningar. Se Begränsningar för Databricks Runtime 17.0 på Standard Compute. Använd Spark ML på Standard-beräkning om du behöver distribution på Spark-nivå för data som inte får plats i minnet på en enda nod eller om du behöver göra en distribuerad hyperparameterjustering.

För Databricks Runtime 14.0 ML och senare (inklusive Databricks Runtime 17.0 på beräkningsresurser med dedikerad åtkomstläge) finns det ytterligare krav för att använda Spark ML:

Exempelanteckningsbok

Följande notebook-fil visar hur du använder distribuerad ML på Databricks Connect:

Distribuerad ML på Databricks Connect

Hämta anteckningsbok

För referensinformation om API:er i pyspark.ml.connectrekommenderar Databricks Apache Spark API-referensen

Begränsningar för Databricks Runtime 17.0 på Standard Compute

  • Endast Python: Spark ML på Standard Compute stöder endast Python. R och Scala stöds inte.
  • Biblioteksstöd: Endast pyspark.ml paketet stöds. Paketet pyspark.mllib stöds inte.
  • Begränsningar för modellstorlek: Den maximala modellstorleken är 1 GB, så det är inte säkert att det går att träna extremt stora modeller. Trädmodellens träning stoppas tidigt om modellstorleken är på väg att överstiga 1 GB.
  • Minnesbegränsningar: Även om data kan distribueras i klustret cachelagras själva den tränade modellen på drivrutinsnoden, som delas mellan andra användare. Den maximala cachestorleken för modellen per session är 10 GB och den maximala cachestorleken för minnesintern modell per session är 25% för Spark-drivrutinens JVM-minne.
  • Tidsgränser för sessioner: Den cachelagrade modellen på Standard-beräkningen överskrider automatiskt tidsgränsen efter 15 minuters inaktivitet och modellsammanfattningen går förlorad. Om du vill förhindra att modellen förloras sparar du den på disken inom 15 minuter efter att träningen har slutförts eller håller sessionen aktiv med frekvent användning.
  • Resurskonkurration: I Standard-beräkningsmiljöer delas resurser mellan användare och jobb på arbetsytan. Att köra flera stora jobb samtidigt kan leda till långsammare prestanda eller konkurrens om körbara platser.
  • Inget GPU-stöd: Standardbearbetningsmiljöer stöder inte GPU-acceleration. För GPU-accelererade maskininlärningsarbetsbelastningar rekommenderas dedikerade GPU-kluster.
  • Begränsade SparkML-modeller: Följande SparkML-modeller stöds inte:
    • DistributedLDAModel
    • FPGrowthModel