Identify critical data slices to build better training datasets.
Spotlight helps you to identify critical data segments and model failure modes. It enables you to build and maintain reliable machine learning models by curating high-quality datasets.
Spotlight is built on the idea that you can only truly understand unstructured datasets if you can interactively explore them. Its core principle is to identify and fix critical data segments by leveraging data enrichments (e.g. features, embeddings, uncertainties). Pre-defined templates for typical data curation workflows get you started quickly and connect your stack to the data-centric AI ecosystem.
We at Renumics are building Spotlight for cross-functional teams who want to be in control of their data and data curation processes. Currently, Spotlight supports many use cases based on image, audio, video and time series data.
Get started by installing Spotlight and loading your first dataset.
- Python version 3.8-3.11
Install Spotlight via pip
pip install renumics-spotlight
We recommend installing Spotlight and everything you need to work on your data in a separate virtual environment.
import pandas as pd
from renumics import spotlight
df = pd.read_csv("https://renumics.com/data/mnist/mnist-tiny.csv")
spotlight.show(df, dtype={"image": spotlight.Image, "embedding": spotlight.Embedding})
pd.read_csv
loads a sample csv file as a pandas DataFrame.
spotlight.show
opens up spotlight in the browser with the pandas dataframe ready for you to explore. The dtype
argument specifies custom column types for the browser viewer.
Load a Hugging Face image dataset
import datasets
from renumics import spotlight
dataset = datasets.load_dataset("olivierdehaene/xkcd", split="train")
df = dataset.to_pandas()
spotlight.show(df, dtype={"image_url": spotlight.Image})
The
datasets
package can be installed via pip.
Load a Hugging Face audio dataset with embeddings and a pre-defined layout
import datasets
from renumics import spotlight
dataset = datasets.load_dataset("renumics/dcase23-task2-enriched", "dev", split="all", streaming=False)
df = dataset.to_pandas()
simple_layout = datasets.load_dataset_builder("renumics/dcase23-task2-enriched", "dev").config.get_layout(config="simple")
spotlight.show(df, dtype={'path': spotlight.Audio, "embeddings_ast-finetuned-audioset-10-10-0.4593": spotlight.Embedding}, layout=simple_layout)
The
datasets[audio]
package can be installed via pip.
You can adapt Spotlight to your data curation tasks. To get you started quickly, we are continuously developing pre-defined plays for common workflows.
- Create embeddings with Huggingface
- Create embeddings with towhee
- Extract decision boundary based on probability ratios
- Detect duplicates with Annoy
- Detect leakage with Annoy
- Detect data drift
- Detect label errors
- Detect outliers
- Detect image error patterns
- Open an issue on Github
- Have a coffee talk with us
- Join our channel on Discord
Usage Tracking
We have added crash report and perfomance collection.
We do NOT collect user data other than an anonymized Machine Id obtained by py-machineid, and only log our own actions.
We do NOT collect folder names, dataset names, or row data of any kind only aggregate performance statistics like total time of a table_load, crash data, etc.
Collecting Spotlight crashes will help us improve stability.
To opt out of the crash report collection define an environment variable called SPOTLIGHT_OPT_OUT
and set it to true.
e.G.
export SPOTLIGHT_OPT_OUT=true