Registrera och hantera modeller med MLflow
Med modellregistrering kan MLflow och Azure Databricks hålla reda på modeller. vilket är viktigt av två skäl:
- Genom att registrera en modell kan du hantera modellen för realtids-, strömnings- eller batchinferens. Registreringen gör det enkelt att använda en tränad modell, eftersom dataexperter nu inte behöver utveckla programkod. serveringsprocessen bygger omslutaren och exponerar ett REST API eller en metod för batchbedömning automatiskt.
- Genom att registrera en modell kan du skapa nya versioner av modellen över tid. ger dig möjlighet att spåra modelländringar och även utföra jämförelser mellan olika historiska versioner av modeller.
Registrera en modell
När du kör ett experiment för att träna en modell kan du logga själva modellen som en del av experimentkörningen, som du ser här:
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())
När du granskar experimentkörningen, inklusive de loggade måtten som anger hur väl modellen förutsäger, inkluderas modellen i körningsartefakterna. Du kan sedan välja alternativet för att registrera modellen med hjälp av användargränssnittet i experimentvisningsprogrammet.
Om du vill registrera modellen utan att granska måtten i körningen kan du inkludera parametern registered_model_name i metoden log_model . I så fall registreras modellen automatiskt under experimentkörningen.
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")
Du kan registrera flera versioner av en modell, så att du kan jämföra prestanda för modellversioner under en tidsperiod innan du flyttar alla klientprogram till den version som fungerar bäst.
Använda en modell för slutsatsdragning
Processen att använda en modell för att förutsäga etiketter från nya funktionsdata kallas slutsatsdragning. Du kan använda MLflow i Azure Databricks för att göra modeller tillgängliga för slutsatsdragning på följande sätt:
- Hantera modellen som en realtidstjänst med en HTTP-slutpunkt som klientprogram kan göra REST-begäranden till.
- Använd modellen för att utföra evig direktuppspelning av etiketter baserat på en deltatabell med funktioner och skriva resultatet till en utdatatabell.
- Använd modellen för batchinferens baserat på en deltatabell och skriv resultatet av varje batchåtgärd till en specifik mapp.
Du kan distribuera en modell för slutsatsdragning från sidan i avsnittet Modeller i Azure Databricks-portalen enligt följande: