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 Machine Learning traditionnel) installé dans Unity Catalog ou inscrit dans le Registre de modèles de l’espace de travail au moyen d’une mise en service de modèles Azure Databricks.

Les guides suivants décrivent la mise en service et le déploiement d’un modèle de fondation pour l’IA générative et d’un LLM :

Étape 1 : Journaliser le modèle dans le registre de modèles

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 journalisé, pensez à vérifier qu’il est inscrit auprès de MLflow Unity Catalog ou Model Registry.

É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.

  1. Cliquez sur Mise en service dans la barre latérale pour afficher l’interface utilisateur de Mise en service.

  2. Cliquez sur Créer un point de terminaison de mise en service.

    Volet de mise en service de modèles dans l’IU Databricks

  3. Dans le champ Nom, indiquez un nom pour votre point de terminaison.

  4. Dans la section Entités servies

    1. Cliquez sur le champ Entités pour ouvrir le formulaire Sélectionner une entité servie.
    2. Sélectionnez le modèle que vous souhaitez servir. Le formulaire est mis à jour dynamiquement en fonction de votre sélection.
    3. Sélectionnez le modèle et la version du modèle que vous souhaitez servir.
    4. Sélectionnez le pourcentage de trafic à router vers votre modèle servi.
    5. Sélectionnez la taille de calcul à utiliser. Vous pouvez utiliser des calculs processeur ou GPU pour vos charges de travail. La prise en charge de la mise en service de modèle sur GPU est en préversion publique. Pour plus d’informations sur les calculs GPU disponibles, consultez Types de charges de travail GPU.
    6. 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.
      1. Les tailles disponibles sont Petit pour 0-4 demandes, Moyen pour 8-16 demandes et Large pour 16-64 demandes.
    7. Spécifiez si le point de terminaison doit être mis à l’échelle à zéro lorsqu’il n’est pas utilisé.
  5. 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.

    Créer un point de terminaison de mise en service de modèles

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.

  1. Dans la page Point de terminaison de service, sélectionnez Interroger le point de terminaison.

  2. 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

Obtenir le notebook

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.

Déployer un notebook de modèle MLflow pyfunc

Obtenir le notebook