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.spark
migrá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.xgboost
talá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 axgboost.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
éssample_weight_eval_set
nem támogatottak. Ehelyett használja a paramétereketweightCol
ésvalidationIndicatorCol
a . 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étertbaseMarginCol
. Részletekért lásd: XGBoost for PySpark Pipeline . - A paraméter
missing
szemantikája eltér axgboost
csomagtól. A csomagban axgboost
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őlmissing
van szó. A csomag PySpark-becsléseinél asparkdl
Spark ritka vektorban lévő nulla értékek csak akkor lesznek hiányzó értékekként kezelve, ha be van állítvamissing=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ástmissing=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.