Apache Spark MLlib és automatizált MLflow-követés

Megjegyzés:

Az MLlib automatizált MLflow-nyomkövetés elavult a Databricks Runtime 10.1 ML-t és újabb verziót futtató fürtökön, és alapértelmezés szerint le van tiltva a Databricks Runtime 10.2 ML-t és újabb verziót futtató fürtöken. Ehelyett az MLflow PySpark ML automatikus aktiválását használja a hívássalmlflow.pyspark.ml.autolog(), amely alapértelmezés szerint engedélyezve van a Databricks autologging funkcióval.

Ha a régi MLlib automatizált MLflow-nyomkövetést szeretné használni a Databricks Runtime 10.2 ML vagy újabb verziójában, engedélyezze azt a Spark-konfigurációkspark.databricks.mlflow.trackMLlib.enabled true és spark.databricks.mlflow.autologging.enabled falsea .

Az MLflow egy nyílt forráskódú platform, amely lehetővé teszi a teljes gépi tanulási életciklus kezelését. Az MLflow támogatja a gépi tanulási modellek hangolásának követését Pythonban, R-ben és Scalában. Csak Python-jegyzetfüzetek esetén a Databricks Runtime kibocsátási megjegyzéseinek verziói és kompatibilitása, valamint a Databricks Runtime for Machine Tanulás támogatják az Apache Spark MLlib-modellek automatikusMLflow-követését.

Az MLlib automatizált MLflow-nyomkövetésével a rendszer automatikusan naplózza a hiperparamétereket és a kiértékelési metrikákat használó CrossValidatorTrainValidationSplithangolási kódot az MLflow-ban. Automatizált MLflow-nyomkövetés nélkül explicit API-hívásokat kell kezdeményeznie az MLflow-ba való bejelentkezéshez.

MLflow-futtatások kezelése

CrossValidator vagy TrainValidationSplit naplózhatja a hangolási eredményeket beágyazott MLflow-futtatásokként:

  • Fő- vagy szülőfuttatás: A fő futtatás adatai CrossValidator vagy TrainValidationSplit naplózva. Ha már van aktív futtatás, a rendszer naplózza az adatokat ebbe az aktív futtatásba, és az aktív futtatás nem áll le. Ha nincs aktív futtatás, az MLflow létrehoz egy új futtatást, naplózza azt, és a visszatérés előtt befejezi a futtatást.
  • Gyermekfuttatások: A rendszer minden tesztelt hiperparaméter-beállítást és a megfelelő kiértékelési metrikát naplózza a főfuttatás alatt futó gyermekfuttatásba.

Híváskor fit()az Azure Databricks aktív MLflow-futtatási felügyeletet javasol, azaz a hívást fit() egy "with mlflow.start_run():" utasításba csomagolja. Ez biztosítja, hogy az adatok naplózása a saját MLflow főfuttatása alatt történik, és megkönnyíti a további címkék, paraméterek vagy metrikák naplózását az adott futtatáshoz.

Megjegyzés:

Ha fit() egy aktív MLflow-futtatáson belül többször is meghívják, a rendszer naplózza a több futtatásokat ugyanarra a fő futtatásra. Az MLflow-paraméterek és -címkék névütközéseinek feloldásához az MLflow hozzáfűz egy UUID-t az ütközésekkel rendelkező nevekhez.

Az alábbi Python-jegyzetfüzet az automatizált MLflow-nyomkövetést mutatja be.

Automatizált MLflow-nyomkövetési jegyzetfüzet

Jegyzetfüzet beszerzése

Miután végrehajtotta a műveleteket a jegyzetfüzet utolsó cellájában, az MLflow felhasználói felületének meg kell jelennie:

MLlib-MLflow demo