Udostępnij przez


Trenowanie modeli Spark ML w usłudze Databricks Connect za pomocą pyspark.ml.connect

W tym artykule przedstawiono przykład, jak używać modułu pyspark.ml.connect do wykonywania trenowania rozproszonego w celu trenowania modeli Spark ML i przeprowadzania wnioskowania na modelach.

Co to jest pyspark.ml.connect?

Spark 3.5 wprowadza pyspark.ml.connect, która jest przeznaczona do obsługi trybu Spark Connect i Databricks Connect. Dowiedz się więcej o usłudze Databricks Connect.

Moduł pyspark.ml.connect składa się z typowych algorytmów uczenia i narzędzi, w tym klasyfikacji, przekształcania funkcji, potoków uczenia maszynowego i krzyżowego sprawdzania poprawności. Ten moduł zawiera podobne interfejsy do starszego pyspark.ml modułu, ale pyspark.ml.connect moduł obecnie zawiera tylko podzbiór algorytmów w pyspark.ml. Obsługiwane algorytmy są wymienione poniżej:

  • Algorytm klasyfikacji: pyspark.ml.connect.classification.LogisticRegression
  • Transformatory cech: pyspark.ml.connect.feature.MaxAbsScaler i pyspark.ml.connect.feature.StandardScaler
  • Ewaluator: pyspark.ml.connect.RegressionEvaluator, pyspark.ml.connect.BinaryClassificationEvaluator i MulticlassClassificationEvaluator
  • Rurociąg: pyspark.ml.connect.pipeline.Pipeline
  • Dostrajanie modelu: pyspark.ml.connect.tuning.CrossValidator

Wymagania

W środowisku Databricks Runtime 17.0 lub nowszym Spark ML na platformie Spark Connect jest domyślnie włączony na zasobach obliczeniowych w trybie dostępu Standard z ograniczeniami. Zobacz Ograniczenia dotyczące środowiska Databricks Runtime 17.0 na standardowej maszynie obliczeniowej. Użyj Spark ML na warstwie Standard, jeśli potrzebujesz dystrybucji Spark dla danych, których nie mieszczą się w pamięci w jednym węźle lub jeśli potrzebujesz rozproszonego dostrajania hiperparametrów.

W przypadku środowiska Databricks Runtime 14.0 ML lub nowszego (w tym środowiska Databricks Runtime 17.0 na zasobach obliczeniowych korzystających z trybu dedykowanego dostępu) istnieją dodatkowe wymagania dotyczące korzystania z usługi Spark ML:

Przykładowy notes

W poniższym notesie pokazano, jak używać rozproszonego uczenia maszynowego w usłudze Databricks Connect:

Rozproszone uczenie maszynowe w usłudze Databricks Connect

Pobierz notes

Aby uzyskać informacje referencyjne dotyczące interfejsów API w pyspark.ml.connect, Databricks zaleca dokumentację referencyjną interfejsu API platformy Apache Spark.

Ograniczenia dotyczące Databricks Runtime 17.0 na platformie obliczeniowej Standardowej

  • Tylko Python: usługa Spark ML w warstwie Standard obsługuje tylko Python. Języki R i Scala nie są obsługiwane.
  • Obsługa biblioteki: obsługiwany jest tylko pakiet pyspark.ml. Pakiet pyspark.mllib nie jest obsługiwany.
  • Ograniczenia rozmiaru modelu: maksymalny rozmiar modelu wynosi 1 GB, więc trenowanie bardzo dużych modeli może nie być możliwe. Trenowanie modelu drzewa zostanie zatrzymane wcześnie, jeśli rozmiar modelu przekroczy 1 GB.
  • Ograniczenia pamięci: podczas gdy dane mogą być dystrybuowane w klastrze, sam wytrenowany model jest buforowany w węźle sterownika, który jest współużytkowany przez innych użytkowników. Maksymalny rozmiar pamięci podręcznej modelu na sesję wynosi 10 GB, a maksymalny rozmiar pamięci podręcznej modelu w pamięci na sesję to 25% pamięci JVM sterownika Spark.
  • Limity czasu trwania sesji: Model buforowany na Standardowym środowisku obliczeniowym wygasa automatycznie po 15 minutach braku aktywności. Aby zapobiec utracie modelu, zapisz go na dysku w ciągu 15 minut po zakończeniu trenowania lub zachowaj aktywną sesję z częstym użyciem.
  • Rywalizacja o zasoby: w standardowych środowiskach obliczeniowych zasoby są współużytkowane przez użytkowników i zadania w obszarze roboczym. Współbieżne uruchamianie wielu dużych zadań może prowadzić do spowolnienia pracy lub konkurencji o miejsca wykonawcze.
  • Brak obsługi procesora GPU: standardowe środowiska obliczeniowe nie obsługują przyspieszania procesora GPU. W przypadku obciążeń uczenia maszynowego przyspieszonego przez procesor GPU zalecane są dedykowane klastry procesora GPU.
  • Ograniczone modele SparkML: następujące modele SparkML nie są obsługiwane:
    • DistributedLDAModel
    • FPGrowthModel