# Embedding Atlas

[Embedding Atlas](https://apple.github.io/embedding-atlas/) — это интерактивный инструмент визуализации для исследования больших пространств эмбеддингов. Он позволяет визуализировать, перекрёстно фильтровать и искать эмбеддинги вместе с соответствующими метаданными, что помогает выявлять закономерности и связи в многомерных данных. Все вычисления выполняются на вашем компьютере, что гарантирует конфиденциальность и безопасность ваших данных.

Вот [пример атласа](https://huggingface.co/spaces/davanstrien/megascience) для набора данных [MegaScience](https://huggingface.co/datasets/MegaScience/MegaScience), размещённого в виде Static Space:

  
    
  

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

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

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

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

```bash
pip install embedding-atlas
```

Если вы планируете загружать частные наборы данных из Hugging Face Hub, вам также потребуется [войти в свой аккаунт Hugging Face](/docs/huggingface_hub/quick-start#login):

```bash
hf auth login
```

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

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

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

Самый простой способ визуализировать набор данных Hugging Face — через интерфейс командной строки. Попробуйте это на наборе данных IMDB:

```bash
# 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
```

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

```bash
# 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-ноутбуках для интерактивного исследования:

```python
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
```

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

```python
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
```

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

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

```bash
# 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](https://huggingface.co/sentence-transformers), но поддерживает пользовательские модели эмбеддингов:

```bash
# 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

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

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

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

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

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

```python
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
```

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

- [Репозиторий Embedding Atlas на GitHub](https://github.com/apple/embedding-atlas)
- [Официальная документация](https://apple.github.io/embedding-atlas/)
- [Интерактивная демонстрация](https://apple.github.io/embedding-atlas/upload/)
- [Справочник по командной строке](https://apple.github.io/embedding-atlas/tool.html)

