Explorez de manière interactive votre jeu de données Huggingface avec une seule ligne de code

Explorez de manière interactive votre jeu de données Huggingface en une seule ligne de code

La bibliothèque de jeux de données de Hugging Face ne fournit pas seulement plus de 70 000 jeux de données disponibles publiquement, mais offre également des pipelines de préparation de données très pratiques pour les jeux de données personnalisés.

Renumics Spotlight vous permet de créer des visualisations interactives pour identifier les clusters critiques dans vos données. Parce que Spotlight comprend la sémantique des données dans les jeux de données Hugging Face, vous pouvez commencer avec une seule ligne de code:

import datasetsfrom renumics import spotlightds = datasets.load_dataset('speech_commands', 'v0.01', split='validation')spotlight.show(ds)

Spotlight permet de tirer parti des résultats du modèle, tels que les prédictions et les embeddings, pour mieux comprendre les segments de données et les modes de défaillance du modèle :

ds_results = datasets.load_dataset('renumics/speech_commands-ast-finetuned-results', 'v0.01', split='validation')ds = datasets.concatenate_datasets([ds, ds_results], axis=1)spotlight.show(ds, dtype={'embedding': spotlight.Embedding}, layout=spotlight.layouts.debug_classification(embedding='embedding', inspect={'audio': spotlight.dtypes.audio_dtype}))

L’inspection des données est une tâche très importante dans presque toutes les étapes du développement de l’apprentissage automatique, mais elle peut aussi prendre beaucoup de temps.

“L’inspection manuelle des données a probablement le rapport valeur-prestige le plus élevé de toutes les activités d’apprentissage automatique.” — Greg Brockman

Spotlight vous permet d’optimiser l’inspection des données selon deux dimensions : la configuration et la gestion des flux de travail d’inspection des données personnalisées, ainsi que la recherche d’échantillons de données et de clusters pertinents à inspecter. Dans les sections suivantes, nous montrons quelques exemples basés sur les jeux de données Hugging Face.

Spotlight 🤝 Jeux de données Hugging Face

La bibliothèque de jeux de données offre plusieurs fonctionnalités qui en font un outil idéal pour travailler avec des jeux de données d’apprentissage automatique : elle stocke des données tabulaires (par exemple, des métadonnées, des étiquettes) ainsi que des données non structurées (par exemple, des images, du son) dans une table Arrows commune. Les jeux de données décrivent également la sémantique importante des données à travers des caractéristiques (par exemple, des images, du son) et des métadonnées spécifiques aux tâches supplémentaires.

Spotlight fonctionne directement par-dessus la bibliothèque de jeux de données. Cela signifie qu’il n’est pas nécessaire de copier ou de prétraiter le jeu de données pour la visualisation et l’inspection des données. Spotlight charge les données tabulaires en mémoire pour permettre une analyse efficace des données côté client. Les échantillons de données non structurées qui consomment beaucoup de mémoire (par exemple, l’audio, les images, la vidéo) sont chargés paresseusement à la demande. Dans la plupart des cas, les types de données et les mappages d’étiquettes sont déduits directement du jeu de données. Ici, nous visualisons le jeu de données CIFAR-100 avec une seule ligne de code :

ds = datasets.load_dataset('cifar100', split='test')spotlight.show(ds)

Dans les cas où les types de données sont ambigus ou non spécifiés, l’API de Spotlight permet de les assigner manuellement :

label_mapping = dict(zip(ds.features['fine_label'].names, range(len(ds.features['fine_label'].names))))spotlight.show(ds, dtype={'img': spotlight.Image, 'fine_label': spotlight.dtypes.CategoryDType(categories=label_mapping)})

Tirer parti des résultats du modèle pour l’inspection des données

L’exploration des jeux de données brutes non structurées permet souvent d’obtenir peu d’informations. Tirer parti des résultats du modèle tels que les prédictions ou les embeddings peut aider à découvrir les échantillons de données et les clusters critiques. Spotlight dispose de plusieurs options de visualisation (par exemple, une carte de similarité, une matrice de confusion) qui utilisent spécifiquement les résultats du modèle.

Nous recommandons de stocker vos résultats de prédiction directement dans un jeu de données de Hugging Face. Cela vous permet non seulement de profiter des capacités de traitement par lots de la bibliothèque de jeux de données, mais également de conserver les mappages d’étiquettes.

Nous pouvons utiliser la bibliothèque transformers pour calculer les embeddings et les prédictions sur le problème de classification d’images CIFAR-100. Nous installons les bibliothèques via pip :

pip install renumics-spotlight datasets transformers[torch]

Maintenant, nous pouvons calculer l’enrichissement :

import torchimport transformersdevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")model_name = "Ahmed9275/Vit-Cifar100"processor = transformers.ViTImageProcessor.from_pretrained(model_name)cls_model = transformers.ViTForImageClassification.from_pretrained(model_name).to(device)fe_model = transformers.ViTModel.from_pretrained(model_name).to(device)def infer(batch):    images = [image.convert("RGB") for image in batch]    inputs = processor(images=images, return_tensors="pt").to(device)    with torch.no_grad():        outputs = cls_model(**inputs)        probs = torch.nn.functional.softmax(outputs.logits, dim=-1).cpu().numpy()        embeddings = fe_model(**inputs).last_hidden_state[:, 0].cpu().numpy()    preds = probs.argmax(axis=-1)    return {"prediction": preds, "embedding": embeddings}features = datasets.Features({**ds.features, "prediction": ds.features["fine_label"], "embedding": datasets.Sequence(feature=datasets.Value("float32"), length=768)})ds_enriched = ds.map(infer, input_columns="img", batched=True, batch_size=2, features=features)

Si vous ne souhaitez pas exécuter l’inférence complète, vous pouvez télécharger les résultats du modèle précalculés pour CIFAR-100 pour suivre ce tutoriel :

ds_results = datasets.load_dataset('renumics/spotlight-cifar100-enrichment', split='test')ds_enriched = datasets.concatenate_datasets([ds, ds_results], axis=1)

Nous pouvons maintenant utiliser les résultats pour explorer de manière interactive les échantillons de données pertinents et les clusters dans Spotlight :

layout = spotlight.layouts.debug_classification(label='fine_label', embedding='embedding', inspect={'img': spotlight.dtypes.image_dtype})spotlight.show(ds_enriched, dtype={'embedding': spotlight.Embedding}, layout=layout)

Personnalisation des flux d’inspection des données

Les mises en page de visualisation peuvent être modifiées, enregistrées et chargées de manière interactive dans l’interface utilisateur : vous pouvez sélectionner différents types de widgets et configurations. Le widget Inspector permet de représenter des échantillons de données multimodaux, notamment du texte, des images, du son, de la vidéo et des séries chronologiques.

Vous pouvez également définir des mises en page via l’API Python. Cette option est particulièrement utile pour créer des flux de travail personnalisés d’inspection et de valorisation des données, notamment des tâches d’EDA, de débogage de modèle et de surveillance de modèle.

En combinaison avec le widget des problèmes de données, l’API Python offre un moyen idéal d’intégrer les résultats de scripts existants (par exemple des vérifications de qualité des données ou une surveillance de modèle) dans un flux de travail d’inspection de données évolutif.

Utilisation de Spotlight sur le hub Hugging Face

Vous pouvez utiliser Spotlight directement sur votre ensemble de données NLP, audio, CV ou multimodal local. Si vous souhaitez présenter votre ensemble de données ou les résultats de votre modèle sur le hub Hugging Face, vous pouvez utiliser les espaces Hugging Face pour lancer une visualisation Spotlight pour celui-ci.

Nous avons déjà préparé des espaces d’exemple pour de nombreux ensembles de données NLP, audio et CV populaires sur le hub. Vous pouvez simplement dupliquer l’un de ces espaces et spécifier votre ensemble de données dans la variable HF_DATASET.

Vous pouvez éventuellement choisir un ensemble de données contenant des résultats de modèle et d’autres options de configuration telles que des subdivisions, des sous-ensembles ou des révisions de jeu de données.

Et ensuite ?

Avec Spotlight, vous pouvez créer des visualisations interactives et tirer parti des enrichissements de données pour identifier des clusters critiques dans vos ensembles de données Hugging Face. Dans ce blog, nous avons vu un exemple de ML audio et un exemple de vision par ordinateur.

Vous pouvez utiliser Spotlight directement pour explorer et valoriser votre ensemble de données NLP, audio, CV ou multimodal :

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Les jumeaux numériques révolutionneront la logistique moderne. Voici comment

Les jumeaux numériques transforment la logistique en connectant les mondes physique et virtuel, améliorant l'efficaci...

AI

Simplification de l'intégration et de l'automatisation le CTO de Boomi partage sa vision pour les développeurs

Plateformes d'intégration démocratisées et régies, exploitant l'IA et l'automatisation pour simplifier les tâches com...

AI

Dévoilement de GPTBot la décision audacieuse d'OpenAI de parcourir le Web

Dans un tourbillon d’innovation numérique, OpenAI a fait une percée en lançant GPTBot, un robot d’explora...

AI

Exploration de l'éthique et de la confidentialité dans le monde des modèles de langage avancés

Introduction Dans le paysage technologique en constante évolution d’aujourd’hui, les Large Language Model...

AI

Le danger de partager des informations personnelles avec des chatbots - Faites attention

Depuis le début de la révolution de l'IA, des chatbots comme ChatGPT et Bard sont devenus des outils essentiels avec ...

AI

Comment apprendre l'apprentissage automatique en ligne?

Introduction L’apprentissage automatique est un domaine très développé de la technologie à l’heure actuel...