详细解读(三):文本嵌入表示和语义检索

  第三周-第四周:文本向量化及向量库搜索研究

 Faiss向量数据库搭建初览

参考:向量数据库-Faiss详解 - 知乎 (zhihu.com)

向量数据库Faiss是Facebook AI研究院开发的一种高效的相似性搜索聚类的库。它能够快速处理大规模数据,并且支持在高维空间中进行相似性搜索。

安装faiss向量数据库:
conda create -n faiss
conda activate faiss

#pip install faiss-cpu
#GPU版本
#pip install faiss-gpu

conda install -c conda-forge faiss-cpu
 导入faiss向量数据库
import numpy as np
import faiss
随机数据作为向量数据库
d = 128                            # dimension
nb = 10000                         # database size
np.random.seed(1234)             # make reproducible
xb = np.random.random((nb, d)).astype('float32')
创建索引
  • 索引是Faiss进行高效搜索的关键。

  • 选用暴力检索的方法FlatL2
  • L2代表构建的index采用的相似度度量方法为L2范数,即欧氏距离
index = faiss.IndexFlatL2(d)   # build the index
print(index.is_trained)
将数据添加到索引中
index.add(xb)                  # add vectors to the index
print(index.ntotal)
检索TopK相似query
  • 此时向量数据库已经准备好可以进行搜索了。
  • 生成5个查询向量,并且我们希望找到每个查询向量的最近的4个向量
nq = 5                          # number of query vectors
 k = 4                           # we want 4 similar vectors
 Xq = np.random.random((nq, d)).astype('float32')
 D, I = index.search(Xq, k)     # sanity check
 print('Xq is:\n',Xq)
 print('result is')
 print(I)
 print(D)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值