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.
- En el Registro de modelos de MLflow, puede generar automáticamente un cuaderno para la inferencia por lotes o de streaming a través de Delta Live Tables.
- En la página Ejecución de MLflow del modelo, puede copiar el fragmento de código generado para la inferencia en Pandas o Apache Spark DataFrames.
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.
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:
- Flujo de trabajo de inferencia de modelos de aprendizaje profundo
- Guía de ajuste del rendimiento para la inferencia de modelos de aprendizaje profundo
- Soluciones de referencia para el aprendizaje automático
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.