ضبط المعلمات الفائقة مع Optuna
Optuna هي مكتبة Python مفتوحة المصدر لضبط المعلمات الفائقة التي يمكن تحجيمها أفقيا عبر موارد حساب متعددة. تتكامل Optuna أيضا مع MLflow لتتبع النموذج والاصدار التجريبي ومراقبته.
تثبيت Optuna
استخدم الأوامر التالية لتثبيت Optuna ووحدة التكامل الخاصة به.
%pip install optuna
%pip install optuna-integration # Integration with MLflow
تحديد مساحة البحث وتشغيل تحسين Optuna
فيما يلي الخطوات في سير عمل Optuna:
- حدد دالة موضوعية لتحسينها. ضمن الدالة الموضوعية، حدد مساحة البحث hyperparameter.
- إنشاء كائن 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
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ