Explora de forma interactiva tu conjunto de datos de Huggingface con una línea de código
Explora de forma interactiva tus conjuntos de datos de Huggingface con una sola línea de código
La biblioteca de datasets de Hugging Face no solo proporciona acceso a más de 70k conjuntos de datos públicamente disponibles, sino que también ofrece tuberías de preparación de datos muy convenientes para conjuntos de datos personalizados.
Renumics Spotlight te permite crear visualizaciones interactivas para identificar grupos críticos en tus datos. Dado que Spotlight comprende la semántica de los datos dentro de los conjuntos de datos de Hugging Face, puedes comenzar con solo una línea de código:
import datasetsfrom renumics import spotlightds = datasets.load_dataset('speech_commands', 'v0.01', split='validation')spotlight.show(ds)
Spotlight te permite aprovechar los resultados del modelo, como predicciones y embeddings, para obtener una comprensión más profunda de los segmentos de datos y los modos de falla del modelo:
- Un ‘mapa’ más preciso de las luces que ves cuando cierras los ojos puede mejorar los resultados de los ‘ojos biónicos’.
- El mercado negro de GitHub que ayuda a los programadores a hacer trampa en el concurso de popularidad
- El DMV de California suspende los permisos de despliegue y pruebas de cruceros
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}))
La inspección de datos es una tarea muy importante en casi todas las etapas de desarrollo de ML, pero también puede llevar mucho tiempo.
“La inspección manual de datos probablemente tiene la relación de valor a prestigio más alta de cualquier actividad en el aprendizaje automático”. — Greg Brockman
Spotlight te ayuda a realizar la inspección de datos de manera más escalable en dos dimensiones: configurar y mantener flujos de trabajo personalizados de inspección de datos y encontrar muestras relevantes de datos y grupos para inspeccionar. En las siguientes secciones mostramos algunos ejemplos basados en conjuntos de datos de Hugging Face.
Spotlight 🤝 Conjuntos de datos de Hugging Face
La biblioteca de conjuntos de datos tiene varias características que la convierten en una herramienta ideal para trabajar con conjuntos de datos de ML: almacena datos tabulares (por ejemplo, metadatos, etiquetas) junto con datos no estructurados (por ejemplo, imágenes, audio) en una tabla de Arrows común. Los conjuntos de datos también describen la semántica de los datos importantes a través de características (por ejemplo, imágenes, audio) y metadatos adicionales específicos de la tarea.
Spotlight funciona directamente sobre la biblioteca de conjuntos de datos. Esto significa que no es necesario copiar ni preprocesar los conjuntos de datos para la visualización e inspección de datos. Spotlight carga los datos tabulares en la memoria para permitir análisis de datos eficientes en el lado del cliente. Las muestras de datos no estructurados que requieren mucha memoria (por ejemplo, audio, imágenes, video) se cargan de forma perezosa según la demanda. En la mayoría de los casos, los tipos de datos y los mapeos de etiquetas se infieren directamente del conjunto de datos. Aquí, visualizamos el conjunto de datos CIFAR-100 con una línea de código:
ds = datasets.load_dataset('cifar100', split='test')spotlight.show(ds)
En los casos en que los tipos de datos son ambiguos o no están especificados, la API de Spotlight permite asignarlos manualmente:
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)})
Aprovechando los resultados del modelo para la inspección de datos
Explorar conjuntos de datos no estructurados en bruto a menudo ofrece pocos conocimientos. Aprovechar los resultados del modelo, como predicciones o embeddings, puede ayudar a descubrir muestras críticas de datos y grupos. Spotlight tiene varias opciones de visualización (por ejemplo, mapa de similitud, matriz de confusión) que utilizan específicamente los resultados del modelo.
Recomendamos almacenar los resultados de tus predicciones directamente en un conjunto de datos de Hugging Face. Esto no solo te permite aprovechar las capacidades de procesamiento por lotes de la biblioteca de conjuntos de datos, sino que también mantiene los mapeos de etiquetas.
Podemos usar la biblioteca transformers para calcular los embeddings y las predicciones en el problema de clasificación de imágenes CIFAR-100. Instalamos las bibliotecas a través de pip:
pip install renumics-spotlight datasets transformers[torch]
Ahora podemos calcular la enriquecimiento:
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 no deseas realizar la ejecución completa de inferencia, puedes descargar los resultados del modelo precalculado para CIFAR-100 y seguir este tutorial:
ds_results = datasets.load_dataset('renumics/spotlight-cifar100-enrichment', split='test')ds_enriched = datasets.concatenate_datasets([ds, ds_results], axis=1)
Ahora podemos utilizar los resultados para explorar de manera interactiva muestras y clusters relevantes en 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)
Personalización de flujos de inspección de datos
Los diseños de visualización se pueden cambiar, guardar y cargar de manera interactiva en la interfaz gráfica: puedes seleccionar diferentes tipos y configuraciones de widgets. El widget Inspector permite representar muestras de datos multimodales, incluyendo texto, imagen, audio, video y series temporales.
También puedes definir diseños a través de la API de Python. Esta opción es especialmente útil para construir flujos de inspección y curación de datos personalizados, que incluyen EDA, depuración de modelos y tareas de monitoreo de modelos.
En combinación con el widget de problemas de datos, la API de Python ofrece una excelente manera de integrar los resultados de scripts existentes (por ejemplo, comprobaciones de calidad de datos o monitoreo de modelos) en un flujo de trabajo de inspección de datos escalable.
Usar Spotlight en el Hub de Hugging Face
Puedes usar Spotlight directamente en tu conjunto de datos local de NLP, audio, CV o multimodal. Si deseas mostrar tu conjunto de datos o los resultados de tu modelo en el Hub de Hugging Face, puedes usar los espacios de Hugging Face para lanzar una visualización de Spotlight para ello.
Ya hemos preparado ejemplos de espacios para muchos conjuntos de datos populares de NLP, audio y CV en el hub. Simplemente duplica uno de estos espacios y especifica tu conjunto de datos en la variable HF_DATASET
.
También puedes elegir opcionalmente un conjunto de datos que contenga resultados de modelos y otras opciones de configuración, como divisiones, subconjuntos o revisiones del conjunto de datos.
¿Qué sigue?
Con Spotlight puedes crear visualizaciones interactivas y aprovechar el enriquecimiento de datos para identificar clusters críticos en tus conjuntos de datos de Hugging Face. En este blog, hemos visto tanto un ejemplo de ML de audio como de visión por computadora.
Puedes usar Spotlight directamente para explorar y curar tus conjuntos de datos NLP, audio, CV o multimodales:
- Instala Spotlight: pip install renumics-spotlight
- Consulta la documentación o abre un issue en Github
- Únete a la comunidad de Spotlight en Discord
- Síguenos en Twitter y LinkedIn
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Investigadores de CMU y UC Santa Bárbara proponen una innovadora IA basada en el ‘Diagnóstico del pensamiento’ para la detección de distorsiones cognitivas en psicoterapia
- Conoce a DiagrammerGPT un nuevo marco de inteligencia artificial de generación de texto a diagrama de dos etapas que aprovecha el conocimiento de LLM para planificar y refinar los planes generales de diagramas
- Análisis de series de tiempo de Pumpkin Spice Time
- Jane la Descubridora Mejorando el Descubrimiento Causal con Modelos de Lenguaje Grandes (Causal Python)
- TimeGPT El primer modelo base para previsión de series temporales
- CrowdStrike presenta su visión de la seguridad impulsada por IA en Fal.Con 2023
- Investigadores de la Universidad de Texas en Austin presentan LIBERO Una prueba de aprendizaje de robot a lo largo de la vida para estudiar la transferencia de conocimiento en la toma de decisiones y la robótica a gran escala.