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:

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:

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

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Abacus AI presenta un nuevo modelo de lenguaje grande de contexto largo y abierto (LLM) Conoce a Giraffe

Los modelos de lenguaje recientes pueden tomar contextos largos como entrada; se necesita más información sobre cómo ...

Inteligencia Artificial

ChatGPT se adentra en el lado robótico la última maravilla mecánica de Boston Dynamics ahora responde verbalmente

En un desarrollo innovador, la empresa de ingeniería Boston Dynamics ha integrado ChatGPT, un sofisticado modelo de l...

Aprendizaje Automático

GPT vs BERT ¿Cuál es mejor?

El aumento en la popularidad de la inteligencia artificial generativa también ha llevado a un aumento en el número de...

Inteligencia Artificial

Los empleados quieren ChatGPT en el trabajo. Los jefes se preocupan de que revelen secretos.

Algunos líderes corporativos han prohibido el uso de herramientas de inteligencia artificial generativa debido a preo...

Ciencia de Datos

Un nuevo estudio de investigación en IA presenta AttrPrompt un generador de datos de entrenamiento LLM para un nuevo paradigma en el aprendizaje de cero disparos.

El rendimiento de los modelos de lenguaje grandes (LLMs) ha sido impresionante en muchas aplicaciones diferentes de p...

Inteligencia Artificial

La IA escribió un proyecto de ley de vivienda. Los críticos dicen que no es inteligente

Un asambleísta de Queens utilizó un programa de inteligencia artificial para identificar vacíos en la ley de Nueva Yo...