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)
- Embedding Atlas 공식 문서에서 모든 옵션을 배울 수 있어요.
- 허브의 데이터셋에서 시각화할 데이터셋을 찾아보세요.