跳到主要内容

在W&B中可视化嵌入

nbviewer

我们将上传数据到Weights & Biases,并使用Embedding Projector来使用常见的降维算法如PCA、UMAP和t-SNE来可视化嵌入。数据集是在Get_embeddings_from_dataset Notebook中创建的。

什么是Weights & Biases?

Weights & Biases 是一个机器学习平台,被OpenAI和其他机器学习团队用来更快地构建更好的模型。他们使用它来快速跟踪实验、评估模型性能、复现模型、可视化结果,并与同事分享发现。

1. 将数据记录到W&B

我们使用W&B Table来记录原始数据和嵌入数据。 每个评论都是一行新数据,1536个嵌入浮点数分别被命名为emb_{i}的列。

import pandas as pd
from sklearn.manifold import TSNE
import numpy as np
from ast import literal_eval

# 加载嵌入向量
datafile_path = "data/fine_food_reviews_with_embeddings_1k.csv"
df = pd.read_csv(datafile_path)

# 转换为浮点数的列表列表
matrix = np.array(df.embedding.apply(literal_eval).to_list())

import wandb

original_cols = df.columns[1:-1].tolist()
embedding_cols = ['emb_'+str(idx) for idx in range(len(matrix[0]))]
table_cols = original_cols + embedding_cols

with wandb.init(project='openai_embeddings'):
table = wandb.Table(columns=table_cols)
for i, row in enumerate(df.to_dict(orient="records")):
original_data = [row[col_name] for col_name in original_cols]
embedding_data = matrix[i].tolist()
table.add_data(*(original_data + embedding_data))
wandb.log({'openai_embedding_table': table})

2. 作为2D投影呈现

在导航到W&B运行链接后,我们点击表格右上角的⚙️图标,将”Render As:“更改为”Combined 2D Projection”。

示例:http://wandb.me/openai_embeddings