sparkdl.xgboost를 사용하여 XGBoost 모델의 분산 학습

Important

이 기능은 공개 미리 보기 상태입니다.

참고 항목

sparkdl.xgboost 는 Databricks Runtime 12.0 ML부터 사용되지 않으며 Databricks Runtime 13.0 ML 이상에서 제거됩니다. 워크로드를 xgboost.spark로 마이그레이션하는 방법에 대한 자세한 내용은 사용되지 않는 sparkdl.xgboost 모듈에 대한 마이그레이션 가이드를 참조하세요.

Databricks Runtime ML에는 Python xgboost 패키지를 sparkdl.xgboost.XgboostRegressor 기반으로 하는 PySpark 추정기가 포함됩니다 sparkdl.xgboost.XgboostClassifier. 이러한 추정기를 기반으로 ML 파이프라인을 만들 수 있습니다. 자세한 내용은 PySpark 파이프라인용 XGBoost를 참조하세요.

Databricks는 사용자가 Databricks Runtime 11.3 LTS ML 이상을 사용하는 것이 좋습니다 sparkdl.xgboost . 이전 Databricks Runtime 버전은 이전 버전 sparkdl.xgboost의 버그로부터 영향을 받습니다.

참고 항목

  • sparkdl.xgboost 모듈은 Databricks Runtime 12.0 ML 이후 사용되지 않습니다. Databricks에서는 xgboost.spark 모듈을 대신 사용하도록 코드를 마이그레이션하는 것을 권장합니다. 마이그레이션 가이드를 참조하세요.
  • xgboost 패키지의 gpu_id, output_margin, validate_features 매개 변수는 지원되지 않습니다.
  • sample_weight, eval_setsample_weight_eval_set 매개 변수는 지원되지 않습니다. 대신 weightColvalidationIndicatorCol 매개 변수를 사용합니다. 자세한 내용은 PySpark 파이프라인용 XGBoost를 참조하세요.
  • base_marginbase_margin_eval_set 매개 변수는 지원되지 않습니다. 대신 매개 변수 baseMarginCol 를 사용합니다. 자세한 내용은 PySpark 파이프라인용 XGBoost를 참조하세요.
  • 매개 변수 missingxgboost 패키지와 다른 의미 체계를 갖습니다. xgboost 패키지에서 SciPy 희소 행렬의 0 값은 missing 값에 관계없이 결측값으로 처리됩니다. sparkdl 패키지의 PySpark 추정기의 경우 missing=0를 설정하지 않는 한 Spark 희소 벡터의 0 값은 결측값으로 처리되지 않습니다. 희소한 학습 데이터 세트가 있는 경우(대부분의 특성 값이 누락됨) Databricks는 missing=0을 설정하여 메모리 사용량을 줄이고 더 나은 성능을 얻을 것을 권장합니다.

분산 학습

Databricks Runtime ML은 매개 변수를 사용하여 분산 XGBoost 학습을 num_workers 지원합니다. 분산 학습을 사용하려면 분류자 또는 회귀자를 만들고 클러스터의 총 Spark 작업 슬롯 수보다 작거나 같은 값으로 설정합니다 num_workers . 모든 Spark 작업 슬롯을 사용하려면 .num_workers=sc.defaultParallelism

예시:

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

분산 학습의 한계

GPU 교육

참고 항목

Databricks Runtime 11.3 LTS ML에는 컴퓨팅 기능이 5.2 이하인 GPU 클러스터를 지원하지 않는 XGBoost 1.6.1이 포함되어 있습니다.

Databricks Runtime 9.1 LTS ML 이상은 XGBoost 학습용 GPU 클러스터를 지원합니다. GPU 클러스터를 사용하려면 use_gpuTrue로 설정합니다.

예시:

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

예제 Notebook

이 Notebook은 Spark MLlib와 함께 sparkdl.xgboost Python 패키지를 사용하는 것을 보여줍니다. sparkdl.xgboost 패키지는 Databricks Runtime 12.0 ML 이후 사용되지 않습니다.

PySpark-XGBoost Notebook

전자 필기장 가져오기