System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种高性能的分布式海量向量相似检索系统及方法技术方案_技高网

一种高性能的分布式海量向量相似检索系统及方法技术方案

技术编号:41136156 阅读:3 留言:0更新日期:2024-04-30 18:07
本发明专利技术公开了一种高性能的分布式海量向量相似检索系统及方法,包括Faiss Driver、若干Faiss Worker及Etcd系统;Faiss Driver用于接收用户端的查询请求,并将查询请求进行代理转发至选定的Faiss Worker,被配置为执行加载配置Etcd监听、退出前置处理、服务发现及主从选举任务;Faiss Worker为检索系统中执行查询计算的单元,被配置为执行含配置管理、停机处理、定时任务、加载索引及查询计算任务,用于计算相似向量检索及更新在线或离线索引文件;Etcd系统用于保存Faiss Worker列表、Faiss Worker的主从状态、Faiss Worker的健康状态、索引文件的外部存储模块地址及索引文件列表。本发明专利技术引入代理转发服务机制以及主从节点注册机制,可高效地处理向量的查询计算请求。

【技术实现步骤摘要】

本专利技术属于向量检索,特别涉及一种高性能的分布式海量向量相似检索系统及方法


技术介绍

1、随着深度学习的使用,在图像检索、人脸对比、导航推荐等应用场景的系统的架构变成了如dssm(deep structured semantic model,深层结构语音模型,又称双塔模型)等架构,通过dnn(deep neural network,深度神经网络)将用户特征映射到用户特征向量,特征向量可以基于embedding技术生成,用于表示深层特征信息。如推荐系统中,将用户和物品映射到同一向量空间,然后采用相似度计算的方式进行向量索引召回距离最近的若干个向量,即去物品向量库里查找特征(embedding)最相似的物品,从而为用户推荐其兴趣偏好的物品。

2、faiss是一个开源的ai相似性搜索工具,针对聚类和相似性搜索,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前较为成熟的近似近邻搜索库,能使开发者快速搜索相似多媒体文件。公开号为cn109711298a的中国专利技术专利公开了一种基于faiss的高效人脸特征值检索的方法和系统,基于faiss开源的ai相似性搜索工具,开发出人脸检索模块,从人脸特征值存储模块中检索出与待比对人脸特征值相似度比对分值最高的脸部图像的唯一标识、以及对应的比对分值,再执行检索结果判断,以加快人脸特征值的检索速度;同时,在检索过程中,不断优化人脸特征值库,减少其中重复度较高的人脸图像,挑选出最具有典型性的人脸图像。

3、该方法使用faiss工具可以高效的实现向量特征的相似计算,为人脸比对提供帮助。但由于faiss工具是基于内存的,该方法不支持横向扩展;若大量数据的推荐场景下,向量库的规模将是海量的,且向量维度一般可以达到512、1024,甚至更大,仅仅依靠该方法中所涉及的操作无法满足快速的相似向量检索服务。


技术实现思路

1、本专利技术提供一种高性能的分布式海量向量相似检索系统及方法,旨在解决现有技术不支持横向扩展及在海量向量库的情况下性能不足的问题。

2、为解决上述技术问题,本专利技术提出的检索系统基于faiss数据库,包括faissdriver、若干faiss worker及etcd系统;

3、所述faiss driver用于接收用户端的查询请求,并将所述查询请求进行代理转发至选定的faiss worker,被配置为执行加载配置etcd监听、退出前置处理、服务发现及主从选举任务;

4、所述faiss worker为检索系统中执行查询计算的单元,被配置为执行含配置管理、停机处理、定时任务、加载索引及查询计算任务,用于计算相似向量检索及更新在线或离线索引文件;

5、所述etcd系统用于保存faiss worker列表、faiss worker的主从状态、faissworker的健康状态、索引文件的外部存储模块地址及索引文件列表。

6、优选地,所述检索系统还包括训练模块,所述训练模块为faiss trainer,用于进行向量检索模型的训练,将训练好的索引文件供faiss worker使用。

7、优选地,所述加载配置etcd监听具体为:faiss driver加载etcd服务地址,监听etcd中faiss worker的主从变化及生存状态;

8、所述退出前置处理具体为:当由于人为因素或服务器资源问题导致服务失败而关闭或重启时,faiss driver对faiss worker触发通知;

9、所述服务发现具体为:faiss driver监听faiss worker的状态并对检索的请求进行转发;

10、所述主从选举操作具体为:faiss driver根据faiss worker集群的状态选举主节点,并将主节点进行注册操作,将faiss worker主从节点地址更新至etcd中。

11、优选地,所述主从选举采用的算法为raft算法。

12、优选地,所述faiss driver还被配置为执行日志初始化操作,具体为:faissdriver在服务启动时初始化日志文件,用于记录faiss driver请求相关的信息和请求操作。

13、优选地,所述配置管理具体为:faiss worker加载或更新配置文件,以获取当前集群索引文件的存储地址、索引文件列表及索引文件;

14、所述停机处理具体为:faiss worker接受到faiss driver发出的停机信号时,触发停机处理操作并保存索引文件;

15、所述定时任务具体为:faiss worker定时向faiss driver汇报状态;

16、所述加载索引具体为:faiss worker在启动执行查询计算任务时,首先加载索引文件。

17、优选地,所述配置管理任务中加载或更新的配置文件保存于etcd系统。

18、优选地,所述定时任务的心跳时间设置为3秒。

19、相应的,本专利技术还提出一种高性能的分布式海量向量相似检索方法,所述方法使用上述的检索系统,包括以下步骤:

20、s1:客户端指定待检索的向量库名称及向量维度,通过faiss driver提供的接口向faiss driver发起查询请求;

21、s2:所述faiss driver根据etcd系统中保存的faiss worker状态,将查询任务发送至选定的faiss worker进行向量检索计算;

22、s3:接收任务faiss worker加载索引文件,将向量检索计算的结果返回faissdriver,由faiss driver转发至客户端。

23、优选地,所述步骤s2中选择faiss worker的因素包括:

24、服务发现机制,所述服务发现机制基于etcd或consul的服务注册表,使得faissdriver可以动态地发现当前可用的faiss worker节点;

25、负载均衡策略,faiss driver基于faiss worker节点的当前负载情况及性能指标将查询请求分散到不同的faiss worker上;

26、节点健康状态,faiss driver在选择faiss worker之前,进行节点的健康检查,包括faiss worker是否在线、是否能够正常响应查询请求,将出现故障的节点排除在负载均衡的选择范围之外;

27、查询路由策略,根据设定的路由策略将特定的查询任务指派到特定的faissworker。

28、与现有技术相比,本专利技术具有以下技术效果:

29、1.本专利技术提出的海量向量相似检索系统引入代理转发服务机制以及主从节点注册机制,faiss driver为faiss server的proxy代理服务,faiss driver不负责实际的向量相似计算以及在线和离线索引文件的更新同步操作,faiss driver实际对外主要负责query请求的代理转发本文档来自技高网...

【技术保护点】

1.一种高性能的分布式海量向量相似检索系统,所述检索系统基于Faiss数据库,其特征在于,包括Faiss Driver、若干Faiss Worker及Etcd系统;

2.根据权利要求1所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述检索系统还包括训练模块,所述训练模块为Faiss Trainer,用于进行向量检索模型的训练,将训练好的索引文件供Faiss Worker使用。

3.根据权利要求1所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述主从选举采用的算法为Raft算法。

4.根据权利要求1所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述Faiss Driver还被配置为执行日志初始化操作,具体为:Faiss Driver在服务启动时初始化日志文件,用于记录Faiss Driver请求相关的信息和请求操作。

5.根据权利要求1所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述配置管理具体为:Faiss Worker加载或更新配置文件,以获取当前集群索引文件的存储地址、索引文件列表及索引文件;

6.根据权利要求5所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述配置管理任务中加载或更新的配置文件保存于Etcd系统。

7.根据权利要求5所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述定时任务的心跳时间设置为3秒。

8.一种高性能的分布式海量向量相似检索方法,其特征在于,所述方法使用如权利要求1-7任一项所述的检索系统,包括以下步骤:

9.根据权利要求8所述的一种高性能的分布式海量向量相似检索方法,其特征在于,所述步骤S2中选择Faiss Worker的因素包括:

...

【技术特征摘要】

1.一种高性能的分布式海量向量相似检索系统,所述检索系统基于faiss数据库,其特征在于,包括faiss driver、若干faiss worker及etcd系统;

2.根据权利要求1所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述检索系统还包括训练模块,所述训练模块为faiss trainer,用于进行向量检索模型的训练,将训练好的索引文件供faiss worker使用。

3.根据权利要求1所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述主从选举采用的算法为raft算法。

4.根据权利要求1所述的一种高性能的分布式海量向量相似检索系统,其特征在于,所述faiss driver还被配置为执行日志初始化操作,具体为:faiss driver在服务启动时初始化日志文件,用于记录faiss driver请求相关的...

【专利技术属性】
技术研发人员:黄海波黄俊杰黄天财邓冬瑞洪振余承超郑颖罗浩阮争志李庆勇
申请(专利权)人:厦门她趣信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1