方法 1:使用 FAISS 量化加速大规模搜索
适用场景: 你有 百万级以上向量,需要高效搜索。
FAISS 主要有以下量化方法:
- PQ(Product Quantization):适用于大规模向量,存储更少,加速搜索。
- IVF(Inverted File Index)+ PQ:适用于海量数据,先聚类再量化,提高搜索效率。
- HNSW(Hierarchical Navigable Small World):适用于 小数据量但要高查询速度(几百万以内)。
代码示例
1. 用 Product Quantization (PQ) 降低向量存储和计算
import faiss
import numpy as np
# 生成随机向量(示例数据)
d = 384 # 向量维度,MiniLM 的默认输出维度
n = 1000000 # 向量数量
database_embeddings = np.random.rand(n, d).astype('float32')
# 创建 FAISS PQ 索引 (d=384,使用 32 个子空间量化)
m = 32 # 设定 PQ 子空间数量
index = faiss.IndexPQ(d, m, 8) # 8-bit 量化
index.train(database_embeddings) # 训练索引
index.add(database_embeddings) # 添加向量
# 查询
query_vector = np.random.rand(1, d).astype('float32')
distances, ids = index.search(query_vect

最低0.47元/天 解锁文章
1221

被折叠的 条评论
为什么被折叠?



