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.
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 Query panel, 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 Query Panel lorsque le Query Panel 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 ops 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 le paramètre predictions. Comme les objets Summary se comportent comme des dictionnaires ou des tables de correspondance, cette opération sélectionne le champ predictions de chaque objet Summary.
Pour apprendre à écrire vos propres requêtes de manière interactive, consultez la démo du Query panel.

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

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

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

Concat

L’opération concat vous permet de concaténer 2 tableaux et d’effectuer une concaténation ou une jointure depuis les Paramètres du panneau.

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