Migrer vers la mise en service de modèles

Cet article montre comment activer Model Serving sur votre espace de travail et basculer vos modèles vers la nouvelle expérience Model Serving basée sur le calcul serverless.

Spécifications

Modifications importantes

  • Dans Model Serving, le format de la requête au point de terminaison et la réponse du point de terminaison sont légèrement différents du Model Serving MLflow hérité. Consultez Scoring d’un point de terminaison de modèle pour plus d’informations sur le nouveau protocole de format.
  • Dans Model Serving, l’URL du point de terminaison inclut serving-endpoints au lieu de model.
  • Model Serving inclut une prise en charge complète de la gestion des ressources avec des flux de travail d’API.
  • Model Serving est prêt pour la production et soutenu par le SLA Azure Databricks.

Migrer les modèles servis du Model Serving MLflow hérité vers Model Serving

Vous pouvez créer un point de terminaison Model Serving et effectuer une transition flexible des flux de travail de service de modèle sans désactiver le Model Serving MLflow hérité.

Les étapes suivantes montrent comment effectuer cette opération avec l’interface utilisateur. Pour chaque modèle sur lequel le Model Serving MLflow hérité est activé :

  1. Accédez à Points de terminaison de service dans la barre latérale de votre espace de travail Machine Learning.
  2. Suivez la procédure décrite dans Créer et configurer des points de terminaison de mise en service de modèles pour créer un point de terminaison de mise en service avec votre modèle.
  3. Effectuez la transition de votre application pour utiliser la nouvelle URL fournie par le point de terminaison de service pour interroger le modèle, ainsi que le nouveau format de scoring.
  4. Lorsque vos modèles sont transférés, vous pouvez accéder à Modèles dans la barre latérale de votre espace de travail Machine Learning.
  5. Sélectionnez le modèle pour lequel vous souhaitez désactiver la mise en servie de modèles MLflow héritée.
  6. Sous l’onglet Serving (Mise en service), sélectionnez Stop (Arrêter).
  7. Un message de confirmation s’affiche. Sélectionnez Stop Serving (Arrêter la mise en service).

Migrer des versions de modèle déployées vers Model Serving

Dans les versions précédentes de la fonctionnalité Model Serving, le point de terminaison de service a été créé en fonction de l’étape de la version de modèle inscrite : Staging ou Production. Pour migrer vos modèles servis à partir de cette expérience, vous pouvez répliquer ce comportement dans la nouvelle expérience Model Serving.

Cette section montre comment créer des points de terminaison de service de modèle distincts pour les versions de modèles Staging et Production. Les étapes suivantes montrent comment effectuer cette opération avec l’API de points de terminaison de service pour chacun de vos modèles servis.

Dans l’exemple, le nom du modèle inscrit modelA a la version 1 dans l’étape du modèle Production et la version 2 dans l’étape du modèle Staging.

  1. Créez deux points de terminaison pour votre modèle inscrit, un pour les versions de modèle Staging et un autre pour les versions de modèle Production.

    Pour les versions des modèles Staging :

    POST /api/2.0/serving-endpoints
      {
         "name":"modelA-Staging"
         "config":{
            "served_entities":[
               {
                  "entity_name":"model-A",
                  "entity_version":"2",  // Staging Model Version
                  "workload_size":"Small",
                  "scale_to_zero_enabled":true
               },
            ],
         },
      }
    

    Pour les versions des modèles Production :

    POST /api/2.0/serving-endpoints
      {
         "name":"modelA-Production"
         "config":{
            "served_entities":[
               {
                  "entity_name":"model-A",
                  "entity_version":"1",   // Production Model Version
                  "workload_size":"Small",
                  "scale_to_zero_enabled":true
               },
            ],
         },
      }
    
  2. Vérifiez l’état des points de terminaison.

    Pour le point de terminaison de mise en lots : GET /api/2.0/serving-endpoints/modelA-Staging

    Pour le point de terminaison de production : GET /api/2.0/serving-endpoints/modelA-Production

  3. Une fois les points de terminaison prêts, interrogez le point de terminaison à l’aide de :

    Pour le point de terminaison de mise en lots : POST /serving-endpoints/modelA-Staging/invocations

    Pour le point de terminaison de production : POST /serving-endpoints/modelA-Production/invocations

  4. Mettez à jour le point de terminaison en fonction des transitions de version du modèle.

    Dans le scénario où un nouveau modèle version 3 est créé, vous pouvez faire passer le modèle version 2 à Production, tandis que la version 3 du modèle peut passer à Staging et la version 1 du modèle est Archived. Ces modifications peuvent être reflétées dans des points de terminaison de service de modèle distincts comme suit :

    Pour le point de terminaison Staging, mettez à jour le point de terminaison pour utiliser la nouvelle version du modèle dans Staging.

    PUT /api/2.0/serving-endpoints/modelA-Staging/config
    {
       "served_entities":[
          {
             "entity_name":"model-A",
             "entity_version":"3",  // New Staging model version
             "workload_size":"Small",
             "scale_to_zero_enabled":true
          },
       ],
    }
    

    Pour le point de terminaison Production, mettez à jour le point de terminaison pour utiliser la nouvelle version du modèle dans Production.

    PUT /api/2.0/serving-endpoints/modelA-Production/config
    {
       "served_entities":[
          {
             "entity_name":"model-A",
             "entity_version":"2",  // New Production model version
             "workload_size":"Small",
             "scale_to_zero_enabled":true
          },
       ],
    }
    

Migrer des workflows d’inférence MosaicML vers le service de modèles

Cette section fournit des conseils sur la migration de vos déploiements d’inférence MosaicML vers le service de modèles Databricks et comprend un exemple de notebook.

Le tableau suivant récapitule la parité entre l’inférence MosaicML et le service de modèles sur Azure Databricks.

Inférence MosaicML Service de modèles Databricks
create_inference_deployment Créer un point de terminaison de service de modèles
update_inference_deployment Mettre à jour un point de terminaison de service de modèles
delete_inference_deployment Supprimer un point de terminaison de service de modèles
get_inference_deployment Obtenir l’état d’un point de terminaison de service de modèles

Le notebook suivant fournit un exemple guidé de migration d’un modèle llama-13b de MosaicML vers le service de modèles Databricks.

Notebook Migrer de l’inférence MosaicML vers le service de modèles Databricks

Obtenir le notebook

Ressources supplémentaires