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.
- Dans le registre de modèles MLflow, vous pouvez générer automatiquement un notebook pour une inférence par lots ou en streaming via Delta Live Tables.
- Dans la page Exécution de MLflow de votre modèle, vous pouvez copier l’extrait de code généré pour l’inférence sur des DataFrames pandas ou Apache Spark.
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 :
- Workflow d’inférence de modèle de Deep Learning
- Guide du réglage des performances de l’inférence de modèle de Deep Learning
- Solutions de référence
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.