Megosztás a következőn keresztül:


Hiperparaméter-finomhangolás optunával

Az Optuna egy nyílt forráskódú Python-kódtár a hiperparaméterek finomhangolásához, amely horizontálisan skálázható több számítási erőforrásra. Az Optuna az MLflow-val is integrálható a modell- és próbaverziókövetés és -monitorozás érdekében.

Az Optuna telepítése

Az Optuna és integrációs moduljának telepítéséhez használja az alábbi parancsokat.

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

Keresési terület meghatározása és Optuna-optimalizálás futtatása

Az Optuna-munkafolyamat lépései a következők:

  1. Definiáljon egy optimalizálni kívánt objektív függvényt. A célfüggvényen belül adja meg a hiperparaméter keresési területét.
  2. Hozzon létre egy Optuna Study objektumot, és futtassa a hangolási algoritmust a optimize Tanulmány objektum függvényének meghívásával.

Az alábbiakban egy minimális példát talál az Optuna dokumentációjából.

  • Határozza meg az objektív függvényt objective, és hívja meg a suggest_float függvényt a paraméter xkeresési helyének meghatározásához.
  • Hozzon létre egy tanulmányt, és optimalizálja a objective függvényt 100 próbaverzióval, azaz a függvény 100 hívásával objective , különböző értékekkel x.
  • A tanulmány legjobb paramétereinek lekérése
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-próbaverziók párhuzamosítása több géppel

Az Optuna-próbaverziókat több gépre is terjesztheti egy Azure Databricks-fürtben a Joblib Apache Spark Háttérrendszerrel.

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)

Integrálás az MLflow-jal

Az Optuna-kísérletek hiperparamétereinek és metrikáinak nyomon követéséhez használja az MLflowCallback Optuna-integrációs modulokat, amikor meghívja a függvényt 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])

Példa jegyzetfüzetre

Ez a jegyzetfüzet egy példa arra, hogy az Optuna használatával választ ki egy scikit-learn modellt és egy hiperparaméter-készletet az Írisz-adatkészlethez.

Az egygépes Optuna-munkafolyamaton felül a jegyzetfüzet bemutatja, hogyan

  • Optuna-próbaverziók párhuzamosítása több géppel a Joblib használatával
  • Próbafuttatások nyomon követése az MLflow használatával

Hiperparaméter-finomhangolás vertikális felskálázása Az Optuna és az MLflow használatával

Jegyzetfüzet beszerzése