在 Weights and Biases 中可视化嵌入

2023年2月1日
在 Github 中打开

什么是 Weights & Biases?

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

1. 将数据记录到 W&B

我们使用原始数据和嵌入创建一个 W&B 表格。每条评论都是新的一行,1536 个嵌入浮点数被赋予它们自己的列,名为 emb_{i}

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

# Load the embeddings
datafile_path = "data/fine_food_reviews_with_embeddings_1k.csv"
df = pd.read_csv(datafile_path)

# Convert to a list of lists of floats
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})

导航到 W&B 运行链接后,我们点击表格右上角的 ⚙️ 图标,并将“渲染为:”更改为“组合 2D 投影”。