Activez les tables d'inférence sur les Endpoint de Model Serving en utilisant l'API.
Cette documentation a été retirée et pourrait ne pas être mise à jour. Les produits, services ou technologies mentionnés dans ce contenu ne sont plus pris en charge.
Databricks recommande les tables d’inférence compatibles avec AI Gateway pour leur disponibilité sur les endpoints de service de modèle personnalisé, de modèle de fondation et d’agent. Pour obtenir des instructions sur la migration vers les tables d’inférence compatibles avec AI Gateway, consultez la page Migration vers les tables d’inférence AI Gateway.
Cet article explique comment utiliser l’API Databricks pour activer les tables d'inférence pour un endpoint de Model Serving. Pour des informations générales sur l'utilisation des tables d'inférence, y compris comment les activer à l'aide de l'interface utilisateur Databricks, consultez Les tableaux d'inférence pour le monitoring et le debugging des modèles.
Vous pouvez activer les tables d'inférence lorsque vous créez un nouvel Endpoint ou sur un Endpoint existant. Databricks vous recommande de créer l'Endpoint avec un Service Principal afin que la table d'inférence ne soit pas affectée si l'utilisateur qui a créé l'Endpoint est supprimé du Workspace.
Le propriétaire des tables d’inférence est l’utilisateur qui a créé l’endpoint. Toutes les listes de contrôle d’accès (ACL) sur la table suivent les autorisations standard de Unity Catalog et peuvent être modifiées par le propriétaire de la table.
Exigences
- Votre workspace doit être compatible avec Unity Catalog.
- Le créateur de l'endpoint et le modificateur doivent tous deux disposer de l'autorisation **Peut gérer** sur l'endpoint. Consultez les listes de contrôle d'accès.
- Le créateur de l'endpoint et le modificateur doivent disposer des autorisations suivantes dans Unity Catalog :
USE CATALOGles autorisations sur le catalogue spécifié.USE SCHEMAautorisations sur le schéma spécifié.CREATE TABLEautorisations dans le schéma.
Activez les tables d'inférence lors de la création d'un Endpoint à l'aide de l'API
Vous pouvez activer les tables d'inférence pour un Endpoint lors de sa création en utilisant l'API. Pour obtenir des instructions sur la création d'un Endpoint, consultez Créer des Endpoints de service de modèle personnalisés.
Dans l'API, le corps de la requête a un auto_capture_config à spécifier :
- Le catalogue Unity Catalog : chaîne représentant le catalogue pour stocker la table
- Le schéma Unity Catalog : chaîne représentant le schéma pour stocker la table
- (facultatif) préfixe de table : chaîne utilisée comme préfixe pour le nom de la table d'inférence. Si ce n'est pas spécifié, le nom de l'Endpoint est utilisé.
- (facultatif) enabled : valeur booléenne utilisée pour activer ou désactiver les tables d'inférence. Ceci est vrai par default.
Après avoir spécifié un catalogue, un schéma et éventuellement un préfixe de table, une table est créée à <catalog>.<schema>.<table_prefix>_payload. Cette table crée automatiquement une table gérée par Unity Catalog. Le propriétaire de la table est l'utilisateur qui crée l'Endpoint.
La spécification d'une table existante n'est pas prise en charge, car la table d'inférence est toujours automatiquement créée lors de la création ou de la mise à jour d'un endpoint.
Le tableau d'inférence pourrait être corrompu si vous effectuez l'une des opérations suivantes :
- Modifiez le schéma de la table.
- Modifier le nom de la table.
- Supprimer la table.
- Perdre les autorisations sur le catalogue Unity Catalog ou le schéma.
Dans ce cas, le auto_capture_config du statut de l'endpoint indique un état FAILED pour la table de charge utile. Si cela se produit, vous devez créer un nouvel endpoint pour continuer à utiliser les tables d'inférence.
L'exemple suivant montre comment activer les tables d'inférence lors de la création d'un endpoint.
POST /api/2.0/serving-endpoints
{
"name": "feed-ads",
"config":
{
"served_entities": [
{
"entity_name": "ads1",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"auto_capture_config":
{
"catalog_name": "ml",
"schema_name": "ads",
"table_name_prefix": "feed-ads-prod"
}
}
}
La réponse ressemble à :
{
"name": "feed-ads",
"creator": "customer@example.com",
"creation_timestamp": 1666829055000,
"last_updated_timestamp": 1666829055000,
"state": {
"ready": "NOT_READY",
"config_update": "IN_PROGRESS"
},
"pending_config": {
"start_time": 1666718879000,
"served_entities": [
{
"name": "ads1-1",
"entity_name": "ads1",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": true,
"state": {
"deployment": "DEPLOYMENT_CREATING",
"deployment_state_message": "Creating"
},
"creator": "customer@example.com",
"creation_timestamp": 1666829055000
}
],
"config_version": 1,
"traffic_config": {
"routes": [
{
"served_model_name": "ads1-1",
"traffic_percentage": 100
}
]
},
"auto_capture_config": {
"catalog_name": "ml",
"schema_name": "ads",
"table_name_prefix": "feed-ads-prod",
"state": {
"payload_table": {
"name": "feed-ads-prod_payload"
}
},
"enabled": true
}
},
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"permission_level": "CAN_MANAGE"
}
Une fois l'enregistrement dans les tables d'inférence activé, attendez que votre endpoint soit prêt. Ensuite, vous pouvez start à l'appeler.
Après avoir créé une table d'inférence, l'évolution des schémas et l'ajout de données doivent être gérés par le système.
Les Opérations suivantes n'affectent pas l'intégrité de la table :
- Exécution de OPTIMIZE, ANALYZE et VACUUM sur la table.
- Suppression des anciennes données inutilisées.
Si vous ne spécifiez pas de auto_capture_config, par default la configuration des paramètres de la version de configuration précédente est réutilisée. Par exemple, si les tables d'inférence étaient déjà activées, les mêmes paramètres sont utilisés lors de la prochaine mise à jour de l'Endpoint, ou si les tables d'inférence étaient désactivées, elles restent désactivées.
{
"served_entities": [
{
"name": "current",
"entity_name": "model-A",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"auto_capture_config": {
"enabled": false
}
}
Activer les tables d'inférence sur un Endpoint existant à l'aide de l'API
Vous pouvez également activer les tables d'inférence sur un Endpoint existant en utilisant l'API. Une fois les tables d'inférence activées, continuez à spécifier le même corps auto_capture_config dans les futurs appels d'API d'endpoint de mise à jour pour continuer à utiliser les tables d'inférence.
La modification de l'emplacement de la table après l'activation des tables d'inférence n'est pas prise en charge.
PUT /api/2.0/serving-endpoints/{name}/config
{
"served_entities": [
{
"name":"current",
"entity_name":"model-A",
"entity_version":"1",
"workload_size":"Small",
"scale_to_zero_enabled":true
},
{
"name":"challenger",
"entity_name":"model-B",
"entity_version":"1",
"workload_size":"Small",
"scale_to_zero_enabled":true
}
],
"traffic_config":{
"routes": [
{
"served_model_name":"current",
"traffic_percentage":"50"
},
{
"served_model_name":"challenger",
"traffic_percentage":"50"
}
]
},
"auto_capture_config":{
"catalog_name": "catalog",
"schema_name": "schema",
"table_name_prefix": "my-endpoint"
}
}
Désactiver les tables d'inférence
Lorsque vous désactivez les tables d'inférence, vous n'avez pas besoin de spécifier le catalogue, le schéma ou le préfixe de table. Le seul champ obligatoire est enabled: false.
POST /api/2.0/serving-endpoints
{
"name": "feed-ads",
"config":{
"served_entities": [
{
"entity_name": "ads1",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"auto_capture_config":{
"enabled": false
}
}
}
Pour réactiver une table d'inférence désactivée, suivez les instructions dans Activer les tables d'inférence sur un endpoint existant. Vous pouvez utiliser soit la même table, soit spécifier une nouvelle table.
Étapes suivantes
Après avoir activé les tables d'inférence, vous pouvez effectuer le monitoring des modèles servis dans votre Endpoint de service de modèle grâce au profilage des données. Pour plus de détails, consultez Workflow : Surveiller les performances du modèle à l'aide de tables d'inférence.