huggingface批量嵌入大csv

olhwl3o2  于 2023-11-14  发布在  其他
关注(0)|答案(2)|浏览(121)

我有一个大的csv文件(35m行),格式如下:

id, sentence, description

字符串
通常在推理模式下,我喜欢这样使用模型:

for iter_through_csv:
    model = SentenceTransformer('flax-sentence-embeddings/some_model_here', device=gpu_id)
    encs = model.encode(row[1], normalize_embeddings=True)


但是因为我有GPU,我想批处理它。但是,大小是大的(35米),所以我不想读内存和批处理。
我正在努力寻找一个模板来批量处理huggingface上的csv。什么是最佳的方法来做到这一点?

mcdcgff0

mcdcgff01#

我建议使用缓冲区从文件中阅读,例如,通过pandas,您只需跳过行并读取另一个batch_size行

pd.read_csv(path,
            skiprows=index * batch_size + 1,
            chunksize=batch_size,
            names=['data'])

字符串

z9gpfhce

z9gpfhce2#

你应该将csv转换为huggingface dataset。这允许你处理一个大的数据集,而不需要将整个数据集加载到内存中。你可以将你的嵌入函数沿着数据集Map来计算嵌入,而不必将所有嵌入都保存在内存中。

相关问题