Aller au contenu principal

Gérer les Endpoint de mise en service du modèle

Cet article décrit comment gérer les Endpoint de mise en service du modèle à l'aide de l'IU **Serving** et de l'API REST. Consultez Serving Endpoint dans la référence de l'API REST.

Pour créer des Endpoints de service de modèle, utilisez l'une des options suivantes :

Obtenir l'état de l'Endpoint du modèle

Vous pouvez vérifier l'état d'un endpoint à l'aide de l'interface utilisateur Serving ou par programme à l'aide de l'API REST, du client Databricks Workspace ou du SDK MLflow Deployments.

Les statuts des Endpoint peuvent être Ready, Ready (Update failed), Not ready (Updating), Not ready (Update failed) ou Not ready (Stopped). La disponibilité fait référence à la possibilité d'interroger ou non un Endpoint. L'échec de la mise à jour indique que la dernière modification apportée à l'Endpoint n'a pas abouti. Arrêté signifie que le endpoint a été arrêté.

L'indicateur d'**état de l'Endpoint de service** en haut de la page des détails d'un Endpoint :

Vérifiez l'état de l'endpoint via l'interface utilisateur de service des détails de l'endpoint.

Vérifiez l'état de l'endpoint à l'aide de l'interface utilisateur de listage des endpoints de service.

Arrêter un Endpoint de service de modèle

Vous pouvez arrêter temporairement un endpoint de mise en service de modèle et le start ultérieurement. Lorsqu'un Endpoint est arrêté :

  • Les Ressources provisionnées pour cela sont arrêtées.
  • L'endpoint ne pourra pas répondre aux query tant qu'il ne sera pas starté à nouveau.
  • Seuls les Endpoint qui servent des modèles personnalisés et qui n’ont aucune mise à jour en cours peuvent être arrêtés.
  • Les Endpoint arrêtés ne sont pas comptabilisés dans le quota de Ressources.
  • Les requêtes envoyées à un endpoint arrêté renvoient une erreur 400.

Arrêter un Endpoint

Cliquez sur Arrêter en haut à droite.

Arrêtez un endpoint de mise en service du modèle à l'aide de l'interface utilisateur de service.

Start un endpoint

Le démarrage d'un Endpoint crée une nouvelle version de configuration avec les mêmes propriétés que la configuration arrêtée existante.

Lorsque vous êtes prêt à start un endpoint de mise en service de modèle arrêté :

Cliquez sur Start dans le coin supérieur droit.

start un Endpoint de service de modèle à l'aide de l'interface utilisateur de service.

Supprimer un Endpoint de mise en service de modèle

La suppression d'un endpoint désactive l'utilisation et supprime toutes les données associées à l'endpoint. Vous ne pouvez pas annuler la suppression.

Cliquez sur le menu kebab en haut et sélectionnez Supprimer .

Supprimer un endpoint de mise en service de modèle via l'interface utilisateur de mise en service.

Déboguer un endpoint de service de modèle

Deux types de logs sont disponibles pour aider à déboguer les problèmes liés aux endpoints :

  • Logs de build du conteneur du serveur de modèles : Générés pendant l'initialisation de l'endpoint lorsque le conteneur est créé. Ces logs capturent la phase de configuration, y compris le download du modèle, l'installation des dépendances et la configuration de l'environnement d'exécution. Utilisez ces Logs pour déboguer la raison pour laquelle un Endpoint n'a pas starté ou est bloqué pendant le déploiement.
  • Logs du serveur de modèle : Générés pendant l'exécution lorsque l'Endpoint sert activement des prédictions. Ces Logs capturent les requêtes entrantes, l'exécution de l'inférence du modèle, les erreurs d'exécution et la journalisation au niveau de l'application à partir de votre code de modèle. Utilisez ces Logs pour déboguer les problèmes avec les prévisions ou enquêter sur les échecs de query.

Les deux types de Logs sont également accessibles à partir de l’interface utilisateur de l' Endpoint, dans l’onglet **Logs**.

Obtenir les logs de construction du conteneur

Pour les logs de build d'un modèle servi, vous pouvez utiliser la requête suivante. Consultez le guide de debugging pour Model Serving pour plus d'informations.

Bash

GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/build-logs
{
"config_version": 1 // optional
}

Obtenir les logs du serveur de modèles

Pour les Logs du **serveur de modèles** d'un modèle de service, vous pouvez utiliser la requête suivante :

Bash

GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/logs

{
"config_version": 1 // optional
}

Gérez les autorisations sur un Endpoint de service de modèle

Vous devez disposer au moins de l'autorisation CAN MANAGE sur un Endpoint de service pour modifier les autorisations. Pour plus d'informations sur les niveaux d'autorisation, consultez les listes de contrôle d'accès de l'Endpoint de service.

remarque

Lorsque vous mettez à jour un Endpoint, Databricks revalide l'adhésion du créateur enregistré au Workspace et les octrois d'entités servies. Pour plus de détails, consultez Identité et accès.

Obtenez la liste des autorisations sur l'Endpoint de service.

Veuillez cliquer sur le bouton « Autorisation » en haut à droite de l'interface utilisateur.

Gérer les autorisations d'un Endpoint de service de modèle à l'aide de l'interface utilisateur de service.

Vous pouvez également modifier les autorisations d'endpoint de service à l'aide de l'API des autorisations.

Ajouter une politique d'utilisation serverless pour un endpoint de service de modèle

info

Aperçu

Cette fonctionnalité est en préversion publique et n'est pas disponible pour les Endpoint de service qui servent les modèles externes.

Les politiques d'utilisation Serverless permettent à votre organisation d'appliquer des tags personnalisés à l'utilisation Serverless pour une attribution de facturation granulaire. Si votre workspace utilise des politiques d'utilisation serverless pour attribuer l'utilisation serverless, vous pouvez ajouter une politique d'utilisation serverless à vos endpoints de service de modèle. Voir Attribution des utilisations avec les politiques d'utilisation serverless.

Lors de la création d'un Endpoint de déploiement de modèles, vous pouvez sélectionner la politique d'utilisation serverless de votre Endpoint dans le menu Politique d'utilisation de l'interface utilisateur de déploiement. Si vous disposez d'une politique d'utilisation serverless qui vous est attribuée, tous les Endpoints que vous créez se voient attribuer cette politique d'utilisation serverless, même si vous ne sélectionnez pas de politique dans le menu Politique d'utilisation.

Ajoutez une politique d'utilisation serverless lors de la création d'un Endpoint de service de modèle à l'aide de l'interface utilisateur de service.

Si vous disposez des MANAGE autorisations pour un endpoint existant, vous pouvez modifier et ajouter une politique d'utilisation serverless à cet endpoint depuis la page **Détails de l'Endpoint** dans l'interface utilisateur.

Modifiez la politique d'utilisation Serverless sur un Endpoint de déploiement de modèle existant à l'aide de l'interface utilisateur de déploiement.

remarque

Si une politique d'utilisation Serverless vous a été attribuée, vos Endpoints existants ne sont pas automatiquement tagués avec votre politique. Vous devez mettre à jour manuellement les endpoints existants si vous souhaitez leur attacher une politique d'utilisation Serverless.

Obtenir le schéma d'un Endpoint de service de modèle

info

Aperçu

La prise en charge pour le service de schémas de query d'Endpoint est en Aperçu public. Cette fonctionnalité est disponible dans les régions Model Serving.

Un schéma de query d'endpoint de service est une description formelle de l'endpoint de service utilisant la spécification OpenAPI standard au format JSON. Il contient des informations sur l'endpoint, y compris le chemin de l'endpoint, les détails pour interroger l'endpoint, tels que le format du corps de la requête et de la réponse, et le type de données pour chaque champ. Ces informations peuvent être utiles pour les scénarios de reproductibilité ou lorsque vous avez besoin d'informations sur l'endpoint, mais que vous n'êtes pas le créateur ou le propriétaire d'origine de l'endpoint.

Pour obtenir le schéma de l'endpoint de mise en service du modèle, le modèle servi doit avoir une signature de modèle journalisée et l'endpoint doit être dans un état READY.

Les exemples suivants montrent comment obtenir par programmation le schéma d'Endpoint de service de modèle à l'aide de l'API REST. Pour les schémas d'endpoint de Feature Serving, consultez Endpoints de Feature Serving.

Le schéma renvoyé par l'API est au format d'un objet JSON qui suit la spécification OpenAPI.

Bash

ACCESS_TOKEN="<endpoint-token>"
ENDPOINT_NAME="<endpoint name>"

curl "https://example.databricks.com/api/2.0/serving-endpoints/$ENDPOINT_NAME/openapi" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json"

Détails de la réponse de schéma

La réponse est une spécification OpenAPI au format JSON, comprenant généralement des champs tels que openapi, info, servers et paths. Puisque la réponse du schéma est un objet JSON, vous pouvez l'analyser en utilisant des langages de programmation courants et générer du code client à partir de la spécification en utilisant des outils tiers. Vous pouvez également visualiser la spécification OpenAPI en utilisant des outils tiers tels que Swagger Editor.

Les principaux champs de la réponse incluent :

  • Le champ info.title affiche le nom de l'endpoint de service.
  • Le champ servers contient toujours un objet, généralement le champ url qui est l'URL de base de l'endpoint.
  • L'objet paths dans la réponse contient tous les chemins pris en charge pour un endpoint. Les clés dans l'objet sont l'URL du chemin. Chaque path peut prendre en charge plusieurs formats d'entrée. Ces entrées sont listées dans le champ oneOf.

Voici un exemple de réponse de schéma d'endpoint :

JSON
{
"openapi": "3.1.0",
"info": {
"title": "example-endpoint",
"version": "2"
},
"servers": [{ "url": "https://example.databricks.com/serving-endpoints/example-endpoint" }],
"paths": {
"/served-models/vanilla_simple_model-2/invocations": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "object",
"properties": {
"dataframe_split": {
"type": "object",
"properties": {
"columns": {
"description": "required fields: int_col",
"type": "array",
"items": {
"type": "string",
"enum": ["int_col", "float_col", "string_col"]
}
},
"data": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "integer",
"format": "int64"
},
{
"type": "number",
"format": "double"
},
{
"type": "string"
}
]
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
},
"examples": [
{
"columns": ["int_col", "float_col", "string_col"],
"data": [
[3, 10.4, "abc"],
[2, 20.4, "xyz"]
]
}
]
},
{
"type": "object",
"properties": {
"dataframe_records": {
"type": "array",
"items": {
"required": ["int_col", "float_col", "string_col"],
"type": "object",
"properties": {
"int_col": {
"type": "integer",
"format": "int64"
},
"float_col": {
"type": "number",
"format": "double"
},
"string_col": {
"type": "string"
},
"becx_col": {
"type": "object",
"format": "unknown"
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
}
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"predictions": {
"type": "array",
"items": {
"type": "number",
"format": "double"
}
}
}
}
}
}
}
}
}
}
}
}