跳到主要内容

Embedding Atlas

Embedding Atlas 是一个用于探索大型嵌入空间的交互式可视化工具。它使你能够可视化、交叉筛选和搜索嵌入以及相关的元数据,帮助你理解高维数据中的模式和关系。所有计算都在你的计算机上进行,确保你的数据保持私密和安全。

这是一个 MegaScience 数据集的示例 atlas,托管为静态 Space:

主要功能

  • 交互式探索:通过流畅、响应迅速的可视化浏览数百万个嵌入
  • 基于浏览器的计算:在本地计算嵌入和投影,无需将数据发送到外部服务器
  • 交叉筛选:在多个元数据列之间链接和筛选数据
  • 搜索功能:查找与给定查询或现有项目相似的数据点
  • 多种集成选项:通过命令行、Jupyter widgets 或 Web 界面使用

先决条件

首先,安装 Embedding Atlas:

pip install embedding-atlas

如果你计划从 Hugging Face Hub 加载私有数据集,你还需要使用你的 Hugging Face 账户登录

hf auth login

从 Hub 加载数据集

Embedding Atlas 与 Hugging Face Hub 无缝集成,允许你直接可视化任何数据集的嵌入。

使用命令行

可视化 Hugging Face 数据集的最简单方法是通过命令行界面。使用 IMDB 数据集试试:

# 从 Hub 加载 IMDB 数据集
embedding-atlas stanfordnlp/imdb

# 指定用于嵌入计算的文本列
embedding-atlas stanfordnlp/imdb --text "text"

# 仅加载样本以加快探索速度
embedding-atlas stanfordnlp/imdb --text "text" --sample 5000

对于你自己的数据集,使用相同的模式:

# 从 Hub 加载你的数据集
embedding-atlas username/dataset-name

# 加载多个切分
embedding-atlas username/dataset-name --split train --split test

# 指定自定义文本列
embedding-atlas username/dataset-name --text "content"

使用 Python 和 Jupyter

你也可以在 Jupyter notebooks 中使用 Embedding Atlas 进行交互式探索:

from embedding_atlas.widget import EmbeddingAtlasWidget
from datasets import load_dataset
import pandas as pd

# 从 Hugging Face Hub 加载 IMDB 数据集
dataset = load_dataset("stanfordnlp/imdb", split="train[:5000]")

# 转换为 pandas DataFrame
df = dataset.to_pandas()

# 创建交互式 widget
widget = EmbeddingAtlasWidget(df)
widget

对于你自己的数据集:

from embedding_atlas.widget import EmbeddingAtlasWidget
from datasets import load_dataset
import pandas as pd

# 从 Hub 加载你的数据集
dataset = load_dataset("username/dataset-name", split="train")
df = dataset.to_pandas()

# 创建交互式 widget
widget = EmbeddingAtlasWidget(df)
widget

使用预计算的嵌入

如果你有预计算嵌入的数据集,可以直接加载它们:

# 加载具有预计算坐标的数据集
embedding-atlas username/dataset-name \
--x "embedding_x" \
--y "embedding_y"

# 加载具有预计算最近邻的数据集
embedding-atlas username/dataset-name \
--neighbors "neighbors_column"

自定义嵌入

Embedding Atlas 默认使用 SentenceTransformers,但支持自定义嵌入模型:

# 使用特定的嵌入模型
embedding-atlas stanfordnlp/imdb \
--text "text" \
--model "sentence-transformers/all-MiniLM-L6-v2"

# 对于需要远程代码执行的模型
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

# 加载文本分类数据集
dataset = load_dataset("stanfordnlp/imdb", split="train[:5000]")
df = dataset.to_pandas()

# 使用元数据可视化
widget = EmbeddingAtlasWidget(df)
widget

其他资源