Dela via


Distribuera modeller för batchinferens och förutsägelse

Den här artikeln beskriver hur du distribuerar MLflow-modeller för offlineinferens (batch och direktuppspelning). Databricks rekommenderar att du använder MLflow för att distribuera maskininlärningsmodeller för batch- eller strömningsinferens. Allmän information om hur du arbetar med MLflow-modeller finns i Logga, läsa in, registrera och distribuera MLflow-modeller.

Information om realtidsmodell som betjänar Azure Databricks finns i Modellservering med Azure Databricks.

Använda MLflow för modellinferens

MLflow hjälper dig att generera kod för batch- eller strömningsinferens.

Du kan också anpassa koden som genereras av något av ovanstående alternativ. Se följande notebook-filer för exempel:

  • Modellinferensexemplet använder en modell som tränats med scikit-learn och tidigare loggats till MLflow för att visa hur man läser in en modell och använder den för att göra förutsägelser på data i olika format. Notebook-filen visar hur du tillämpar modellen som en scikit-learn-modell på en Pandas DataFrame och hur du tillämpar modellen som en PySpark UDF på en Spark DataFrame.
  • Exemplet MLflow Model Registry visar hur du skapar, hanterar och distribuerar en modell med Model Registry. På den sidan kan du söka efter för .predict att identifiera exempel på offlineförutsägelser (batch).

Skapa ett Azure Databricks-jobb

Om du vill köra batch- eller strömningsförutsägelser som ett jobb skapar du en notebook- eller JAR-fil som innehåller den kod som används för att utföra förutsägelserna. Kör sedan notebook-filen eller JAR-filen som ett Azure Databricks-jobb. Jobb kan köras antingen omedelbart eller enligt ett schema.

Slutsatsdragning för direktuppspelning

Från MLflow Model Registry kan du automatiskt generera en notebook-fil som integrerar MLflow PySpark-slutsatsdragnings-UDF med Delta Live Tables.

Du kan också ändra den genererade inferens notebook-filen så att den använder Apache Spark Structured Streaming API.

Slutsatsdragning med djupinlärningsmodeller

Information om och exempel på slutsatsdragning av djupinlärningsmodeller i Azure Databricks finns i följande artiklar:

Slutsatsdragning med MLlib- och XGBoost4J-modeller

För skalbar modellinferens med MLlib- och XGBoost4J-modeller använder du de inbyggda transform metoderna för att utföra slutsatsdragning direkt på Spark DataFrames. MLlib-exempelanteckningsböckerna innehåller slutsatsdragningssteg.

Anpassa och optimera modellinferens

När du använder MLflow-API:er för att köra slutsatsdragning på Spark DataFrames kan du läsa in modellen som en Spark UDF och tillämpa den i stor skala med hjälp av distribuerad databehandling.

Du kan anpassa din modell för att lägga till förbearbetning eller efterbearbetning och optimera beräkningsprestanda för stora modeller. Ett bra alternativ för att anpassa modeller är MLflow pyfunc API, som gör att du kan omsluta en modell med anpassad logik.

Om du behöver göra ytterligare anpassningar kan du manuellt omsluta din maskininlärningsmodell i en Pandas UDF eller en Pandas Iterator UDF. Se djupinlärningsexempel.

För mindre datamängder kan du också använda inbyggda modellinferensrutiner som tillhandahålls av biblioteket.