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 :
- Le marché noir de GitHub qui aide les programmeurs à tricher lors du concours de popularité
- Une meilleure carte des lumières que vous voyez lorsque vous fermez les yeux peut améliorer les résultats des yeux bioniques.
- Atom Computing Premier à Annoncer un Ordinateur Quantique de 1 000+ Qbits
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 :
- Installer Spotlight: pip install renumics-spotlight
- Consultez la documentation ou ouvrez un problème sur Github
- Rejoignez la communauté Spotlight sur Discord
- Suivez-nous sur Twitter et LinkedIn
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Projet de loi de l’État de New York qui exigerait des vérifications d’antécédents pour acheter des imprimantes 3D
- Le DMV de Californie suspend les permis de déploiement et de test des croisières
- Débloquer la puissance d’OpenAI dans React révolutionner les expériences utilisateur
- Des chercheurs de CMU et de l’UC Santa Barbara proposent une innovation basée sur l’IA pour le diagnostic de la pensée afin de détecter les distorsions cognitives en psychothérapie.
- Découvrez DiagrammerGPT Un nouveau modèle d’IA de génération de texte en diagramme en deux étapes qui exploite les connaissances des LLM pour la planification et l’amélioration des plans de diagramme globaux.
- Analyse de séries chronologiques de l’épice de citrouille
- LoRa, QLoRA et QA-LoRA adaptabilité efficace dans les grands modèles de langage grâce à la factorisation de matrices de bas rang