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は、大規模な埋め込み空間を探索するためのインタラクティブな可視化ツールです。埋め込みと関連するメタデータを同時に可視化、クロスフィルタリング、検索できるため、高次元データ内のパターンや関係を把握するのに役立ちます。すべての計算はローカルコンピュータ上で行われるため、データのプライバシーとセキュリティが確保されます。

Static SpaceとしてホストされているMegaScienceデータセットのアトラスの例を以下に示します:

主な機能

  • インタラクティブな探索: 数百万の埋め込みベクトルを、スムーズでレスポンスの優れたビジュアライゼーションでナビゲート
  • ブラウザベースの計算: データを外部サーバーに送信せずに、ローカルで埋め込みと射影を計算します
  • クロスフィルタリング:複数のメタデータ列にまたがるデータのリンクとフィルタリング
  • 検索機能: 指定されたクエリまたは既存のアイテムに類似したデータポイントを見つける
  • 複数の統合オプション:コマンドライン、Jupyter ウィジェット、または Web インターフェースを通じて使用できます

前提条件

まず、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を使用

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のカスタマイズ

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