Embedding Atlas

Embedding Atlas

Embedding Atlas는 큰 임베딩 공간을 탐색하기 위한 인터랙티브 시각화 도구예요. 임베딩을 관련 메타데이터와 함께 시각화·교차 필터링·검색할 수 있게 해 주며, 고차원 데이터의 패턴과 관계를 이해하는 데 도움을 줘요. 모든 계산은 내 컴퓨터에서 이루어져 데이터가 비공개·안전하게 유지돼요.

출처: 문서

본문

Static Space로 호스팅된 MegaScience 데이터셋의 예시 아틀라스가 여기 있어요.

주요 기능

  • 인터랙티브 탐색: 부드럽고 반응성 좋은 시각화로 수백만 개의 임베딩을 탐색
  • 브라우저 기반 계산: 데이터를 외부 서버로 보내지 않고 임베딩과 프로젝션을 로컬에서 계산
  • 교차 필터링: 여러 메타데이터 컬럼에 걸쳐 데이터를 연결하고 필터링
  • 검색 기능: 주어진 쿼리나 기존 항목과 유사한 데이터 포인트 찾기
  • 다양한 통합 옵션: 커맨드 라인, Jupyter 위젯, 웹 인터페이스로 사용 가능

사전 요구 사항

먼저 Embedding Atlas를 설치하세요:

pip install embedding-atlas

Hugging Face 허브에서 비공개 데이터셋을 로드할 계획이라면 Hugging Face 계정으로 로그인도 필요해요:

hf auth login

허브에서 데이터셋 로드하기

Embedding Atlas는 Hugging Face 허브와 원활하게 통합되어 어떤 데이터셋의 임베딩도 직접 시각화할 수 있어요.

커맨드 라인 사용

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 사용

Jupyter 노트북에서도 인터랙티브 탐색을 위해 Embedding Atlas를 사용할 수 있어요:

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

추가 리소스

더 알아보기 (Learn more)