FAISS 使用量化和蒸馏模型加速 SentenceTransformer的推理

方法 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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

livepy

老码农,赋闲在家要吃饭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值