Registrace a obsluha modelů pomocí MLflow
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: