ضبط المعلمات الفائقة مع Optuna

Optuna هي مكتبة Python مفتوحة المصدر لضبط المعلمات الفائقة التي يمكن تحجيمها أفقيا عبر موارد حساب متعددة. تتكامل Optuna أيضا مع MLflow لتتبع النموذج والاصدار التجريبي ومراقبته.

تثبيت Optuna

استخدم الأوامر التالية لتثبيت Optuna ووحدة التكامل الخاصة به.

%pip install optuna
%pip install optuna-integration # Integration with MLflow

تحديد مساحة البحث وتشغيل تحسين Optuna

فيما يلي الخطوات في سير عمل Optuna:

  1. حدد دالة موضوعية لتحسينها. ضمن الدالة الموضوعية، حدد مساحة البحث hyperparameter.
  2. إنشاء كائن Optuna Study، وتشغيل خوارزمية الضبط عن طريق استدعاء دالة optimize كائن Study.

فيما يلي مثال بسيط من وثائق Optuna.

  • حدد الدالة objectiveالموضوعية ، واستدع الدالة suggest_float لتعريف مساحة البحث للمعلمة x.
  • إنشاء دراسة، وتحسين الدالة objective مع 100 تجربة، أي 100 استدعاء للدالة objective بقيم مختلفة من x.
  • الحصول على أفضل معلمات الدراسة
def objective(trial):
    x = trial.suggest_float("x", -10, 10)
    return (x - 2) ** 2

study = optuna.create_study()
study.optimize(objective, n_trials=100)

best_params = study.best_params

توازي تجارب Optuna مع أجهزة متعددة

يمكنك توزيع تجارب Optuna على أجهزة متعددة في مجموعة Azure Databricks باستخدام Joblib Apache Spark Backend.

import joblib
from joblibspark import register_spark

register_spark() # register Spark backend for Joblib
with joblib.parallel_backend("spark", n_jobs=-1):
    study.optimize(objective, n_trials=100)

التكامل مع MLflow

لتتبع المعلمات الفائقة والمقاييس لجميع تجارب Optuna، استخدم MLflowCallback وحدات تكامل Optuna عند استدعاء optimize الوظيفة.

import mlflow
from optuna.integration.mlflow import MLflowCallback

mlflow_callback = MLflowCallback(
    tracking_uri="databricks",
    metric_name="accuracy",
    create_experiment=False,
    mlflow_kwargs={
        "experiment_id": experiment_id
    }
)

study.optimize(objective, n_trials=100, callbacks=[mlflow_callback])

مثال دفتر الملاحظات

يوفر دفتر الملاحظات هذا مثالا على استخدام Optuna لتحديد نموذج scikit-learn ومجموعة من المعلمات الفائقة لمجموعة بيانات Iris.

أعلى سير عمل Optuna لجهاز واحد، يعرض دفتر الملاحظات كيفية

  • توازي تجارب Optuna مع أجهزة متعددة عبر Joblib
  • تعقب عمليات التشغيل التجريبية باستخدام MLflow

توسيع نطاق ضبط المعلمات الفائقة باستخدام Optuna وMLflow

الحصول على دفتر الملاحظات