Hiper parametre iyileştirmeyi ölçeklendirme

Tamamlandı

Azure Databricks'te Apache Spark kullanmanın avantajlarından biri, işlem görevlerini birden çok küme düğümü arasında dağıtabilmektir. MLlib gibi Spark kullanan bir makine öğrenmesi kitaplığı kullandığınızda makine öğrenmesi eğitimi, eğitim sürecinin toplam süresini azaltmak için ölçeği genişletilebilir.

Optuna, Apache Spark dahil olmak üzere çeşitli arka uçlarla tümleştirme yoluyla dağıtılmış hiper parametre iyileştirmesini destekler. sınıfını kullanarak optuna.integration.SparkOptimizer Databricks kümenizdeki birden çok düğüm arasında iyileştirme işlemini paralel hale getirebilirsiniz.

Aşağıdaki örnek kod, dağıtılmış iyileştirme için Optuna'nın Spark ile nasıl kullanılacağını gösterir:

from optuna.integration import SparkOptimizer
import mlflow

def objective(trial):
    # Define your hyperparameters
    x = trial.suggest_float("x", -10, 10)
    # ... your model training and evaluation ...
    return (x - 2) ** 2  # Example objective

# Create a SparkOptimizer
spark_optimizer = SparkOptimizer(study_name="distributed_study",
                               storage="sqlite:///example.db",
                               n_trials=100)

# Run optimization with MLflow tracking
with mlflow.start_run():
    study = spark_optimizer.run_study(objective, direction="minimize")
    
    print("Best param values: ", study.best_params)
    print("Best value: ", study.best_value)

Azure Databricks'te Spark ile Optuna kullanmanın başlıca avantajlarından bazıları şunlardır:

  • Denemelerin çalışan düğümleri arasında otomatik dağıtımı
  • Yerleşik hataya dayanıklılık ve kurtarma
  • Deneme izleme için MLflow ile sorunsuz tümleştirme
  • Hem dağıtılmış hem de dağıtılmamış ML kitaplıkları için destek

Tavsiye

Optuna ile dağıtılmış iyileştirme hakkında daha fazla bilgi için dağıtılmış iyileştirmeyle ilgili Optuna belgelerine bakın.