RUC-NLPIR / FlashRAG

⚡FlashRAG: A Python Toolkit for Efficient RAG Research
https://arxiv.org/abs/2405.13576
MIT License
891 stars 69 forks source link

index文件加载速度 #25

Closed ypw-lbj closed 1 month ago

ypw-lbj commented 1 month ago

wiki 数据集的index文件构建好后,然后进入测试过程,加载速度很慢,大家都这样吗?是不是我配置有问题?如何加速?

ignorejjj commented 1 month ago

默认使用的是Flat index,因为wiki比较大,所以整体的加载速度会很慢(1-2min左右)。

如果希望加速,可以考虑使用其他类型的Faiss index (比如PQ这种带有压缩的index),但是会影响检索检索的精度。具体可以参考faiss的相关文档: https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index

ypw-lbj commented 1 month ago

@

默认使用的是Flat index,因为wiki比较大,所以整体的加载速度会很慢(1-2min左右)。

如果希望加速,可以考虑使用其他类型的Faiss index (比如PQ这种带有压缩的index),但是会影响检索检索的精度。具体可以参考faiss的相关文档: https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index

我这里使用的全量数据,使用的默认脚本配置,加载要1个多小时,是不是不正常?

ignorejjj commented 1 month ago

正常来说只需要几分钟。如果确定机器本身的内存没问题的话,可以尝试使用conda重装faiss:

  1. 卸载目前的faiss
  2. 使用conda重新安装: conda install -c pytorch faiss-cpu=1.8.0
ypw-lbj commented 1 month ago

我这里wiki数据,采用e5模型 embedding后的index文件,大约有60G,和您那边一致吗?

ignorejjj commented 1 month ago

一致的,我这里index文件是60.13G.

ypw-lbj commented 1 month ago

您好,我测试一下,RAG method: Naive, model: llama3-8B, testset: nq, em: 27.8 (论文结果:22.6)。

另外我发现速度问题应该是query检索的速度慢, 一直卡在Retrieval process,其它环节没什么问题。 您可以告知下,以nq测试集为例,全流程测试大概需要多长时间?

谢谢。

ypw-lbj commented 1 month ago

正常来说只需要几分钟。如果确定机器本身的内存没问题的话,可以尝试使用conda重装faiss:

  1. 卸载目前的faiss
  2. 使用conda重新安装: conda install -c pytorch faiss-cpu=1.8.0

按照这个操作一下,检索效率提升显著,可以在4分钟内完成检索。

ignorejjj commented 1 month ago

1张a100在NQ全流程上花费大概在20分钟内,检索花费时间在2-3分钟。

DaoD commented 1 month ago

@

默认使用的是Flat index,因为wiki比较大,所以整体的加载速度会很慢(1-2min左右)。 如果希望加速,可以考虑使用其他类型的Faiss index (比如PQ这种带有压缩的index),但是会影响检索检索的精度。具体可以参考faiss的相关文档: https://github.com/facebookresearch/faiss/wiki/Guidelines-to-choose-an-index

我这里使用的全量数据,使用的默认脚本配置,加载要1个多小时,是不是不正常?

需要注意的是我们使用了全闪存NVMe硬盘,读写速度比一般的磁盘要快很多,这对整体的时间也会有较大影响。

ypw-lbj commented 1 month ago

好的, 感谢!