Implementación de modelos para la inferencia y la predicción por lotes

En este artículo se describe cómo implementar modelos de MLflow para la inferencia sin conexión (por lotes y streaming). Databricks recomienda usar MLflow para implementar modelos de Machine Learning para la inferencia por lotes o de streaming. Para obtener información general sobre la implementación de modelos de MLflow, consulte Registro, carga e implementación de modelos MLflow.

Para obtener información sobre el servicio de modelos en tiempo real en Azure Databricks, consulte Servicio de modelos con Azure Databricks.

Uso de MLflow para la inferencia de modelos

MLflow le ayuda a generar código para la inferencia por lotes o de streaming.

También puede personalizar el código generado por cualquiera de las opciones anteriores. Consulte los siguientes cuadernos para obtener ejemplos:

  • En el ejemplo de inferencia del modelo se usa un modelo entrenado con scikit-learn y que se registró anteriormente en MLflow para mostrar cómo cargar un modelo y usarlo para realizar predicciones sobre datos en distintos formatos. En el cuaderno se muestra cómo aplicar el modelo como un modelo scikit-learn a un DataFrame de Pandas y cómo aplicar el modelo como una UDF de PySpark a un DataFrame de Spark.
  • En el ejemplo del Registro de modelos de MLflow se muestra cómo compilar, administrar e implementar un modelo con el Registro de modelos. En esa página, puede buscar .predict para identificar ejemplos de predicciones sin conexión (por lotes).

Creación de un trabajo de Azure Databricks

Para ejecutar predicciones por lotes o de streaming como un trabajo, cree un cuaderno o JAR que incluya el código usado para realizar las predicciones. A continuación, ejecute el cuaderno o JAR como un trabajo de Azure Databricks. Los trabajos se pueden ejecutar inmediatamente o según una programación.

Inferencia de streaming

Desde el registro de modelos de MLflow, puede generar automáticamente un cuaderno que integre la UDF de inferencia de PySpark de MLflow con Delta Live Tables.

También puede modificar el cuaderno de inferencia generado para usar la API Structured Streaming de Apache Spark. Vea el ejemplo de canalizaciones de Apache Spark MLlib y Structured Streaming.

Inferencia con modelos de aprendizaje profundo

Para obtener información sobre inferencia de modelos de aprendizaje profundo en Azure Databricks, y ejemplos, consulte los siguientes artículos:

Inferencia con modelos MLlib y XGBoost4J

Para crear una inferencia de un modelo escalable con los modelos MLlib y XGBoost4J, use los métodos transform nativos para realizar la inferencia directamente en dataframes de Spark. Los cuadernos de ejemplo de MLlib incluyen pasos de inferencia.

Personalización y optimización de la inferencia del modelo

Al usar las API de MLflow para ejecutar la inferencia en DataFrames de Spark, puede cargar el modelo como una UDF de Spark y aplicarlo a escala mediante la computación distribuida.

Puede personalizar el modelo para agregar preprocesamiento o posprocesamiento y optimizar el rendimiento computacional para modelos grandes. Una buena opción para personalizar modelos es la API pyfunc de MLflow, que permite encapsular un modelo con lógica personalizada.

Si necesita realizar una personalización adicional, puede encapsular manualmente el modelo de aprendizaje automático en una UDF de Pandas o en una UDF de Iterador de Pandas. Consulte los ejemplos de aprendizaje profundo.

En el caso de conjuntos de datos más pequeños, también puede usar las rutinas de inferencia de modelos nativos que proporciona la biblioteca.