Aller au contenu principal

Affichez les traces dans l'interface utilisateur de Databricks MLflow

Toutes les traces capturées sont enregistrées dans une MLflow Experimentation. Lorsque MLFLOW_TRACKING_URI a la valeur databricks, le service MLflow Tracking géré de votre workspace les stocke et les dessert, sans hébergement supplémentaire à exécuter. Accédez-y via l’interface utilisateur MLflow de votre workspace Databricks.

  1. **Accédez à votre expérimentation** : accédez à l'expérimentation où vos traces sont Logs. Par exemple, l'expérimentation définie par mlflow.set_experiment("/Shared/my-genai-app-traces").

  2. Open the Traces tab : Dans la vue de l'expérimentation, cliquez sur le Traces tab pour voir une liste de toutes les traces enregistrées pour cette expérimentation.

    Vue de la liste des traces

Comprendre la liste des traces

La liste des traces donne un aperçu général de vos traces, avec des colonnes triables :

  • **ID de trace** : L'identifiant unique pour chaque trace.
  • Request : un aperçu de l'entrée qui a Trigger le trace.
  • Réponse : un aperçu du résultat final de la trace.
  • Session : l'identifiant de session qui regroupe les traces associées, telles que les tours d'une conversation. Affiché si fourni.
  • User : l’identifiant de l’utilisateur. Affiché si fourni.
  • Temps d'exécution : le temps total nécessaire à l'exécution de la trace.
  • Request time : Le timestamp où la trace a start.
  • Nom de l'exécution : le nom de l'exécution MLflow associée, liée à celle-ci, lorsque la trace appartient à une exécution.
  • Source : l'origine de la trace, telle que la bibliothèque ou le composant instrumenté (openai, langchain ou un nom de trace personnalisé).
  • État : statut de la trace (OK, ERROR, IN_PROGRESS).
  • Nom de la trace : le nom attribué à la trace, qui correspond généralement au nom de la portée racine.
  • Assessments : une colonne par type d'évaluation (par exemple, my_scorer, professional). Une section de résumé située au-dessus de la liste affiche des métriques d'évaluation agrégées, telles que les moyennes ou les taux de réussite/d'échec, pour l'ensemble des traces visibles.
  • Tags : tags affichés sous forme de colonnes (par exemple, persona, style).

Rechercher et filtrer les traces

L'interface utilisateur offre plusieurs façons de trouver des traces pertinentes :

  • Barre de recherche : By default, recherchez des traces par mot-clé dans leur ID, leur entrée et leur sortie.

  • Filter with AI : Cliquez sur l’icône en forme d’étoiles dans la barre de recherche pour passer à la recherche par IA, décrivez les traces souhaitées en anglais courant (par exemple, « traces with errors » ou « traces slower than 5 seconds ») et appuyez sur Entrée. MLflow convertit votre description en un filtre structuré appliqué aux champs de trace filtrables. Pour toute question analytique portant sur de nombreuses traces, ouvrez Genie Code.

  • Menu déroulant de filtres : créez des queries structurées sur :

    • Attributes : contenu Request, Session time, Execution time ou Request time.
    • Assessments : filtrez par la présence ou la valeur d'évaluations telles que my_scorer ou professional.
    • Autres domaines tels que State, Trace name, Session, User et Tags (par exemple, tags.persona = 'expert').
  • Menu déroulant de tri : trier les traces par colonnes telles que Request time ou Execution time.

  • Menu déroulant des colonnes : choisissez les colonnes visibles, y compris les balises spécifiques ou les métriques d’évaluation.

Filtre de la liste des traces

Filtres de métadonnées

Dans l'interface utilisateur de MLflow (tab Traces), vous pouvez consulter les métadonnées jointes :

métadonnées de trace

Filtrez les traces dans l’interface utilisateur MLflow à l’aide de ces queries de recherche :

# Find all traces for a specific user
metadata.`mlflow.trace.user` = 'user-123'

# Find all traces in a session
metadata.`mlflow.trace.session` = 'session-abc-456'

# Find traces for a user within a specific session
metadata.`mlflow.trace.user` = 'user-123' AND metadata.`mlflow.trace.session` = 'session-abc-456'

# Find traces from production environment
metadata.`mlflow.source.type` = 'production'

# Find traces from a specific app version
metadata.app_version = '1.0.0'

Explorer une trace individuelle

Pour inspecter une trace spécifique, cliquez sur son Request ou son Trace Name dans la liste. La vue détaillée de la trace comporte deux tab :

  • Résumé : un aperçu de haut niveau de la trace. Elle affiche les entrées et les sorties de la portée racine, les portées intermédiaires clés ainsi que toutes les exceptions levées pendant la trace. Utilisez les boutons bascule Default , JSON et Table pour modifier l’affichage des entrées et des sorties.
  • Détails & chronologie : la ventilation complète de l’étendue avec des détails par étendue, décrits dans la section suivante.

Aperçu du détail de la trace

L’onglet Details & Timeline comporte trois panneaux :

  1. Répartition de la trace (panneau de gauche) :

    • Affiche la hiérarchie des étendues sous forme d'arborescence ou de graphique en cascade. Il indique toutes les étendues de la trace, leurs relations parent-enfant, ainsi que leur ordre et leur durée d'exécution.
    • Sélectionnez une étendue pour en inspecter les détails.
  2. Détails de l'étendue (panneau central) :

    • Lorsque vous sélectionnez une étendue, ce panneau affiche ses détails, organisés en tabs :

      • Chat : pour les interactions avec les LLM sous forme de chat, vue rendue du déroulement de la conversation (messages de l’utilisateur, de l’assistant et de l’outil).

      Tab de discussion des détails de l'étendue

      • Inputs / Outputs : l'entrée brute transmise à l'opération et la sortie brute qu'elle a renvoyée. Pour le contenu volumineux, utilisez le bouton bascule « Voir plus » / « Voir moins » pour développer ou réduire la vue.

      Tab E/S des détails de l'étendue

      • Attributs : métadonnées clé-valeur spécifiques à l’étendue (par exemple, model et temperature pour un appel de LLM, ou doc_uri pour une étendue de récupérateur).

      tab Attributs de détail d'étendue

      • Événements : pour les étendues ayant généré des erreurs, les détails de l'exception et les traces de pile. Pour les étendues de streaming, les blocs de données individuels au fur et à mesure de leur génération.

      • Certains champs de sortie disposent d’un commutateur Markdown permettant d’alterner entre les vues brute et rendue lorsque le contenu est au format Markdown.

  3. Évaluations (panneau de droite) :

    • Affiche les évaluations (feedback utilisateur ou évaluations) enregistrées pour la trace entière ou l' intervalle sélectionné .
    • Utilisez le bouton + Add new assessment pour consigner les commentaires ou les scores d’évaluation directement depuis l’interface utilisateur, ce qui prend en charge les workflows d’examen manuel et d’étiquetage.

    Détail de la trace Ajouter une évaluation

Informations au niveau de la trace : la vue présente également des tags au niveau de la trace et toutes les évaluations enregistrées pour l’ensemble de la trace, visibles dans le panneau Assessments lorsque la trace racine ou aucune trace n’est sélectionnée. Ceux-ci peuvent provenir de commentaires d’utilisateurs directs ou d’ évaluations systématiques.

astuce

Pour remplacer les tabs par default par un Layout personnalisé qui affiche uniquement les champs, les métriques et les contrôles de feedback qui vous intéressent, créez une vue de trace personnalisée.

Scénarios de debugging courants

Utilisez l’interface utilisateur de MLflow Tracing pour répondre aux besoins courants de debugging et d’observabilité :

  1. Identifier les traces lentes (goulets d'étranglement de latence) :

    • Liste des traces : triez par « Temps d’exécution » par ordre décroissant pour afficher les traces les plus lentes en haut.
    • Vue détaillée : ouvrez une trace lente et examinez le panneau « Trace breakdown ». L’affichage en cascade met en évidence les opérations les plus longues, ce qui permet d’identifier les goulots d’étranglement dans le flux de votre application.

    Identification de l'interface utilisateur des traces lentes

  2. Rechercher les traces d'un utilisateur particulier :

    • Filters : si vous disposez d’ informations utilisateur suivies et qu’elles sont disponibles en tant que filtre (sous « Attributs » ou filtre « Utilisateur »), sélectionnez ou saisissez l’identifiant utilisateur.
    • Recherche et tags : si les identifiants utilisateur sont stockés sous forme de tags tels que mlflow.trace.user, effectuez la recherche avec tags.mlflow.trace.user = 'user_example_123'.

    Recherche d'interface utilisateur de traces utilisateur

  3. Localiser les traces présentant des échecs (erreurs) :

    • Filtres : sélectionnez l’attribut State et choisissez ERROR pour n’afficher que les traces ayant échoué.
    • Vue détaillée : sélectionnez l'étendue erronée dans la section « Trace breakdown », puis ouvrez son « tab » pour afficher le message d'exception et la trace de la pile.

    Localisation de l'interface utilisateur des traces d'erreur

  4. Identifier les traces avec des retours négatifs ou des problèmes :

    • Assessment filters : If you collect user feedback or run evaluations that produce assessments (such as a boolean is_correct or a numeric relevance_score), filter by assessment name and value (for example, is_correct = false or relevance_score < 0.5).
    • Afficher les évaluations : ouvrez une trace et consultez le panneau « Assessments » ou les évaluations des intervalles individuels pour afficher les commentaires enregistrés, les scores et les justifications.

    Identification de l&#39;interface utilisateur des commentaires négatifs.

Traçage dans les Notebooks Databricks

MLflow Tracing affiche les traces directement dans les Notebooks Databricks, dans le cadre de votre flux de développement et d’expérimentation.

remarque

L'intégration du Notebook Databricks MLflow Tracing est disponible dans MLflow 2.20 et versions ultérieures.

Interface utilisateur de trace des Notebooks Databricks

Lorsque vous travaillez dans un notebook Databricks et que votre URI MLflow Tracking est définie sur "databricks" (souvent la valeur default, ou définie avec mlflow.set_tracking_uri("databricks")), l’interface utilisateur des traces peut s’afficher automatiquement dans la sortie d’une cellule.

Cela se produit dans les cas suivants :

  1. Le code d'une cellule génère une trace (par exemple, en appelant une fonction décorée avec @mlflow.trace ou un appel de bibliothèque instrumenté automatiquement).
  2. Vous appelez mlflow.search_traces() et affichez le résultat.
  3. Un objet mlflow.entities.Trace (par exemple, provenant de mlflow.get_trace()) est la dernière expression d’une cellule ou est transmis à display().

La vue intégrée au notebook offre les mêmes capacités d'exploration des traces que l'interface utilisateur principale des expérimentations MLflow, ce qui vous permet d'itérer sans changer de contexte.

Contrôler l'affichage du Notebook

Pour activer ou désactiver l'affichage automatique des traces dans les sorties des cellules de Notebook, exécutez : mlflow.tracing.disable_notebook_display() ou mlflow.tracing.enable_notebook_display()

Limitations

  • La liste des traces renvoie au maximum 1 000 traces. Les filtres et la recherche d'ID de trace s'appliquent uniquement à cet ensemble, pas à l'expérimentation complète, de sorte que les traces plus anciennes dans les grandes expérimentations pourraient ne pas apparaître. Pour trouver une trace plus ancienne, réduisez la plage horaire pour l'inclure.
  • Les expérimentations non présentes dans Unity Catalog sont limitées à 100 000 traces. Pour un stockage évolutif et régi sans limite de trace, Databricks recommande de stocker les traces dans Unity Catalog. Pour déplacer les traces d’expérimentation existantes, migrer vers les traces dans Unity Catalog.

Ressources supplémentaires

Étape suivante : Rechercher des problèmes dans l'ensemble des traces