Passer au contenu principal
Vous cherchez W&B Weave ? La suite d’outils de W&B pour créer des applications d’IA générative ? Consultez la documentation de Weave ici : wandb.me/weave.
Utilisez les panneaux de requête pour interroger vos données et les visualiser de manière interactive. Un panneau de requête combine trois éléments :
  1. Expression : Les données que vous sélectionnez.
  2. Configuration : Les paramètres facultatifs du panneau, comme le type de panneau et les options du menu en forme d’engrenage.
  3. Panneau de résultat : La façon d’afficher les résultats, par exemple dans un tableau ou un graphique.
Pour voir un large éventail d’exemples interactifs à essayer, consultez ce rapport d’exemples du panneau de requête. Pour un guide pas à pas sur la syntaxe des requêtes, consultez le rapport tutoriel sur les panneaux de requête. Les types et opérations générés sont répertoriés dans l’aperçu du langage d’expression des requêtes.
Panneau de requête

Créer un panneau de requête

Ajoutez une requête à votre Workspace ou dans un rapport.
  1. Accédez au Workspace de votre projet.
  2. Dans l’angle supérieur droit, cliquez sur Add panel.
  3. Dans le menu déroulant, sélectionnez Query panel.

Composants de requête

Expressions

Utilisez des expressions de requête pour interroger les données stockées dans W&B, comme les runs, les artifacts, les modèles, les tables, etc.

Exemple : Interroger un tableau

Supposons que vous souhaitiez interroger une W&B Table. Dans votre code d’entraînement, vous journalisez un tableau appelé "cifar10_sample_table" :
import wandb
with wandb.init() as run:
  run.log({"cifar10_sample_table":<MY_TABLE>})
Dans le panneau de requête, vous pouvez effectuer des requêtes sur votre tableau avec :
runs.summary["cifar10_sample_table"]
Expression de requête de tableau
Décomposons cela :
  • runs est une variable automatiquement injectée dans les expressions du panneau de requête lorsque le panneau de requête se trouve dans un Workspace. Sa “valeur” est la liste des runs visibles dans ce Workspace. Voir les différents attributs disponibles dans un run ici.
  • summary est une op qui renvoie l’objet Summary d’un Run. Les opérations sont mappées, ce qui signifie que cette op est appliquée à chaque Run de la liste, ce qui donne une liste d’objets Summary.
  • ["cifar10_sample_table"] est une op Pick (indiquée par des crochets), avec une clé cifar10_sample_table. Comme les objets Summary se comportent comme des dictionnaires ou des tables de correspondance, cette opération sélectionne ce champ dans chaque objet Summary.

Configurations

Sélectionnez l’icône d’engrenage dans le coin supérieur gauche du panneau pour afficher la configuration de la requête. Vous pouvez ainsi configurer le type de panneau et les paramètres du panneau de résultats.
Menu de configuration du panneau

Options du panneau

Le menu de configuration peut inclure des options qui modifient la manière dont les résultats de type tableau sont combinés ou chargés. Les libellés exacts et leur disponibilité peuvent dépendre de votre expression et du type de panneau. Utilisez le rapport d’exemples du panneau de requête pour voir des configurations concrètes. Concat Utilisez Concat dans la configuration si vous souhaitez fusionner des résultats compatibles de type tableau afin que le panneau les traite comme un seul tableau pour l’affichage et les opérations ultérieures. La fusion des lignes au niveau de l’expression (par exemple concat et join dans la requête) est distincte de ce paramètre. Voir Combiner des tableaux dans les expressions. Paginate Utilisez Paginate lorsqu’un résultat de tableau risque d’être trop volumineux pour être affiché en une seule fois. La pagination charge les lignes par blocs afin que le panneau reste réactif. Associez cette option à des expressions qui renvoient de longues listes de lignes. Pour les approches qui fonctionnent bien avec la pagination, voir le rapport d’exemples du panneau de requête.

Panneaux de résultats

Enfin, le panneau de résultat de la requête affiche le résultat de l’expression de requête à l’aide du Query panel sélectionné, configuré pour présenter les données sous une forme interactive. Les images suivantes montrent un tableau et un graphique des mêmes données.
Panneau de résultat : tableau
Panneau de résultat : graphique

Parcourir l’historique des exécutions

Dans les tableaux et graphiques construits à partir de runs ou de runs.history, l’application peut afficher un contrôle d’étape (par exemple un curseur) pour vous permettre de parcourir les étapes enregistrées et d’inspecter les métriques, le texte ou les médias au fil de vos runs. Une fois l’expression modifiée, modifiez la configuration du panneau de requête et définissez « Render As » sur « Stepper ». Le contrôle peut suivre une métrique autre que _step si cela correspond mieux à la manière dont vous avez enregistré les données. Pour obtenir des exemples d’expressions, voir le rapport d’exemples du panneau de requête.

Opérations de base

Voici quelques opérations courantes que vous pouvez effectuer dans vos panneaux de requête.

Trier

Triez à partir des options de la colonne :
Options de tri de la colonne

Filtre

Vous pouvez soit filtrer directement dans la requête, soit utiliser le bouton Filtre en haut à gauche (deuxième image)
Syntaxe du filtre dans la requête
Bouton Filtre

Map

Les opérations Map parcourent des listes et appliquent une fonction à chaque élément des données. Vous pouvez le faire directement avec une requête de panneau, ou en insérant une nouvelle colonne depuis les options de colonne.
Requête de l'opération Map
Insertion d'une colonne Map

Regrouper

Vous pouvez regrouper à l’aide d’une requête ou depuis les options de colonne.
Regroupement par requête
Regroupement via les options de colonne

Combiner des tableaux dans les expressions

Utilisez concat, join et les opérations associées dans votre expression lorsque vous devez empiler ou fusionner des listes de lignes issues de tableaux. Voir Join pour un exemple complet. Les éléments Concat et Paginate dans Options du panneau sont des contrôles distincts qui déterminent la manière dont l’interface utilisateur fusionne et charge les résultats des tableaux.

Jointure

Il est également possible d’effectuer des jointures directement dans la requête. Considérez l’expression de requête suivante :
project("luis_team_test", "weave_example_queries").runs.summary["short_table_0"].table.rows.concat.join(\
project("luis_team_test", "weave_example_queries").runs.summary["short_table_1"].table.rows.concat,\
(row) => row["Label"],(row) => row["Label"], "Table1", "Table2",\
"false", "false")
Opération de jointure de tableaux
Le tableau de gauche est généré à partir de :
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_0"].table.rows.concat.join
Le tableau de droite est généré à partir de :
project("luis_team_test", "weave_example_queries").\
runs.summary["short_table_1"].table.rows.concat
Où :
  • (row) => row["Label"] sont les sélecteurs de chaque tableau et déterminent la colonne sur laquelle effectuer la jointure
  • "Table1" et "Table2" sont les noms attribués à chaque tableau une fois la jointure effectuée
  • true et false correspondent aux paramètres de jointure interne/externe à gauche et à droite

Objet runs

Utilisez les panneaux de requête pour accéder à l’objet runs. Les objets run stockent les enregistrements de vos expériences. Vous trouverez plus de détails dans Accéder à l’objet runs, mais, pour un aperçu rapide, voici ce que contient l’objet runs :
  • summary : un dictionnaire d’informations qui résume les résultats du run. Il peut s’agir de scalaires comme l’accuracy et la perte, ou de fichiers volumineux. Par défaut, wandb.Run.log() définit summary sur la valeur finale d’une série temporelle enregistrée. Vous pouvez aussi définir directement le contenu de summary. Considérez summary comme les sorties du run.
  • history : une liste de dictionnaires destinée à stocker les valeurs qui changent pendant l’entraînement du modèle, comme la perte. La commande wandb.Run.log() ajoute des éléments à cet objet.
  • config : un dictionnaire contenant les informations de configuration du run, comme les hyperparamètres d’un run d’entraînement ou les méthodes de prétraitement d’un run qui crée un Artifact de jeu de données. Considérez-les comme les « entrées » du run.
Structure de l’objet Runs

Accéder aux Artifacts

Les Artifacts sont un concept central dans W&B. Il s’agit d’une collection versionnée et nommée de fichiers et de répertoires. Utilisez les Artifacts pour suivre les poids de modèles, les jeux de données et tout autre fichier ou répertoire. Les Artifacts sont stockés dans W&B et peuvent être téléchargés ou utilisés dans d’autres runs. Vous trouverez plus de détails et d’exemples dans Accès aux Artifacts. Les Artifacts sont généralement accessibles à partir de l’objet project :
  • project.artifactVersion() : renvoie la version spécifique d’un artifact pour un nom et une version donnés dans un projet
  • project.artifact("") : renvoie l’artifact correspondant à un nom donné dans un projet. Vous pouvez ensuite utiliser .versions pour obtenir la liste de toutes les versions de cet artifact
  • project.artifactType() : renvoie l’artifactType correspondant à un nom donné dans un projet. Vous pouvez ensuite utiliser .artifacts pour obtenir la liste de tous les Artifacts de ce type
  • project.artifactTypes : renvoie la liste de tous les types d’artifact du projet
Méthodes d’accès aux Artifacts