Tutoriel : Déployer et interroger un modèle personnalisé
Cet article décrit les étapes de base pour déployer et interroger un modèle personnalisé, qui est un modèle ML traditionnel au moyen du service de modèle Mosaic AI. Le modèle doit être inscrit dans le catalogue Unity Catalog ou le Registre de modèles de l’espace de travail.
Pour en savoir plus sur le service et le déploiement de modèles d’IA générative à la place, consultez les articles suivants :
Étape 1 : Journaliser le modèle
Il existe différentes façons de journaliser votre modèle pour la mise en service de modèle :
Technique de journalisation | Description |
---|---|
Journalisation automatique | Cette option est automatiquement activée quand vous utilisez Databricks Runtime pour le Machine Learning. Cette option est la plus simple, mais elle offre moins de contrôle. |
Journalisation à l’aide des saveurs intégrées de MLflow | Vous pouvez journaliser manuellement le modèle avec les saveurs de modèle intégrées de MLflow. |
Journalisation personnalisée avec pyfunc |
Utilisez cette option si vous avez un modèle personnalisé ou si vous avez besoin d’étapes supplémentaires avant ou après l’inférence. |
L’exemple suivant montre comment journaliser votre modèle MLflow à l’aide de la saveur transformer
et comment spécifier les paramètres dont vous avez besoin pour votre modèle.
with mlflow.start_run():
model_info = mlflow.transformers.log_model(
transformers_model=text_generation_pipeline,
artifact_path="my_sentence_generator",
inference_config=inference_config,
registered_model_name='gpt2',
input_example=input_example,
signature=signature
)
Une fois votre modèle enregistré, veillez à vérifier que votre modèle est inscrit dans le catalogue Unity ou dans le registre de modèles MLflow.
Étape 2 : Créer un point de terminaison à l’aide de l’interface utilisateur de mise en service
Une fois que votre modèle inscrit est journalisé et que vous êtes prêt à le servir, vous pouvez créer un point de terminaison de mise en service de modèle à l’aide de l’interface utilisateur de Mise en service.
Cliquez sur Mise en service dans la barre latérale pour afficher l’interface utilisateur de Mise en service.
Cliquez sur Créer un point de terminaison de mise en service.
Dans le champ Nom, indiquez un nom pour votre point de terminaison.
Dans la section Entités servies
- Cliquez sur le champ Entités pour ouvrir le formulaire Sélectionner une entité servie.
- Sélectionnez le modèle que vous souhaitez servir. Le formulaire est mis à jour dynamiquement en fonction de votre sélection.
- Sélectionnez le modèle et la version du modèle que vous souhaitez servir.
- Sélectionnez le pourcentage de trafic à router vers votre modèle servi.
- Sélectionnez la taille de calcul à utiliser.
- Sous Scale-out de calcul, sélectionnez la taille du scale-out de calcul qui correspond au nombre de requêtes que ce modèle servi peut traiter en même temps. Ce nombre doit être à peu près égal au temps d’exécution du modèle QPS x.
- Les tailles disponibles sont Petit pour 0-4 demandes, Moyen pour 8-16 demandes et Large pour 16-64 demandes.
- Spécifiez si le point de terminaison doit être mis à l’échelle à zéro lorsqu’il n’est pas utilisé.
Cliquez sur Créer. La page Points de terminaison de mise en service s’affiche avec l’état du point de terminaison de mise en service indiqué comme Non prêt.
Si vous préférez créer un point de terminaison par programmation avec l’API de mise en service de Databricks, consultez Créer un modèle personnalisé servant des points de terminaison.
Étape 3 : Interroger le point de terminaison
Le moyen le plus simple et le plus rapide de tester et d’envoyer des requêtes de scoring à votre modèle servi consiste à utiliser l’interface utilisateur de Mise en service.
Dans la page Point de terminaison de service, sélectionnez Interroger le point de terminaison.
Insérez les données d’entrée du modèle au format JSON, puis cliquer sur Envoyer la requête. Si le modèle a été journalisé avec un exemple d’entrée, cliquez sur Afficher l’exemple pour charger l’exemple d’entrée.
{ "inputs" : ["Hello, I'm a language model,"], "params" : {"max_new_tokens": 10, "temperature": 1} }
Pour envoyer des demandes de notation, construisez un JSON avec l’une des clés prises en charge et un objet JSON correspondant au format d’entrée. Pour connaître les formats pris en charge et obtenir une aide sur la manière d’envoyer des demandes de notation à l’aide de l’API, consultez Interroger des points de terminaison de mise en service pour des modèles personnalisés.
Si vous prévoyez d’accéder à votre point de terminaison de service en dehors de l’interface utilisateur Azure Databricks Serving, vous avez besoin d’un fichier DATABRICKS_API_TOKEN
.
Important
À titre de meilleure pratique de sécurité pour les scénarios de production, Databricks vous recommande d’utiliser des jetons OAuth machine à machine pour l’authentification en production.
Pour les tests et le développement, Databricks recommande d’utiliser un jeton d’accès personnel appartenant à des principaux de service et non pas à des utilisateurs de l’espace de travail. Pour créer des jetons d’accès pour des principaux de service, consultez la section Gérer les jetons pour un principal de service.
Exemples de notebooks
Consultez le notebook suivant pour servir un modèle MLflow transformers
avec la mise en service de modèle.
Déployer un notebook de modèle Hugging Face transformers
Consultez le notebook suivant pour servir un modèle MLflow pyfunc
avec la mise en service de modèle. Pour plus d’informations sur la personnalisation de vos modèles de déploiement, consultez Déployer du code Python avec le service de modèles.