PaddlePaddle / RocketQA

🚀 RocketQA, dense retrieval for information retrieval and question answering, including both Chinese and English state-of-the-art models.
Apache License 2.0
767 stars 128 forks source link

使用Faiss搭建问答系统时创建索引处理非常慢 #62

Open kenjs opened 2 years ago

kenjs commented 2 years ago

使用Faiss搭建问答系统的时候遇到一个问题,当文档文件种的内容过多的时候,创建索引的速度非常的慢 执行慢的代码是 para_embs = np.array(list(para_embs)) 请问有没有什么解决方案呢?

small-wang commented 2 years ago

使用Faiss搭建问答系统的时候遇到一个问题,当文档文件种的内容过多的时候,创建索引的速度非常的慢 执行慢的代码是 para_embs = np.array(list(para_embs)) 请问有没有什么解决方案呢?

遇到了类似的问题,在Windows CMD命令行运行faiss_example\index.py,list(para_embs)函数执行等待一段时间后直接退出,无法继续执行后续的方法。

1 2

procedure2012 commented 2 years ago

para的量大概有多少呢?如果文档数量过多可以将文档分成较小的几个部分,对每一部分搭建一个faiss用于召回,然后再将所有召回的topK按照打分合并后取出真正的topK。

kenjs commented 2 years ago

para的量大概有多少呢?如果文档数量过多可以将文档分成较小的几个部分,对每一部分搭建一个faiss用于召回,然后再将所有召回的topK按照打分合并后取出真正的topK。

文档QA数量在1万多的时候就很慢了,有没有增量索引的方法呢?

procedure2012 commented 2 years ago

这个可以去看一下faiss的文档里是不是提供了相关的函数支持。example里只是使用RocketQA+faiss索引的一种方式,faiss如果提供相关函数的话可以根据需求将rocketQA的输出组合成需要的索引方案,不一定严格按照example里的例子运行。

jyjy007 commented 1 year ago

用gpu才能快点,cpu是很慢的,我用gpu,100万文档需要3个小时。