Déployer des modèles groupés à des fins d’inférence et de prédiction

Cet article explique comment déployer des modèles MLflow à des fins d’inférence hors connexion (lots et streaming). Databricks recommande d’utiliser MLflow pour déployer des modèles Machine Learning pour lots et streaming. Pour obtenir des informations générales sur l’utilisation des modèles MLflow, consultez Journaliser, charger, inscrire et déployer des modèles MLflow.

Pour plus d’informations sur le service de modèle en temps réel sur Azure Databricks, consultez Service modèle avec Azure Databricks.

Utiliser MLflow pour l’inférence de modèles

MLflow vous aide à générer du code à des fins d’inférence par lots ou en streaming.

Vous pouvez aussi personnaliser le code généré à l’aide de l’une des options ci-dessus. Pour obtenir des exemples, consultez les notebooks suivants :

  • L’exemple d’inférence de modèles utilise un modèle entraîné avec scikit-learn et précédemment journalisé dans MLflow pour montrer comment charger un modèle et l’utiliser pour effectuer des prédictions sur des données dans différents formats. Le notebook montre comment appliquer le modèle en tant que modèle scikit-learn à un DataFrame pandas, puis comment appliquer le modèle en tant que fonction UDF PySpark à un DataFrame Spark.
  • L’exemple de registre de modèles MLflow montre comment générer, gérer et déployer un modèle avec le registre de modèles. Dans cette page, vous pouvez rechercher .predict pour identifier des exemples de prédictions hors connexion (par lots).

Créer un travail Azure Databricks

Pour exécuter des prédictions par lots ou en streaming sous forme de travail, créez un notebook ou un fichier JAR qui inclut le code utilisé pour effectuer les prédictions. Ensuite, exécutez le notebook ou le fichier JAR en tant que travail Azure Databricks. Les travaux peuvent être exécutés immédiatement ou selon une planification.

Inférence par streaming

À partir du registre de modèles MLflow, vous pouvez générer automatiquement un notebook qui intègre la fonction UDF d’inférence PySpark de MLflow à Delta Live Tables.

Vous pouvez également modifier le notebook d’inférence généré pour utiliser l’API de streaming structuré Apache Spark. Consultez l’Exemple de Structured Streaming et de pipelines MLlib Apache Spark.

Inférence avec les modèles Deep Learning

Pour obtenir des informations et des exemples en matière d’inférence avec les modèles Deep Learning sur Azure Databricks, consultez les articles suivants :

Inférence avec des modèles MLlib et XGBoost4J

Pour l’inférence de modèle scalable avec les modèles MLlib et XGBoost4J, utilisez les méthodes transform natives afin d’effectuer l’inférence directement sur les DataFrames Spark. Les exemples de notebooks MLlib incluent des étapes d’inférence.

Personnaliser et optimiser l’inférence de modèles

Quand vous utilisez les API MLflow pour exécuter une inférence sur des DataFrames Spark, vous pouvez charger le modèle en tant que fonction UDF Spark et l’appliquer à grande échelle par traitement informatique distribué.

Vous pouvez personnaliser votre modèle pour ajouter un prétraitement ou un post-traitement et optimiser les performances de calcul des modèles volumineux. Une bonne option pour personnaliser des modèles consiste à utiliser l’API pyfunc MLflow, qui vous permet de wrapper un modèle avec une logique personnalisée.

Si vous avez besoin d’une personnalisation plus poussée, vous pouvez wrapper manuellement votre modèle Machine Learning dans une fonction UDF Pandas ou une fonction UDF pandas Iterator. Consultez les exemples de Deep Learning.

Pour les jeux de données plus petits, vous pouvez également utiliser les routines d’inférence de modèles natifs fournies par la bibliothèque.