การเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์มาตราส่วน
ข้อดีประการหนึ่งของการใช้ Apache Spark ใน Azure Databricks คือความสามารถในการกระจายงานการประมวลผลในโหนดคลัสเตอร์หลายรายการ เมื่อคุณใช้ไลบรารีการเรียนรู้ของเครื่อง Spark-aware เช่น MLlib การฝึกอบรมการเรียนรู้ของเครื่องสามารถถูกปรับขนาดเพื่อลดเวลาโดยรวมของกระบวนการฝึกอบรม
Optuna รองรับการเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์แบบกระจายผ่านการผสานรวมกับแบ็กเอนด์ต่างๆ รวมถึง Apache Spark คุณสามารถขนานกระบวนการเพิ่มประสิทธิภาพในหลายโหนดในคลัสเตอร์ Databricks ของคุณโดยใช้ optuna.integration.SparkOptimizer คลาส
โค้ดตัวอย่างต่อไปนี้แสดงวิธีการใช้ Optuna กับ Spark สําหรับการเพิ่มประสิทธิภาพแบบกระจาย:
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)
ประโยชน์หลักบางประการของการใช้ Optuna กับ Spark ใน Azure Databricks ได้แก่:
- การกระจายการทดลองใช้โดยอัตโนมัติในโหนดผู้ปฏิบัติงาน
- ความทนทานต่อข้อผิดพลาดและการกู้คืนในตัว
- การผสานรวมกับ MLflow อย่างราบรื่นสําหรับการติดตามการทดลอง
- รองรับไลบรารี ML ทั้งแบบกระจายและไม่กระจาย
เคล็ดลับ
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพแบบกระจายด้วย Optuna โปรดดูเอกสารประกอบของ Optuna เกี่ยวกับการเพิ่มประสิทธิภาพแบบกระจาย