# Embedding Atlas

[Embedding Atlas](https://apple.github.io/embedding-atlas/)은 대규모 임베딩 공간을 탐색하기 위한 인터랙티브 시각화 도구입니다. 임베딩과 관련 메타데이터를 함께 시각화하고 크로스 필터링 및 검색할 수 있어, 고차원 데이터의 패턴과 관계를 이해하는 데 도움이 됩니다. 모든 계산은 사용자의 컴퓨터에서 수행되므로 데이터의 프라이버시와 보안을 보장합니다.

Static Space로 호스팅된 [MegaScience](https://huggingface.co/datasets/MegaScience/MegaScience) 데이터셋에 대한 [예시 아틀라스](https://huggingface.co/spaces/davanstrien/megascience)는 다음과 같습니다:

  
    
  

## 주요 기능

- **인터랙티브 탐색**: 수백만 개의 임베딩을 매끄럽고 반응성이 좋은 시각화로 탐색
- **브라우저 기반 계산**: 데이터를 외부 서버로 전송하지 않고 로컬에서 임베딩과 프로젝션을 계산합니다
- **크로스 필터링**: 여러 메타데이터 열에 걸쳐 데이터를 연결하고 필터링
- **검색 기능**: 주어진 쿼리 또는 기존 항목과 유사한 데이터 포인트를 찾습니다
- **다양한 통합 옵션**: 명령줄, 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 사용

Jupyter 노트북에서 Embedding Atlas를 사용하여 인터랙티브 탐색을 수행할 수도 있습니다:

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

### 사전 계산된 임베딩 작업하기

pre-computed 임베딩이 포함된 데이터셋이 있는 경우, 이를 직접 로드할 수 있습니다:

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

