Aller au contenu principal

Créer des Endpoint de service de modèle personnalisés

Cet article décrit comment créer des endpoints de Model Serving qui servent des modèles personnalisés à l'aide de Databricks Model Serving.

Model Serving propose les options suivantes pour la création d'endpoints de service :

  • L'Interface utilisateur de déploiement
  • API REST
  • SDK de déploiements MLflow

Pour créer des Endpoint qui servent des modèles d'IA générative, consultez Créer des Endpoint de service de modèle de fondation.

Exigences

Python
import mlflow.deployments

client = mlflow.deployments.get_deploy_client("databricks")

Identité et accès

Pour créer ou mettre à jour un endpoint de service de modèle, l'appelant et le créateur enregistré de l'endpoint doivent tous deux :

  • Soyez membre du workspace.
  • Détenez le droit workspace-access.

Identité du créateur

Lorsque vous créez un Endpoint, Databricks enregistre l'identité de l'appelant en tant que créateur de l'Endpoint. Cette identité — généralement un Service Principal — est utilisée pour accéder aux Ressources Unity Catalog au nom de l'Endpoint et ne peut pas être modifiée après la création.

Si le créateur enregistré ne dispose pas des autorisations Unity Catalog requises ou a été supprimé du workspace, vous devez supprimer l'endpoint et le recréer sous un service principal qui dispose des autorisations requises et est un membre actuel du workspace.

Les mises à jour de la configuration et des entités servies réévaluent l'appartenance au workspace du créateur enregistré et les autorisations. Les mises à jour échouent avec PERMISSION_DENIED si le créateur enregistré n'est plus un membre du workspace, même lorsque l'appelant dispose d'autorisations valides.

Autorisations d'entités servies

Le créateur enregistré doit détenir les autorisations suivantes sur chaque entité servie. Les autorisations validées lors de la création ou de la mise à jour de l'Endpoint entraînent l'échec de la requête avec PERMISSION_DENIED si elles sont manquantes. Les autorisations requises au moment de la query ne sont pas validées en amont — les autorisations manquantes entraînent des erreurs d’exécution lorsque l’Endpoint sert le trafic.

Type de ressource

Octroi requis

Lorsque validé

Modèle Unity Catalog

USE CATALOG sur le catalogue, USE SCHEMA sur le schéma, EXECUTE sur le modèle

Création ou mise à jour d'endpoint

Type de ressource

Octroi requis

Lorsque validé

Modèle Unity Catalog

USE CATALOG sur le catalogue, USE SCHEMA sur le schéma, EXECUTE sur le modèle

Création ou mise à jour d'endpoint

remarque

Si un modèle Unity Catalog déclare des dépendances de fonctions transitives, le créateur enregistré a également besoin de EXECUTE sur ces fonctions en amont.

Gérer l'accès aux Endpoint

Pour comprendre les options de contrôle d'accès pour les Endpoint de déploiement de modèles, consultez Gérer les autorisations sur un Endpoint de déploiement de modèles.

Créer un endpoint

Vous pouvez créer un endpoint pour le déploiement de modèles avec l'interface utilisateur de Serving .

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

  2. Cliquez sur Créer un Endpoint de service .

    Volet Model Serving dans l'interface utilisateur de Databricks

Pour les modèles dans Unity Catalog (recommandé) ou l'hérité Workspace Model Registry:

  1. Dans le champ Nom , fournissez un nom pour votre Endpoint.

    • Les noms d'Endpoint ne peuvent pas utiliser le préfixe databricks-. Ce préfixe est réservé aux Endpoints préconfigurés de Databricks.
  2. Dans la section Entités servies

    1. Cliquez dans le champ Entité pour ouvrir le formulaire Sélectionner l'entité servie .

    2. Sélectionnez **Mes modèles : Unity Catalog** ou **Mes modèles : Model Registry** selon l'endroit où votre modèle est enregistré. Le formulaire se met à jour dynamiquement en fonction de votre sélection.

    3. Sélectionnez le modèle et la version du modèle que vous souhaitez déployer.

    4. Sélectionnez le pourcentage de trafic à acheminer vers votre modèle servi.

    5. Sélectionnez la taille du compute à utiliser. Vous pouvez utiliser des computes CPU ou GPU pour vos charges de travail. Voir type de compute pour les types de charges de travail disponibles, y compris les options CPU_MEDIUM et CPU_LARGE pour les modèles qui nécessitent plus de mémoire que le type standard CPU. Pour des exemples de code GPU, consultez Types de charges de travail GPU.

    6. Sous Compute Scale-out , sélectionnez la taille de la Monter en charge de compute qui correspond au nombre de requêtes que ce modèle servi peut traiter simultanément. Ce nombre doit être approximativement égal à QPS x temps d'exécution du modèle. Pour les paramètres de compute définis par les clients, consultez les limites de service de modèle.

      1. Les tailles disponibles sont Petite pour 0 à 4 requêtes, Moyenne pour 8 à 16 requêtes et Grande pour 16 à 64 requêtes.
    7. Spécifiez si l'Endpoint doit monter en charge à zéro lorsqu'il n'est pas utilisé. La mise à l'échelle à zéro n'est pas recommandée pour les Endpoint de production, car la capacité n'est pas garantie lorsqu'elle est mise à l'échelle à zéro. Quand un Endpoint se met à l’échelle à zéro, il y a une latence additionnelle, également appelée démarrage à froid (cold start), lorsque le Endpoint monte en charge pour servir les requêtes.

    8. Sous Configuration avancée, vous pouvez :

    9. (Facultatif) Pour ajouter des entités servies supplémentaires à votre endpoint, cliquez sur Ajouter une entité servie et répétez les étapes de configuration ci-dessus. Vous pouvez déployer plusieurs modèles ou versions de modèle à partir d’un Endpoint unique et contrôler la répartition du trafic entre eux. Pour plus d’informations, consultez serve multiple models.

  3. Dans la section **Optimisation de l'itinéraire**, vous pouvez activer l'optimisation de l'itinéraire pour votre endpoint. L'optimisation de l'itinéraire est recommandée pour les endpoints avec des exigences élevées en matière de QPS et de throughput. Consultez Optimisation de l'itinéraire sur l'Endpoint de service.

  4. Dans la section AI Gateway , vous pouvez sélectionner les fonctionnalités de gouvernance à activer sur votre Endpoint. Voir la gouvernance de l'IA avec Unity AI Gateway.

  5. Cliquez sur Créer. La page Endpoints de service s'affiche avec l' état de l'endpoint de service indiqué comme Non prêt.

    Créer un Endpoint de service de modèle

Vous pouvez également :

Vous pouvez également :

Types de charges de travail GPU

Le déploiement de GPU est compatible avec les versions de package suivantes :

  • PyTorch 1.13.0 - 2.0.1
  • TensorFlow 2.5.0 - 2.13.0
  • MLflow 2.4.0 et versions supérieures

Les exemples suivants montrent comment créer des Endpoints GPU à l'aide de différentes méthodes.

Pour configurer votre endpoint pour les charges de travail GPU avec l'interface utilisateur Serving , sélectionnez le type de GPU souhaité dans la liste déroulante Type de compute lors de la création de votre endpoint. Suivez les mêmes étapes que dans Créer un endpoint, mais sélectionnez un type de charge de travail GPU au lieu de CPU.

Les types de charges de travail GPU disponibles dépendent de votre fournisseur cloud, comme résumé dans le tableau suivant.

Type de charge de travail GPU

Instance GPU

Mémoire GPU

GPU_SMALL

1xT4

16 Go

GPU_MEDIUM

1xA10G

24 Go

MULTIGPU_MEDIUM

4xA10G

96 Go

GPU_MEDIUM_8

8xA10G

192 Go

Type de charge de travail GPU

Instance GPU

Mémoire GPU

GPU_SMALL

1xT4

16 Go

GPU_MEDIUM

1xA10G

24 Go

MULTIGPU_MEDIUM

4xA10G

96 Go

GPU_MEDIUM_8

8xA10G

192 Go

Pour les Endpoint GPU, la valeur de simultanéité détermine le nombre de réplicas alloués pour servir votre modèle. Le nombre de répliques est égal à la valeur de concurrence divisée par 4. Par exemple, définir min_provisioned_concurrency sur 12 alloue 3 répliques.

Modifier un endpoint de modèle personnalisé

Après avoir activé un endpoint de modèle personnalisé, vous pouvez mettre à jour la configuration du compute comme souhaité. Cette configuration est particulièrement utile si vous avez besoin de ressources supplémentaires pour votre modèle. La taille du Workload et la configuration du compute jouent un rôle clé dans les ressources allouées pour la diffusion de votre modèle.

remarque

Les mises à jour de la configuration et des entités servies revalident l'appartenance au Workspace du créateur enregistré de l'Endpoint et les autorisations par entité servie. Confirmez qu'ils sont toujours valides avant de soumettre une mise à jour ; voir Identité et accès.

Pour éviter les échecs de mise à jour :

  • Utilisez un service principal de longue durée, détenu par votre équipe, comme créateur d'endpoint.
  • N'utilisez pas de compte d’utilisateur personnel qui pourrait être désactivé ou supprimé du workspace ultérieurement.
  • Le créateur enregistré doit rester membre de l'workspace pendant toute la durée de vie de l'endpoint.
remarque

Les mises à jour de la configuration de l'Endpoint peuvent échouer. Lorsque des défaillances surviennent, la configuration active existante demeure effective comme si la mise à jour n’avait pas eu lieu.

Vérifiez que la mise à jour a été appliquée avec succès en consultant le statut de votre Endpoint.

Tant que la nouvelle configuration n'est pas prête, l'ancienne configuration continue de servir le trafic de prédiction. Pendant qu'une mise à jour est en cours, une autre mise à jour ne peut pas être effectuée. Cependant, vous pouvez annuler une mise à jour en cours à partir de l'interface utilisateur de Serving.

Après avoir activé un endpoint de modèle, sélectionnez Modifier l’endpoint pour modifier la configuration de compute de votre endpoint.

Bouton Modifier l'endpoint

Vous pouvez modifier la plupart des aspects de la configuration de l'Endpoint, à l'exception du nom de l'Endpoint et de certaines propriétés immuables.

Vous pouvez annuler une mise à jour de configuration en cours en sélectionnant Annuler la mise à jour sur la page des détails de l'endpoint.

Notation d'un Endpoint de modèle

Pour noter votre modèle, envoyez des requêtes à l'endpoint de mise en service du modèle.

Ressources supplémentaires

Exemples de Notebooks

Les notebooks suivants incluent différents modèles enregistrés Databricks que vous pouvez utiliser pour commencer à utiliser les endpoints de service de modèles. Pour d'autres exemples, consultez Tutoriel : Déployer et query un modèle personnalisé.

Les exemples de modèles peuvent être importés dans le Workspace en suivant les instructions figurant dans Importer un Notebook. Après avoir choisi et créé un modèle à partir de l'un des exemples, enregistrez-le dans Unity Catalog, puis suivez les étapes du flux de travail de l'interface utilisateur pour le déploiement du modèle.

Entraînez et enregistrez un modèle scikit-learn pour le Notebook de service de modèle

Entraîner et enregistrer un modèle HuggingFace pour un Notebook de service de modèle