Passer au contenu principal
Les datasets Weave vous aident à organiser, collecter, suivre et versionner des exemples pour l’évaluation d’applications LLM, afin de faciliter les comparaisons. Vous pouvez créer des Dataset et interagir avec eux par programmation ou via l’interface utilisateur. Cette page décrit :
  • Les opérations de base sur les Dataset en Python et TypeScript, ainsi que la façon de démarrer
  • Comment créer un Dataset en Python et TypeScript à partir d’objets tels que les appels Weave
  • Les opérations disponibles sur un Dataset dans l’interface utilisateur

Démarrage rapide de Dataset

Les exemples de code suivants montrent comment effectuer les opérations de base sur un Dataset en Python et en TypeScript. Avec les SDK, vous pouvez :
  • Créer un Dataset
  • Publier le Dataset
  • Récupérer le Dataset
  • Accéder à un exemple précis dans le Dataset
Sélectionnez un onglet pour afficher le code spécifique à Python et à TypeScript.
import weave
from weave import Dataset
# Initialiser Weave
weave.init('intro-example')

# Créer un jeu de données
dataset = Dataset(
    name='grammar',
    rows=[
        {'id': '0', 'sentence': "He no likes ice cream.", 'correction': "He doesn't like ice cream."},
        {'id': '1', 'sentence': "She goed to the store.", 'correction': "She went to the store."},
        {'id': '2', 'sentence': "They plays video games all day.", 'correction': "They play video games all day."}
    ]
)

# Publier le jeu de données
weave.publish(dataset)

# Récupérer le jeu de données
dataset_ref = weave.ref('grammar').get()

# Accéder à un exemple précis
example_label = dataset_ref.rows[2]['sentence']

Créer un Dataset à partir d’autres objets

En Python, les Dataset peuvent également être créés à partir d’objets Weave courants comme les appel, ainsi que d’objets Python comme les pandas.DataFrame. Cette fonctionnalité est utile si vous souhaitez créer un Dataset d’exemple à partir d’exemples précis.

Call Weave

Pour créer un Dataset à partir d’un ou de plusieurs appel Weave, récupérez le ou les objets call, puis ajoutez-les à une liste dans la méthode from_calls.
@weave.op
def model(task: str) -> str:
    return f"Now working on {task}"

res1, call1 = model.call(task="fetch")
res2, call2 = model.call(task="parse")

dataset = Dataset.from_calls([call1, call2])
# Vous pouvez maintenant utiliser le jeu de données pour évaluer le modèle, etc.

DataFrame Pandas

Pour créer un Dataset à partir d’un objet Pandas DataFrame, utilisez la méthode from_pandas.Pour reconvertir le Dataset, utilisez to_pandas.
import pandas as pd

df = pd.DataFrame([
    {'id': '0', 'sentence': "He no likes ice cream.", 'correction': "He doesn't like ice cream."},
    {'id': '1', 'sentence': "She goed to the store.", 'correction': "She went to the store."},
    {'id': '2', 'sentence': "They plays video games all day.", 'correction': "They play video games all day."}
])
dataset = Dataset.from_pandas(df)
df2 = dataset.to_pandas()

assert df.equals(df2)

Hugging Face Datasets

Pour créer un Dataset à partir d’un objet Hugging Face datasets.Dataset ou datasets.DatasetDict, assurez-vous d’abord que les dépendances nécessaires sont installées :
pip install weave[huggingface]
Ensuite, utilisez la méthode from_hf. Si vous fournissez un DatasetDict avec plusieurs splits (comme ‘train’, ‘test’, ‘validation’), Weave utilisera automatiquement le split ‘train’ et émettra un avertissement. Si le split ‘train’ n’est pas présent, une erreur sera levée. Vous pouvez aussi fournir directement un split spécifique (par exemple, hf_dataset_dict['test']).Pour reconvertir un weave.Dataset en Dataset Hugging Face, utilisez la méthode to_hf.
# Assurez-vous que datasets est installé : pip install datasets
from datasets import Dataset as HFDataset, DatasetDict

# Exemple avec HF Dataset
hf_rows = [
    {'id': '0', 'sentence': "He no likes ice cream.", 'correction': "He doesn't like ice cream."},
    {'id': '1', 'sentence': "She goed to the store.", 'correction': "She went to the store."},
]
hf_ds = HFDataset.from_list(hf_rows)
weave_ds_from_hf = Dataset.from_hf(hf_ds)

# Reconvertir en HF Dataset
converted_hf_ds = weave_ds_from_hf.to_hf()

# Exemple avec HF DatasetDict (utilise le split 'train' par défaut)
hf_dict = DatasetDict({
    'train': HFDataset.from_list(hf_rows),
    'test': HFDataset.from_list([{'id': '2', 'sentence': "Test sentence", 'correction': "Test correction"}])
})
# Cela émettra un avertissement et utilisera le split 'train'
weave_ds_from_dict = Dataset.from_hf(hf_dict)

# Fournir un split spécifique
weave_ds_from_test_split = Dataset.from_hf(hf_dict['test'])

Créer, modifier et supprimer un Dataset dans l’interface utilisateur

Vous pouvez créer, modifier et supprimer des Dataset dans l’interface utilisateur. La création de jeux de données dans l’interface utilisateur Weave vous permet, ainsi qu’aux membres non techniques de votre équipe, de créer et de gérer des jeux de données partageables contenant des exemples, des questions et d’autres données de test pour les agents, sans modifier le code.

Créer un nouveau Dataset

  1. Accédez au projet Weave que vous souhaitez modifier.
  2. Dans la barre latérale, sélectionnez Traces.
  3. Sélectionnez un ou plusieurs appel pour lesquels vous souhaitez créer un nouveau Dataset.
  4. Dans le menu en haut à droite, cliquez sur l’icône Ajouter les lignes sélectionnées à un dataset (située à côté de l’icône de corbeille).
  5. Dans la liste déroulante Choisir un dataset, sélectionnez Créer nouveau. Le champ Nom du dataset s’affiche.
  6. Dans le champ Nom du dataset, saisissez un nom pour votre jeu de données. Les options Configurer les champs du dataset s’affichent.
    Les noms de dataset doivent commencer par une lettre ou un chiffre et ne peuvent contenir que des lettres, des chiffres, des traits d’union et des traits de soulignement.
  7. (Facultatif) Dans Configurer les champs du dataset, sélectionnez les champs de vos appel à inclure dans le dataset.
    • Vous pouvez personnaliser les noms de colonnes pour chaque champ sélectionné.
    • Vous pouvez sélectionner un sous-ensemble de champs à inclure dans le nouveau Dataset, ou désélectionner tous les champs.
  8. Une fois les champs du dataset configurés, cliquez sur Suivant. Un aperçu de votre nouveau Dataset s’affiche.
  9. (Facultatif) Cliquez sur l’un des champs modifiables de votre Dataset pour modifier l’entrée.
  10. Cliquez sur Créer le dataset. Votre nouveau jeu de données est créé.
  11. Dans la fenêtre contextuelle de confirmation, cliquez sur Voir le dataset pour afficher le nouveau Dataset. Vous pouvez aussi accéder à l’onglet Datasets.

Modifier un Dataset

  1. Accédez au projet Weave contenant le Dataset que vous souhaitez modifier.
  2. Dans la barre latérale, sélectionnez Datasets. Les Datasets disponibles s’affichent. UI de Dataset
  3. Dans la colonne Object, cliquez sur le nom et la version du Dataset que vous souhaitez modifier. Une fenêtre modale détachable s’ouvre et affiche des informations sur le Dataset, notamment son nom, sa version, son auteur et ses lignes. Afficher les informations du Dataset
  4. Dans l’angle supérieur droit de la fenêtre modale, cliquez sur le bouton Edit dataset (l’icône en forme de crayon). Un bouton + Add row s’affiche en bas de la fenêtre modale. UI de Dataset- Icône d’ajout de ligne
  5. Cliquez sur + Add row. Une ligne verte s’affiche au-dessus des lignes existantes de votre Dataset, indiquant que vous pouvez y ajouter une nouvelle ligne. UI de Dataset
  6. Pour ajouter des données à une nouvelle ligne, cliquez sur la colonne souhaitée dans cette ligne. La colonne id par défaut d’une ligne de Dataset ne peut pas être modifiée, car Weave l’attribue automatiquement lors de la création. Une fenêtre modale d’édition s’affiche avec les options Text, Code et Diff pour la mise en forme. UI de Dataset - Ajouter des données à une colonne et les mettre en forme.
  7. Répétez l’étape 6 pour chaque colonne de la nouvelle ligne à laquelle vous souhaitez ajouter des données. UI de Dataset - Ajouter des données à toutes les colonnes.
  8. Répétez l’étape 5 pour chaque ligne que vous souhaitez ajouter au Dataset.
  9. Une fois vos modifications terminées, publiez votre Dataset en cliquant sur Publish dans l’angle supérieur droit de la fenêtre modale. Si vous ne souhaitez pas publier vos modifications, cliquez sur Cancel. UI de Dataset - Publier ou annuler. Une fois publiée, la nouvelle version du Dataset, avec les lignes mises à jour, est disponible dans l’UI. UI de Dataset - Métadonnées publiées. UI de Dataset - Lignes publiées.

Supprimer un Dataset

  1. Accédez au projet Weave contenant le Dataset que vous souhaitez modifier.
  2. Dans la barre latérale, sélectionnez Datasets. Les Datasets disponibles s’affichent.
  3. Dans la colonne Object, cliquez sur le nom et la version du Dataset que vous souhaitez supprimer. Une fenêtre modale détachable s’ouvre et affiche des informations sur le Dataset, comme son nom, sa version, son auteur et ses lignes.
  4. Dans l’angle supérieur droit de la fenêtre modale, cliquez sur l’icône de corbeille. Une fenêtre modale s’affiche pour vous demander de confirmer la suppression du Dataset. Dataset UI - Fenêtre modale de confirmation de suppression.
  5. Dans la fenêtre modale, cliquez sur le bouton rouge Supprimer pour supprimer le Dataset. Vous pouvez également cliquer sur Annuler si vous ne souhaitez pas supprimer le Dataset. Le Dataset est maintenant supprimé et n’est plus visible dans l’onglet Datasets de votre tableau de bord Weave.

Ajouter un nouvel exemple à un Dataset

  1. Accédez au projet Weave que vous souhaitez modifier.
  2. Dans la barre latérale, sélectionnez Traces.
  3. Sélectionnez un ou plusieurs appels avec Datasets pour lesquels vous souhaitez créer de nouveaux exemples.
  4. Dans le menu en haut à droite, cliquez sur l’icône Ajouter les lignes sélectionnées à un dataset (située à côté de l’icône de corbeille). Si vous le souhaitez, désactivez Show latest versions pour afficher toutes les versions de tous les jeux de données disponibles.
  5. Dans le menu déroulant Choisir un dataset, sélectionnez le Dataset auquel vous souhaitez ajouter des exemples. Les options Configure field mapping s’affichent.
  6. (Facultatif) Dans Configure field mapping, vous pouvez ajuster le mappage des champs de vos appels vers les colonnes correspondantes du jeu de données.
  7. Une fois le mappage des champs configuré, cliquez sur Next. Un aperçu de votre nouveau Dataset s’affiche.
  8. Dans la ligne vide (verte), ajoutez la ou les valeurs de votre nouvel exemple. Notez que le champ id n’est pas modifiable et qu’il est créé automatiquement par Weave.
  9. Cliquez sur Add to dataset. Pour revenir à l’écran Configure field mapping, cliquez sur Back.
  10. Dans la fenêtre contextuelle de confirmation, cliquez sur voir pour voir les modifications. Vous pouvez aussi accéder à l’onglet Datasets pour voir les mises à jour apportées à votre Dataset.

Autres opérations sur les jeux de données

Sélection de lignes

Vous pouvez sélectionner des lignes spécifiques d’un Dataset à partir de leur index à l’aide de la méthode select. C’est utile pour créer des sous-ensembles de vos données.
import weave
from weave import Dataset

# Créer un exemple de jeu de données
dataset = Dataset(rows=[
    {'col_a': 1, 'col_b': 'x'},
    {'col_a': 2, 'col_b': 'y'},
    {'col_a': 3, 'col_b': 'z'},
    {'col_a': 4, 'col_b': 'w'},
])

# Sélectionner les lignes d’index 0 et 2
subset_dataset = dataset.select([0, 2])

# subset_dataset contient maintenant uniquement la première et la troisième ligne
# print(list(subset_dataset))
# Sortie : [{'col_a': 1, 'col_b': 'x'}, {'col_a': 3, 'col_b': 'z'}]