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
