Hub documentation

Atlas d'embeddings

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Atlas d'embeddings

Embedding Atlas est un outil de visualisation interactive pour explorer de grands espaces d’embeddings. Il vous permet de visualiser, de croiser les filtres et de rechercher des embeddings ainsi que les métadonnées associées, afin de mieux comprendre les motifs et les relations dans des données de haute dimension. Tout le calcul est effectué sur votre ordinateur, garantissant que vos données restent privées et sécurisées.

Voici un atlas d’exemple pour le jeu de données MegaScience hébergé en tant que Static Space :

Fonctionnalités clés

  • Exploration interactive : Parcourez des millions d'embeddings avec une visualisation fluide et réactive
  • Calcul basé sur le navigateur : Calculez les embeddings et les projections localement sans envoyer de données à des serveurs externes
  • Filtrage croisé : Lier et filtrer les données à travers plusieurs colonnes de métadonnées
  • Fonctionnalités de recherche : Trouver des points de données similaires à une requête ou à un élément existant
  • Plusieurs options d’intégration : utilisation via ligne de commande, widgets Jupyter ou interface web

Prérequis

Tout d'abord, installez Embedding Atlas :

pip install embedding-atlas

Si vous prévoyez de charger des jeux de données privés depuis le Hugging Face Hub, vous devrez également vous connecter avec votre compte Hugging Face :

hf auth login

Chargement des jeux de données depuis le Hub

Embedding Atlas offre une intégration fluide avec le Hugging Face Hub, vous permettant de visualiser directement les embeddings de n'importe quel jeu de données.

Utiliser la ligne de commande

La façon la plus simple de visualiser un jeu de données Hugging Face est via l'interface en ligne de commande. Essayez-le avec le jeu de données IMDB :

# Load the IMDB dataset from the Hub
embedding-atlas stanfordnlp/imdb

# Specify the text column for embedding computation
embedding-atlas stanfordnlp/imdb --text "text"

# Load only a sample for faster exploration
embedding-atlas stanfordnlp/imdb --text "text" --sample 5000

Pour vos propres jeux de données, utilisez le même modèle :

# Load your dataset from the Hub
embedding-atlas username/dataset-name

# Load multiple splits
embedding-atlas username/dataset-name --split train --split test

# Specify custom text column
embedding-atlas username/dataset-name --text "content"

Utiliser Python et Jupyter

Vous pouvez également utiliser Embedding Atlas dans des notebooks Jupyter pour une exploration interactive :

from embedding_atlas.widget import EmbeddingAtlasWidget
from datasets import load_dataset
import pandas as pd

# Load the IMDB dataset from Hugging Face Hub
dataset = load_dataset("stanfordnlp/imdb", split="train[:5000]")

# Convert to pandas DataFrame
df = dataset.to_pandas()

# Create interactive widget
widget = EmbeddingAtlasWidget(df)
widget

Pour vos propres jeux de données :

from embedding_atlas.widget import EmbeddingAtlasWidget
from datasets import load_dataset
import pandas as pd

# Load your dataset from the Hub
dataset = load_dataset("username/dataset-name", split="train")
df = dataset.to_pandas()

# Create interactive widget
widget = EmbeddingAtlasWidget(df)
widget

Travailler avec des embeddings précalculés

Si vous disposez de jeux de données avec des embeddings précalculés, vous pouvez les charger directement :

# Load dataset with pre-computed coordinates
embedding-atlas username/dataset-name \
    --x "embedding_x" \
    --y "embedding_y"

# Load with pre-computed nearest neighbors
embedding-atlas username/dataset-name \
    --neighbors "neighbors_column"

Personnalisation des embeddings

Embedding Atlas utilise SentenceTransformers par défaut, mais prend en charge les modèles d’embedding personnalisés :

# Use a specific embedding model
embedding-atlas stanfordnlp/imdb \
    --text "text" \
    --model "sentence-transformers/all-MiniLM-L6-v2"

# For models requiring remote code execution
embedding-atlas username/dataset-name \
    --model "custom/model" \
    --trust-remote-code

Paramètres de projection UMAP

Ajustez la réduction de dimensionnalité à votre cas d’usage spécifique :

embedding-atlas stanfordnlp/imdb \
    --text "text" \
    --umap-n-neighbors 30 \
    --umap-min-dist 0.1 \
    --umap-metric "cosine"

Cas d'utilisation

Explorer les jeux de données textuels

Visualiser et explorer des corpus de texte pour identifier des clusters, des valeurs aberrantes et des motifs :

from embedding_atlas.widget import EmbeddingAtlasWidget
from datasets import load_dataset
import pandas as pd

# Load a text classification dataset
dataset = load_dataset("stanfordnlp/imdb", split="train[:5000]")
df = dataset.to_pandas()

# Visualize with metadata
widget = EmbeddingAtlasWidget(df)
widget

Ressources supplémentaires

Update on GitHub