我有一个大的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。什么是最佳的方法来做到这一点?
2条答案
按热度按时间mcdcgff01#
我建议使用缓冲区从文件中阅读,例如,通过pandas,您只需跳过行并读取另一个batch_size行
字符串
z9gpfhce2#
你应该将csv转换为huggingface dataset。这允许你处理一个大的数据集,而不需要将整个数据集加载到内存中。你可以将你的嵌入函数沿着数据集Map来计算嵌入,而不必将所有嵌入都保存在内存中。