Aller au contenu principal

Surveiller les services de modèle à l’aide de tables d’inférence

info

Bêta

Cette fonctionnalité est en Bêta. Les administrateurs de compte peuvent contrôler l'accès à cette fonctionnalité depuis la page Aperçus de la console de compte. Consultez Gérer les aperçus Databricks.

Cette page décrit comment utiliser les tables d’inférence pour surveiller les services de modèles Unity AI Gateway.

Que sont les tables d'inférence Unity AI Gateway ?

Les tables d'inférence de Unity AI Gateway loguent les requêtes et les réponses de vos services de modèle vers les tables Delta de Unity Catalog. Vous pouvez utiliser ces données pour le monitoring, le debugging et l'optimisation de vos modèles.

Quelques cas d’usage courants :

  • **Debugging** : analysez les charges utiles des requêtes et des réponses pour résoudre les problèmes.
  • Monitoring : suivez les performances du modèle et identifiez les anomalies.
  • Optimisation : examinez les interactions pour améliorer les prompts et les configurations des modèles.
  • Conformité : Maintenez les Logs d'audit de toutes les interactions de modèle.

Exigences

  • L'aperçu Unity AI Gateway est activé pour votre compte. Consultez Gérer les aperçus Databricks.

  • Un Databricks workspace dans une région prise en charge par Unity AI Gateway.

  • Unity Catalog activé pour votre workspace. Consultez Activer un workspace pour Unity Catalog.

  • Le privilège MANAGE sur le service de modèle. Le créateur et le modificateur du service de modèle doivent disposer de ce privilège.

  • Le privilège CREATE TABLE dans le catalogue et le schéma Unity Catalog spécifiés.

  • Le privilège USE CATALOG sur le catalogue spécifié.

  • Le privilège USE SCHEMA sur le schéma spécifié.

  • Le catalogue ne peut pas être un catalogue OpenSharing vers le métastore actuel.

  • Databricks recommande d'activer l'optimisation prédictive pour des performances améliorées.

Activer les tables d'inférence

Les tables d'inférence ne peuvent être configurées qu'après avoir créé un service de modèle.

Pour activer les tables d'inférence :

  1. Dans la barre latérale, cliquez sur Passerelle IA .
  2. Cliquez sur le nom du service de modèle pour ouvrir la page du service de modèle.
  3. Cliquez sur **Configurer** à côté de **Tables d’inférence**.
  4. Spécifiez le catalogue et le schéma où vous souhaitez stocker la table d'inférence.
  5. Cliquez sur Enregistrer .

Le propriétaire de la table d'inférence est l'utilisateur qui a créé le service de modèle. Tous les ACL suivent les autorisations standard de Unity Catalog et peuvent être modifiés par le propriétaire de la table.

remarque

La spécification d'une table existante n'est pas prise en charge. Databricks crée automatiquement une nouvelle table d'inférence lorsque vous activez les tables d'inférence.

attention

La table d'inférence pourrait cesser d'enregistrer des données ou être corrompue 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.

Désactiver les tables d'inférence

Pour désactiver les tables d'inférence :

  1. Dans la barre latérale, cliquez sur Passerelle IA .
  2. Cliquez sur le nom du service de modèle pour ouvrir la page du service de modèle.
  3. Cliquez sur l'icône de modification à côté de Tables d'inférence .
  4. Cliquez sur **Désactiver les tables d'inférence**.

Interroger la table d’inférence

Vous pouvez afficher la table dans l'interface utilisateur, ou query la table à partir de Databricks SQL ou d'un Notebook.

Pour afficher la table dans l'interface utilisateur, cliquez sur le Link de la table d'inférence sur la page du service de modèle pour ouvrir la table dans Catalog Explorer.

Pour interroger la table à partir de Databricks SQL ou d'un Notebook :

SQL
SELECT * FROM <catalog>.<schema>.<payload_table>

Remplacez <catalog>, <schema> et <payload_table> par l'emplacement de votre table.

Schéma de la table d'inférence

Les tables d'inférence de Unity AI Gateway ont le schéma suivant :

Nom de colonne

Type

Description

Exemple

request_id

CHAÎNE

Un identifiant unique pour la requête.

7a99b43cb46c432bb0a7814217701909

invocation_id

CHAÎNE

Un identifiant unique pour chaque appel d'inférence individuel. Plusieurs invocations peuvent partager le même request_id, tels que les contrôles de garde-fou ou les appels d'agent multi-tours. Utilisez invocation_id pour les distinguer.

c0a8012e-9f3b-4d21-8a7e-1b2c3d4e5f60

request_tags

Carte

Balises associées à la requête.

{"team": "engineering"}

event_time

Horodatage

Le Timestamp lorsque la requête a été reçue.

2024-05-17T13:47:13.282-07:00

status_code

INT

Le code de statut HTTP de la réponse.

200

sampling_fraction

Double

La fraction d'échantillonnage si le sous-échantillonnage était utilisé. Une valeur de 1 signifie qu'il n'y a pas de sous-échantillonnage.

1

latency_ms

LONG

La latence totale en millisecondes.

300

time_to_first_byte_ms

LONG

Le temps de premier octet en millisecondes.

200

request

CHAÎNE

La charge utile de la requête JSON brute.

{"messages": [...], ...}

response

CHAÎNE

La charge utile de la réponse JSON brute.

{"choices": [...], ...}

destination_type

CHAÎNE

Le type de destination (par exemple, modèle externe ou modèle de fondation).

PAY_PER_TOKEN_FOUNDATION_MODEL

destination_name

CHAÎNE

Le nom du modèle ou du fournisseur de destination.

databricks-gpt-5-2

destination_model

CHAÎNE

Le modèle spécifique utilisé pour la requête.

GPT-5.2

logging_error_codes

TABLEAU

Codes d'erreur si l'enregistrement a échoué (par exemple, MAX_REQUEST_SIZE_EXCEEDED).

["MAX_RESPONSE_SIZE_EXCEEDED"]

requester

CHAÎNE

L'ID de l'utilisateur ou du Service Principal qui a effectué la demande.

databricks.engineer@databricks.com

schema_version

CHAÎNE

La version du schéma de l'enregistrement de la table d'inférence.

0

Nom de colonne

Type

Description

Exemple

request_id

CHAÎNE

Un identifiant unique pour la requête.

7a99b43cb46c432bb0a7814217701909

invocation_id

CHAÎNE

Un identifiant unique pour chaque appel d'inférence individuel. Plusieurs invocations peuvent partager le même request_id, tels que les contrôles de garde-fou ou les appels d'agent multi-tours. Utilisez invocation_id pour les distinguer.

c0a8012e-9f3b-4d21-8a7e-1b2c3d4e5f60

request_tags

Carte

Balises associées à la requête.

{"team": "engineering"}

event_time

Horodatage

Le Timestamp lorsque la requête a été reçue.

2024-05-17T13:47:13.282-07:00

status_code

INT

Le code de statut HTTP de la réponse.

200

sampling_fraction

Double

La fraction d'échantillonnage si le sous-échantillonnage était utilisé. Une valeur de 1 signifie qu'il n'y a pas de sous-échantillonnage.

1

latency_ms

LONG

La latence totale en millisecondes.

300

time_to_first_byte_ms

LONG

Le temps de premier octet en millisecondes.

200

request

CHAÎNE

La charge utile de la requête JSON brute.

{"messages": [...], ...}

response

CHAÎNE

La charge utile de la réponse JSON brute.

{"choices": [...], ...}

destination_type

CHAÎNE

Le type de destination (par exemple, modèle externe ou modèle de fondation).

PAY_PER_TOKEN_FOUNDATION_MODEL

destination_name

CHAÎNE

Le nom du modèle ou du fournisseur de destination.

databricks-gpt-5-2

destination_model

CHAÎNE

Le modèle spécifique utilisé pour la requête.

GPT-5.2

logging_error_codes

TABLEAU

Codes d'erreur si l'enregistrement a échoué (par exemple, MAX_REQUEST_SIZE_EXCEEDED).

["MAX_RESPONSE_SIZE_EXCEEDED"]

requester

CHAÎNE

L'ID de l'utilisateur ou du Service Principal qui a effectué la demande.

databricks.engineer@databricks.com

schema_version

CHAÎNE

La version du schéma de l'enregistrement de la table d'inférence.

0

Limitations

  • Catalogues de stockage externe uniquement : les tables d'inférence ne peuvent être créées que dans des catalogues de stockage externe. Les catalogues de stockage par default ne sont pas actuellement pris en charge.
  • Endpoints not supported : les tables d’inférence ne peuvent pas être créées dans un stockage sécurisé via un endpoint privé. Voir les limitations du connecteur Zerobus Ingest.
  • **Livraison au mieux des efforts** : Les logs sont généralement disponibles dans les minutes suivant une requête, mais la livraison n'est pas garantie.
  • Taille maximale de la charge utile : les requêtes et les réponses de plus de 10 MiB ne sont pas journalisées. La colonne logging_error_codes indique quand cela se produit avec MAX_REQUEST_SIZE_EXCEEDED ou MAX_RESPONSE_SIZE_EXCEEDED.
  • Réponses d'erreur : les Logs peuvent ne pas être renseignés pour les requêtes qui renvoient des erreurs 401, 403, 429 ou 500.

Ressources supplémentaires