Sdílet prostřednictvím


Apache Spark MLlib a automatizované sledování MLflow

Poznámka:

Automatizované sledování MLflow MLlib je v clusterech, na kterých běží Databricks Runtime 10.1 ML a novější, a ve výchozím nastavení je zakázané v clusterech s Modulem Databricks Runtime 10.2 ML a novějším. Místo toho použijte automatické protokolování MLflow PySpark ML voláním mlflow.pyspark.ml.autolog(), která je ve výchozím nastavení povolena s automatickým protokolováním Databricks.

Pokud chcete použít staré automatizované sledování MLflow MLlib v Databricks Runtime 10.2 ML nebo novějším, povolte ho nastavením konfigurací Sparku spark.databricks.mlflow.trackMLlib.enabled true a .spark.databricks.mlflow.autologging.enabled false

MLflow je open source platforma pro správu kompletního životního cyklu strojového učení. MLflow podporuje sledování ladění modelů strojového učení v Pythonu, R a Scala. Pouze pro poznámkové bloky Pythonu podporují poznámky k verzi databricks Runtime verze a jejich kompatibilitu a kompatibilitu a Databricks Runtime pro strojové Učení podporu automatizovanéhosledování MLflow pro ladění modelů Apache Spark MLlib.

Při automatizovaném sledování MLflow MLlib se při spouštění kódu ladění, který používá CrossValidator nebo TrainValidationSplit, hyperparametry a vyhodnocovací metriky automaticky protokolují v MLflow. Bez automatizovaného sledování MLflow musíte provést explicitní volání rozhraní API pro protokolování do MLflow.

Správa spuštění MLflow

CrossValidator nebo TrainValidationSplit výsledky ladění protokolů při vnořených spuštění MLflow:

  • Hlavní nebo nadřazené spuštění: Informace pro CrossValidator hlavní spuštění nebo TrainValidationSplit jsou zaprotokolovány do hlavního spuštění. Pokud již existuje aktivní spuštění, zaprotokolují se do tohoto aktivního spuštění informace a aktivní spuštění se nezastaví. Pokud žádné aktivní spuštění neexistuje, MLflow vytvoří nové spuštění, protokoluje ho a ukončí ho před vrácením.
  • Podřízená spuštění: Každé otestované nastavení hyperparametrů a odpovídající metrika vyhodnocení se zaprotokoluje do podřízeného spuštění pod hlavním spuštěním.

Při volání fit()azure Databricks doporučuje aktivní správu spuštění MLflow. To znamená, že volání zabalíte do fit() příkazu "with mlflow.start_run():". Tím se zajistí, že se informace zaprotokolují pod vlastním hlavním spuštěním MLflow a usnadníte protokolování dalších značek, parametrů nebo metrik do tohoto spuštění.

Poznámka:

Pokud fit() je volána vícekrát ve stejném aktivním spuštění MLflow, protokoluje tyto více spuštění do stejného hlavního spuštění. Pokud chcete vyřešit konflikty názvů pro parametry a značky MLflow, MLflow připojí UUID k názvům s konflikty.

Následující poznámkový blok Pythonu ukazuje automatizované sledování MLflow.

Automatizovaný poznámkový blok pro sledování MLflow

Získat poznámkový blok

Po provedení akcí v poslední buňce poznámkového bloku by se mělo zobrazit uživatelské rozhraní MLflow:

MLlib-MLflow demo