Faiss向量检索工具使用
- 2023年2月27日,马骁勇创建
提纲:
- 向量检索工具简介(是什么,做什么),Faiss库简介。
- Faiss库的基本组件。
- 用Faiss库实现简单的文本匹配。
向量检索简单说是以向量为输入,希望在向量库中查询到最相近的目标向量。向量检索可以用于文本检索、文本匹配、图文检索等,主要是依靠深度学习模型的表示向量能够获得相比普通字符更大的表示空间,进而获得更精准的检索效果。
上图为使用向量检索工具构建检索模型的基本流程:
- 训练一个向量表示模型。
- 对需要检索的目标进行向量表示,生成向量索引库。
- 对于新的检索,采用同样的表示模型生成表示向量,通过向量检索工具查询距离最近的向量。
Faiss向量检索库使用
安装Faiss:pip install faiss-cpu
或GPU版本(默认使用CPU)pip install faiss-gpu
。
本例中,向量的维度为64,数据库规模为100000,待检索的查询词数量为10000,xb为数据库的对应向量库,维度100000*64,xq为查询词的向量表示,维度10000*64。
import numpy as np
d = 64 # dimension
nb = 100000 # database size
nq = 10000 # nb of queries
np.