Registrace a obsluha modelů pomocí MLflow

Dokončeno

Registrace modelů umožňuje MLflow a Azure Databricks sledovat modely; což je důležité ze dvou důvodů:

  • Registrace modelu umožňuje obsluhovat model pro odvozování v reálném čase, streamování nebo dávkové odvozování. Registrace usnadňuje proces použití natrénovaného modelu, protože teď datoví vědci nepotřebují vyvíjet kód aplikace; proces obsluhy sestaví obálku a zpřístupňuje rozhraní REST API nebo metodu pro dávkové vyhodnocování automaticky.
  • Registrace modelu umožňuje vytvořit nové verze tohoto modelu v průběhu času; poskytuje vám možnost sledovat změny modelu a dokonce provádět porovnání mezi různými historickými verzemi modelů.

Registrace modelu

Když spustíte experiment pro trénování modelu, můžete model samotný protokolovat jako součást spuštění experimentu, jak je znázorněno tady:

with mlflow.start_run():
    # code to train model goes here

    # log the model itself (and the environment it needs to be used)
    unique_model_name = "my_model-" + str(time.time())
    mlflow.spark.log_model(spark_model = model,
                           artifact_path=unique_model_name,
                           conda_env=mlflow.spark.get_default_conda_env())

Při kontrole spuštění experimentu, včetně protokolovaných metrik, které označují, jak dobře model predikuje, je model součástí artefaktů spuštění. Pak můžete vybrat možnost registrace modelu pomocí uživatelského rozhraní v prohlížeči experimentů.

Případně pokud chcete model zaregistrovat bez kontroly metrik ve spuštění, můžete do metody log_model zahrnout parametr registered_model_name. V takovém případě se model během spuštění experimentu automaticky zaregistruje.

with mlflow.start_run():
    # code to train model goes here

    # log the model itself (and the environment it needs to be used)
    unique_model_name = "my_model-" + str(time.time())
    mlflow.spark.log_model(spark_model=model,
                           artifact_path=unique_model_name
                           conda_env=mlflow.spark.get_default_conda_env(),
                           registered_model_name="my_model")

Můžete zaregistrovat více verzí modelu, což vám umožní porovnat výkon verzí modelu v určitém časovém období před přesunem všech klientských aplikací na nejvýkonnější verzi.

Použití modelu k odvozování

Proces použití modelu k predikci popisků z dat nových funkcí se označuje jako odvozování. Pomocí MLflow v Azure Databricks můžete modely zpřístupnit pro odvozování následujícími způsoby:

  • Hostování modelu jako služby v reálném čase s koncovým bodem HTTP, do kterého můžou klientské aplikace provádět požadavky REST.
  • Pomocí modelu můžete provádět časově neomezené odvozování popisků na základě rozdílové tabulky funkcí a zapisovat výsledky do výstupní tabulky.
  • Použijte model pro dávkové odvozování na základě tabulky Delta a zapište výsledky každé dávkové operace do konkrétní složky.

Model pro odvozování můžete nasadit ze své stránky v části Modely na portálu Azure Databricks, jak je znázorněno tady:

Screenshot of the Set up model inference dialog box in the Azure Databricks portal.