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 :
- Créer des endpoints de service de modèle personnalisés.
- Créer des Endpoint de service de modèle de fondation.
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é.
- UI
- REST API
- Databricks Workspace Client
- MLflow Deployments SDK
L'indicateur d'**état de l'Endpoint de service** en haut de la page des détails d'un Endpoint :


GET /api/2.0/serving-endpoints/{name}
Dans la réponse d'exemple suivante, le champ state.ready est « READY », ce qui signifie que l'endpoint est prêt à recevoir du trafic. Le champ state.update_state est NOT_UPDATING et pending_config n’est plus renvoyé, car la mise à jour s’est terminée avec succès.
{
"name": "unity-model-endpoint",
"creator": "customer@example.com",
"creation_timestamp": 1666829055000,
"last_updated_timestamp": 1666829055000,
"state": {
"ready": "READY",
"update_state": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "my-ads-model",
"entity_name": "myCatalog.mySchema.my-ads-model",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": false,
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "customer@example.com",
"creation_timestamp": 1666829055000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"permission_level": "CAN_MANAGE"
}
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
endpoint = w.serving_endpoints.get(name="my-endpoint")
print(f"Endpoint state: {endpoint.state.ready}")
print(f"Update state: {endpoint.state.config_update}")
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.get_endpoint(endpoint="my-endpoint")
print(f"Endpoint state: {endpoint['state']}")
print(f"Endpoint config: {endpoint['config']}")
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
- UI
- REST API
Cliquez sur Arrêter en haut à droite.

POST /api/2.0/serving-endpoints/{name}/config:stop
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é :
- UI
- REST API
Cliquez sur Start dans le coin supérieur droit.

POST /api/2.0/serving-endpoints/{name}/config:start
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.
- UI
- REST API
- MLflow Deployments SDK
Cliquez sur le menu kebab en haut et sélectionnez Supprimer .

DELETE /api/2.0/serving-endpoints/{name}
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
client.delete_endpoint(endpoint="chat")
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.
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 :
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.
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.
- UI
- Databricks CLI
Veuillez cliquer sur le bouton « Autorisation » en haut à droite de l'interface utilisateur.

databricks permissions get serving-endpoints <endpoint-id>
Accorder à l'utilisateur jsmith@example.com l'autorisation CAN QUERY sur l'endpoint de diffusion.
databricks permissions update serving-endpoints <endpoint-id> --json '{
"access_control_list": [
{
"user_name": "jsmith@example.com",
"permission_level": "CAN_QUERY"
}
]
}'
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
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.

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.

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
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.
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.titleaffiche le nom de l'endpoint de service. - Le champ
serverscontient toujours un objet, généralement le champurlqui est l'URL de base de l'endpoint. - L'objet
pathsdans la réponse contient tous les chemins pris en charge pour un endpoint. Les clés dans l'objet sont l'URL du chemin. Chaquepathpeut prendre en charge plusieurs formats d'entrée. Ces entrées sont listées dans le champoneOf.
Voici un exemple de réponse de schéma d'endpoint :
{
"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"
}
}
}
}
}
}
}
}
}
}
}
}