Megosztás a következőn keresztül:


XGBoost-modellek elosztott betanítása sparkdl.xgboost

Fontos

Ez a funkció a nyilvános előzetes verzióban érhető el.

Feljegyzés

sparkdl.xgboost a Databricks Runtime 12.0 ML-től kezdve elavult, és a Databricks Runtime 13.0 ML-ben és újabb verziókban törlődik. A számítási feladatok xgboost.sparkmigrálásáról további információt az elavult sparkdl.xgboost modul áttelepítési útmutatójában talál.

A Databricks Runtime ML a Python-csomagon xgboost sparkdl.xgboost.XgboostRegressor alapuló PySpark-becslőket és sparkdl.xgboost.XgboostClassifier. Ezek alapján létrehozhat egy ML-folyamatot. További információ: XGBoost for PySpark Pipeline.

A Databricks határozottan javasolja, hogy a sparkdl.xgboost felhasználók a Databricks Runtime 11.3 LTS ML vagy újabb verzióját használják. A korábbi Databricks Runtime-verziókat a korábbi verziókban sparkdl.xgboosttalálható hibák befolyásolják.

Feljegyzés

  • A sparkdl.xgboost modul elavult a Databricks Runtime 12.0 ML óta. A Databricks azt javasolja, hogy migrálja a kódot a xgboost.spark modul használatára. Tekintse meg a migrálási útmutatót.
  • A csomag alábbi xgboost paraméterei nem támogatottak: gpu_id, output_margin, validate_features.
  • A paraméterek sample_weight, eval_setés sample_weight_eval_set nem támogatottak. Ehelyett használja a paramétereket weightCol és validationIndicatorCola . Részletekért lásd: XGBoost for PySpark Pipeline .
  • A paraméterek nem base_margin_eval_set támogatottakbase_margin. Használja inkább a paramétert baseMarginCol . Részletekért lásd: XGBoost for PySpark Pipeline .
  • A paraméter missing szemantikája eltér a xgboost csomagtól. A csomagban a xgboost SciPy ritka halmazú mátrix nulla értékeit a rendszer hiányzó értékekként kezeli, függetlenül attól, hogy milyen értékről missingvan szó. A csomag PySpark-becsléseinél a sparkdl Spark ritka vektorban lévő nulla értékek csak akkor lesznek hiányzó értékekként kezelve, ha be van állítva missing=0. Ha ritka betanítási adatkészlettel rendelkezik (a legtöbb funkcióérték hiányzik), a Databricks javasolja a memóriahasználat csökkentésére és a jobb teljesítmény elérésére vonatkozó beállítást missing=0 .

Elosztott betanítás

A Databricks Runtime ML támogatja az elosztott XGBoost betanítást a num_workers paraméterrel. Elosztott betanítás használatához hozzon létre egy osztályozót vagy regresszort, és állítson be num_workers egy olyan értéket, amely kisebb vagy egyenlő a fürtön található Spark-feladathelyek teljes számával. Az összes Spark-feladathely használatához állítsa be a következőt num_workers=sc.defaultParallelism: .

Példa:

classifier = XgboostClassifier(num_workers=sc.defaultParallelism)
regressor = XgboostRegressor(num_workers=sc.defaultParallelism)

Az elosztott betanítás korlátozásai

  • Elosztott XGBoosttal nem használható mlflow.xgboost.autolog .
  • Elosztott XGBoosttal nem használható baseMarginCol .
  • Az elosztott XGBoost nem használható olyan fürtön, amelyen engedélyezve van az automatikus skálázás. Az automatikus skálázás letiltására vonatkozó utasításokért lásd: Automatikus skálázás engedélyezése.

GPU-betanítás

Feljegyzés

A Databricks Runtime 11.3 LTS ML tartalmazza az XGBoost 1.6.1-et, amely nem támogatja az 5.2-es és újabb számítási képességgel rendelkező GPU-fürtöket.

A Databricks Runtime 9.1 LTS ML és újabb verziók támogatják az XGBoost-betanításhoz használható GPU-fürtöket. GPU-fürt használatához állítsa a következőre use_gpu True: .

Példa:

classifier = XgboostClassifier(num_workers=N, use_gpu=True)
regressor = XgboostRegressor(num_workers=N, use_gpu=True)

Hibaelhárítás

A többcsomópontos betanítás során, ha üzenettel találkozik NCCL failure: remote process exited or there was a network error , az általában a GPU-k közötti hálózati kommunikációval kapcsolatos problémát jelez. Ez a probléma akkor merül fel, ha az NCCL (NVIDIA Collective Communications Library) nem tud bizonyos hálózati adaptereket használni a GPU-kommunikációhoz.

A probléma megoldásához állítsa be a fürt sparkConf tulajdonságát a következőre spark.executorEnv.NCCL_SOCKET_IFNAME eth: . Ez lényegében a környezeti változót NCCL_SOCKET_IFNAME eth állítja be a csomópont összes feldolgozója számára.

Példajegyzetfüzet

Ez a jegyzetfüzet a Python-csomag sparkdl.xgboost Spark MLlib-lel való használatát mutatja be. A sparkdl.xgboost csomag elavult a Databricks Runtime 12.0 ML óta.

PySpark-XGBoost notebook

Jegyzetfüzet beszerzése