Hub documentation

Embedding Atlas

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Embedding Atlas

Embedding Atlas — это интерактивный инструмент визуализации для исследования больших пространств эмбеддингов. Он позволяет визуализировать, перекрёстно фильтровать и искать эмбеддинги вместе с соответствующими метаданными, что помогает выявлять закономерности и связи в многомерных данных. Все вычисления выполняются на вашем компьютере, что гарантирует конфиденциальность и безопасность ваших данных.

Вот пример атласа для набора данных MegaScience, размещённого в виде Static Space:

Ключевые возможности

  • Интерактивное исследование: навигация по миллионам эмбеддингов с плавной и отзывчивой визуализацией
  • Вычисления в браузере: вычисление эмбеддингов и проекций локально без отправки данных на внешние серверы
  • Перекрёстная фильтрация: связывание и фильтрация данных по нескольким столбцам метаданных
  • Возможности поиска: поиск похожих точек данных по заданному запросу или существующему элементу
  • Несколько вариантов интеграции: использование через командную строку, виджеты Jupyter или веб-интерфейс

Предварительные требования

Сначала установите Embedding Atlas:

pip install embedding-atlas

Если вы планируете загружать частные наборы данных из Hugging Face Hub, вам также потребуется войти в свой аккаунт Hugging Face:

hf auth login

Загрузка наборов данных из Hub

Embedding Atlas обеспечивает бесшовную интеграцию с Hugging Face Hub, позволяя напрямую визуализировать эмбеддинги из любого набора данных.

Использование командной строки

Самый простой способ визуализировать набор данных Hugging Face — через интерфейс командной строки. Попробуйте это на наборе данных 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

Для собственных наборов данных используйте тот же шаблон:

# 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"

Использование Python и Jupyter

Вы также можете использовать Embedding Atlas в Jupyter-ноутбуках для интерактивного исследования:

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

Для собственных наборов данных:

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

Работа с предварительно вычисленными эмбеддингами

Если у вас есть наборы данных с заранее вычисленными эмбеддингами, вы можете загрузить их напрямую:

# 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"

Настройка эмбеддингов

Embedding Atlas по умолчанию использует SentenceTransformers, но поддерживает пользовательские модели эмбеддингов:

# 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

Параметры проекции UMAP

Настройте снижение размерности под вашу конкретную задачу:

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

Сценарии использования

Исследование текстовых наборов данных

Визуализируйте и исследуйте текстовые корпуса, чтобы выявлять кластеры, выбросы и закономерности:

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

Дополнительные ресурсы

Update on GitHub