CN117725076A - 一种基于Faiss的分布式海量相似向量增量训练系统 - Google Patents

一种基于Faiss的分布式海量相似向量增量训练系统 Download PDF

Info

Publication number
CN117725076A
CN117725076A CN202410139057.3A CN202410139057A CN117725076A CN 117725076 A CN117725076 A CN 117725076A CN 202410139057 A CN202410139057 A CN 202410139057A CN 117725076 A CN117725076 A CN 117725076A
Authority
CN
China
Prior art keywords
training
faisstrainer
index file
feature vector
faiss
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410139057.3A
Other languages
English (en)
Other versions
CN117725076B (zh
Inventor
黄天财
黄俊杰
黄海波
刘佳彬
洪振
余承超
吕金松
王庭杰
李阳
张争旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Shequ Information Technology Co ltd
Original Assignee
Xiamen Huanqu Information Technology Co ltd
Xiamen Seal Cloud Information Technology Co ltd
Xiamen Shequ Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Huanqu Information Technology Co ltd, Xiamen Seal Cloud Information Technology Co ltd, Xiamen Shequ Information Technology Co ltd filed Critical Xiamen Huanqu Information Technology Co ltd
Priority to CN202410139057.3A priority Critical patent/CN117725076B/zh
Publication of CN117725076A publication Critical patent/CN117725076A/zh
Application granted granted Critical
Publication of CN117725076B publication Critical patent/CN117725076B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于Faiss的分布式海量相似向量增量训练系统,包括FaissTrainer、FaissWorker及FaissDriver,所述FaissTrainer为Faiss训练组件,所述FaissWorker为Faiss检索组件,所述FaissDriver为Faiss代理组件。所述FaissTrainer包括批量训练模块和增量训练模块,所述增量训练模块用于对某一业务场景实时新产生的特征向量在其最新索引文件的基础上进行增量训练,并更新索引文件。本发明能够支持在线实时更新训练特征向量库,并且多节点可以同步更新最新索引文件,保证索引文件的一致性,且无需停机全量重新训练特征向量库占用过多时间,降低企业成本。

Description

一种基于Faiss的分布式海量相似向量增量训练系统
技术领域
本发明属于数据检索领域,特别涉及一种基于Faiss的分布式海量相似向量增量训练系统。
背景技术
现有技术中的分布式特征向量训练系统,在高并发访问时,响应时间较为缓慢,或是存在宕机的情况,无法对在线的实时索引特征向量数据和离线的批量索引特征向量数据进行一致更新,导致索引特征向量数据不一致,影响训练系统的可靠性。并且,目前在现有技术中存在一定的问题,无论是Google的双塔模型或基于双塔模型思想的衍生模型,为了能够对新物品生成特征向量,需要频繁的训练模型,而这将同时改变旧物品的Embedding,需要频繁更新物品特征向量库。因此亟需一种能够在线支持特征向量库的增删改、满足在线增量训练的海量相似向量增量训练系统。
公开号为“CN113449132A”的中国专利公开了一种向量检索方法及装置,在获取到目标向量后,根据预先训练的分布预测模型,得到了反映相似向量在每个聚类分区中的分布概率的预测分布,根据预测分布,将表征概率较大的若干个聚类分区作为检索分区,根据预测分布确定检索分区,使得确定的检索分区更为准确,提升了检索精度。该发明同Faiss工具一样,使用聚类计算的方法快速实现相似向量的分区和计算功能,但该方法对中小企业开发成本较高,不宜采用。并且对于不同业务场景,聚类计算需要的方法也存在不同,Faiss工具支持欧式距离和内积的计算方法,可以对不同场景和不同特征向量规模使用不同的聚类计算方法,大大提高效率。
发明内容
本发明提供一种基于Faiss的分布式海量相似向量增量训练系统,旨在解决现有检索技术的训练成本较高的问题。
为解决上述技术问题,本发明提出了一种基于Faiss的分布式海量相似向量增量训练系统,包括FaissTrainer、FaissWorker及FaissDriver,所述FaissTrainer为Faiss训练组件,其用于对特征向量库文件进行训练,生成或更新索引文件,所述FaissWorker为Faiss检索组件,其用于相似特征向量检索计算、在线和离线索引文件的更新,所述FaissDriver为Faiss代理组件,其用于获取特征向量检索查询请求,并进行代理转发。
所述FaissTrainer包括批量训练模块和增量训练模块,批量训练模块用于对某一业务场景的特征向量库里的特征向量进行批量训练,并生成索引文件,增量训练模块用于对某一业务场景实时新产生的特征向量在其最新索引文件的基础上进行增量训练,并更新索引文件。
优选的,所述FaissTrainer还包括日志初始化模块、加载配置Etcd监听模块、退出前置处理模块与任务管理模块。
所述日志初始化模块用于FaissTrainer服务启动时初始化日志文件,记录FaissTrainer请求相关训练日志和训练请求操作日志。
所述加载配置Etcd监听模块用于FaissTrainer加载Etcd服务地址,获取Etcd中索引文件列表以及各个索引名称对应的特征向量维度。
所述退出前置处理模块用于服务失败关闭、重启时对FaissTrainer服务器触发通知。
所述任务管理模块用于FaissTrainer的HeartBeat心跳定时任务,通过HeartBeat心跳定时任务实时检测FaissDriver的网络状态。
优选的,所述批量训练模块的批量训练方式具体包括以下步骤:
A1:通过用户客户端上传特征向量库文件到HDFS集群。
A2:执行训练通知脚本,通知FaissTrainer进行训练操作。
A3:FaissTrainer接收到训练通知并进行校验,校验该训练通知是否在FaissTrainer中已经注册,若未注册,则FaissTrainer从HDSF集群中拉取特征向量库文件至服务器本地进行训练,训练完成后,FaissTrainer将训练好的索引文件保存至本地。
A4:FaissTrainer通知FaissDriver,再由FaissDriver通知FaissWorker进行同步和更新本地索引文件,并将最新索引文件上传同步至HDFS集群,从而完成批量训练。
优选的,所述批量训练模块在进行批量训练时,FaissTrainer进行全量更新加锁,避免训练更新导致索引文件不一致。
优选的,所述训练通知脚本的参数包括索引名称和特征向量库文件中的特征向量维度。
优选的,所述增量训练模块的增量训练方式具体包括以下步骤:
B1:通过用户客户端将新增特征向量数据推送至所述FaissTrainer在线训练所对应的消息队列。
B2:所述FaissTrainer加载Etcd索引文件列表,并且从消息队列拉取增量更新消息,获取所述增量更新消息中的新增特征向量,从加载的所述Etcd索引文件列表中检索是否存在新增特征向量对应的索引文件,若不存在,则所述FaissTrainer首先从HDFS集群中拉取该新增特征向量索引文件,并与本地索引文件进行比对是否一致,若存在不一致,则选取新增特征向量索引文件,进行更新训练。
B3:所述FaissTrainer将B2更新训练得到的索引文件保存到本地,替换原有的索引文件。
B4:所述FaissTrainer通知所述FaissDriver,再由所述FaissDriver通知所述FaissWorker进行同步和更新本地索引文件,并将最新索引文件上传同步至HDFS集群,从而完成增量训练。
与现有技术相比,本发明具有以下技术效果:
本发明提供一种基于Faiss的分布式海量相似向量增量训练系统,该系统基于Faiss检索工具开发出高性能、分布式、支持增删改查的海量相似特征向量检索服务系统平台,支持在线实时更新训练特征向量库,并且多节点可以同步更新最新索引文件,保证索引文件的一致性,无需停机全量重新训练特征向量库占用过多时间,降低企业的训练成本。
附图说明
图1是本发明所述的一种基于Faiss的分布式海量相似向量增量训练系统的整体结构图;
图2是本发明所述的FaissTrainer架构图;
图3是本发明所述的FaissTrainer批量训练架构图;
图4是本发明所述的同步索引文件架构图;
图5是本发明所述的FaissTrainer增量训练架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例,并参照附图,对本发明的技术方案进行清楚、完整地描述。
实施例
本发明提出了一种基于Faiss的分布式海量相似向量增量训练系统,参阅图1所示,包括FaissTrainer、FaissWorker及FaissDriver,所述FaissTrainer为Faiss训练组件,其用于对特征向量库文件进行训练,生成或更新索引文件,所述FaissWorker为Faiss检索组件,其用于相似特征向量检索计算、在线和离线索引文件的更新,所述FaissDriver为Faiss代理组件,其用于获取特征向量检索查询请求,并进行代理转发。FaissTrainer是与FaissDriver进行通信的。所述FaissDriver为FaissWorker的代理角色。
参阅图2所示,所述FaissTrainer包括批量训练模块和增量训练模块,批量训练模块用于对某一业务场景的特征向量库里的特征向量进行批量训练,并生成索引文件,增量训练模块用于对某一业务场景实时新产生的特征向量在其最新索引文件的基础上进行增量训练,并更新索引文件。
进一步的,所述FaissTrainer还包括日志初始化模块、加载配置Etcd监听模块、退出前置处理模块与任务管理模块。
所述日志初始化模块用于FaissTrainer服务启动时初始化日志文件,记录FaissTrainer请求相关训练日志和训练请求操作日志。
所述加载配置Etcd监听模块用于FaissTrainer加载Etcd服务地址,获取Etcd中索引文件列表以及各个索引名称对应的特征向量维度、特征向量聚类相似计算方法,如内积、欧式距离。
所述退出前置处理模块用于FaissTrainer服务由于人为因素或服务器资源问题导致服务失败关闭、重启时对FaissTrainer服务器触发通知,FaissTrainer能够及时做出FaissIndex索引文件的同步保存工作,保证FaissServer服务的原子一致性,能够提供可靠的服务。
所述任务管理模块用于FaissTrainer的HeartBeat心跳定时任务,具体来说,本发明实例HeartBeat心跳定时任务为3秒,通过HeartBeat心跳定时任务实时检测FaissDriver的网络状态。
进一步的,参阅图3所示,所述批量训练模块的批量训练方式具体包括以下步骤:
A1:通过用户客户端Client上传特征向量库文件到HDFS集群,所述特征向量库文件格式为“索引id,向量Embeddeding”构成,其文件格式可以任意,本发明实例中为csv格式文件,所述用户客户端为开发者用户客户端。
A2:在用户上传完成特征向量库文件之后,执行训练通知脚本Notifier,通知FaissTrainer进行训练操作。训练通知脚本Notifier中包含两个重要参数:索引名和特征向量库文件中特征向量维度。其中索引名对应的csv文件名称在FaissTrainer中进行注册。
A3:FaissTrainer接收到训练通知并进行校验,校验该训练通知是否在FaissTrainer中已经注册,若未注册,则FaissTrainer从HDSF集群中拉取特征向量库文件至服务器本地进行训练,训练完成后,FaissTrainer将训练好的索引文件保存至本地,替换掉原有的索引文件。
A4:参阅图4所示,FaissTrainer在完成训练和索引文件保存之后,将训练成功完成的消息通知FaissDriver。此时FaissDriver会向FaissWorker发出通知要求FaissWorker进行同步索引操作。所述FaissWorker将本地保存的FaissTrainer最新的索引文件替换本地索引文件,然后将最新索引文件上传同步到HDFS集群从而完成批量训练。
进一步的,所述批量训练模块在进行批量训练时,FaissTrainer进行全量更新加锁,避免训练更新导致索引文件不一致。
进一步的,所述训练通知脚本的参数包括索引名称和特征向量库文件中的特征向量维度。
进一步的,参阅图5所示,所述增量训练模块的增量训练方式具体包括以下步骤:
B1:通过用户客户端将新增特征向量数据推送至所述FaissTrainer在线训练所对应的消息队列。例如在电商推荐场景下,当上架一个新的商品,通过推荐算法模型为其生成了特征向量数据,此时由用户客户端Client将数据推送至Faiss在线训练所对应的消息队列,本发明实施例所采用的消息队列为Kafka,但不限于使用Kafka消息工具。
所述推送的消息应包括如下内容:特征向量数据、索引名称、更新操作。所述更新操作包括新增和删除,本发明的FaissTrainer的在线更新训练功能支持增加和删除,满足企业对特征向量库的增删训练要求。
B2:所述FaissTrainer加载Etcd索引文件列表,并且作为消费者从消息队列拉取增量更新消息,获取所述增量更新消息中的新增特征向量,从加载的所述Etcd索引文件列表中检索是否存在新增特征向量对应的索引文件,若不存在,则所述FaissTrainer首先从HDFS集群中拉取该新增特征向量索引文件,并与本地索引文件进行比对是否一致,若存在不一致,则选取新增特征向量索引文件,在此基础上进行新增或删除更新训练。
B3:所述FaissTrainer将B2更新训练得到的索引文件保存到本地,替换原有的索引文件。
B4:参阅图4所示,FaissTrainer在完成训练和索引文件保存之后,将训练成功完成的消息通知FaissDriver。此时FaissDriver会向FaissWorker发出通知要求FaissWorker进行同步索引操作。所述FaissWorker将本地保存的FaissTrainer最新的索引文件替换本地索引文件,然后将最新索引文件上传同步到HDFS集群从而完成增量训练。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (5)

1.一种基于Faiss的分布式海量相似向量增量训练系统,其特征在于,包括FaissTrainer、FaissWorker及FaissDriver,所述FaissTrainer为Faiss训练组件,其用于对特征向量库文件进行训练,生成或更新索引文件,所述FaissWorker为Faiss检索组件,其用于相似特征向量检索计算、在线和离线索引文件的更新,所述FaissDriver为Faiss代理组件,其用于获取特征向量检索查询请求,并进行代理转发;
所述FaissTrainer包括批量训练模块和增量训练模块,所述批量训练模块用于对某一业务场景的特征向量库里的特征向量进行批量训练,并生成索引文件,所述增量训练模块用于对某一业务场景实时新产生的特征向量在其最新索引文件的基础上进行增量训练,并更新索引文件;
所述增量训练模块的增量训练方式具体包括以下步骤:
B1:通过用户客户端将新增特征向量数据推送至所述FaissTrainer在线训练所对应的消息队列;
B2:所述FaissTrainer加载Etcd索引文件列表,并且从消息队列拉取增量更新消息,获取所述增量更新消息中的新增特征向量,从加载的所述Etcd索引文件列表中检索是否存在新增特征向量对应的索引文件,若不存在,则所述FaissTrainer首先从HDFS集群中拉取该新增特征向量索引文件,并与本地索引文件进行比对是否一致,若存在不一致,则选取新增特征向量索引文件,进行更新训练;
B3:所述FaissTrainer将B2更新训练得到的索引文件保存到本地,替换原有的索引文件;
B4:所述FaissTrainer通知所述FaissDriver,再由所述FaissDriver通知所述FaissWorker进行同步和更新本地索引文件,并将最新索引文件上传同步至HDFS集群,从而完成增量训练。
2.根据权利要求1所述的一种基于Faiss的分布式海量相似向量增量训练系统,其特征在于,所述FaissTrainer还包括日志初始化模块、加载配置Etcd监听模块、退出前置处理模块与任务管理模块;
所述日志初始化模块用于FaissTrainer服务启动时初始化日志文件,记录FaissTrainer请求相关训练日志和训练请求操作日志;
所述加载配置Etcd监听模块用于FaissTrainer加载Etcd服务地址,获取Etcd中索引文件列表以及各个索引名称对应的特征向量维度;
所述退出前置处理模块用于服务失败关闭、重启时对FaissTrainer服务器触发通知;
所述任务管理模块用于FaissTrainer的HeartBeat心跳定时任务,通过HeartBeat心跳定时任务实时检测FaissDriver的网络状态。
3.根据权利要求1所述的一种基于Faiss的分布式海量相似向量增量训练系统,其特征在于,所述批量训练模块的批量训练方式具体包括以下步骤:
A1:通过用户客户端上传特征向量库文件到HDFS集群;
A2:执行训练通知脚本,通知FaissTrainer进行训练操作;
A3:FaissTrainer接收到训练通知并进行校验,校验该训练通知是否在FaissTrainer中已经注册,若未注册,则FaissTrainer从HDSF集群中拉取特征向量库文件至服务器本地进行训练,训练完成后,FaissTrainer将训练好的索引文件保存至本地;
A4:FaissTrainer通知FaissDriver,再由FaissDriver通知FaissWorker进行同步和更新本地索引文件,并将最新索引文件上传同步至HDFS集群,从而完成批量训练。
4.根据权利要求3所述的一种基于Faiss的分布式海量相似向量增量训练系统,其特征在于,所述批量训练模块在进行批量训练时,FaissTrainer进行全量更新加锁,避免训练更新导致索引文件不一致。
5.根据权利要求3所述的一种基于Faiss的分布式海量相似向量增量训练系统,其特征在于,所述训练通知脚本的参数包括索引名称和特征向量库文件中的特征向量维度。
CN202410139057.3A 2024-02-01 2024-02-01 一种基于Faiss的分布式海量相似向量增量训练系统 Active CN117725076B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410139057.3A CN117725076B (zh) 2024-02-01 2024-02-01 一种基于Faiss的分布式海量相似向量增量训练系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410139057.3A CN117725076B (zh) 2024-02-01 2024-02-01 一种基于Faiss的分布式海量相似向量增量训练系统

Publications (2)

Publication Number Publication Date
CN117725076A true CN117725076A (zh) 2024-03-19
CN117725076B CN117725076B (zh) 2024-04-09

Family

ID=90207267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410139057.3A Active CN117725076B (zh) 2024-02-01 2024-02-01 一种基于Faiss的分布式海量相似向量增量训练系统

Country Status (1)

Country Link
CN (1) CN117725076B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070078820A1 (en) * 2000-05-08 2007-04-05 Eva Lana Mindmatch: method and system for mass customization of test preparation
CN114328881A (zh) * 2022-01-19 2022-04-12 重庆长安汽车股份有限公司 一种基于短文本匹配的语音问答方法及系统
CN114461839A (zh) * 2022-04-12 2022-05-10 智者四海(北京)技术有限公司 基于多模态预训练的相似图片检索方法、装置及电子设备
CN116680377A (zh) * 2023-06-01 2023-09-01 广州中康数字科技有限公司 基于日志反馈的中文医学术语自适应对齐方法
CN117312500A (zh) * 2023-11-30 2023-12-29 山东齐鲁壹点传媒有限公司 一种基于ann和bert的语义检索模型建立方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070078820A1 (en) * 2000-05-08 2007-04-05 Eva Lana Mindmatch: method and system for mass customization of test preparation
CN114328881A (zh) * 2022-01-19 2022-04-12 重庆长安汽车股份有限公司 一种基于短文本匹配的语音问答方法及系统
CN114461839A (zh) * 2022-04-12 2022-05-10 智者四海(北京)技术有限公司 基于多模态预训练的相似图片检索方法、装置及电子设备
CN116680377A (zh) * 2023-06-01 2023-09-01 广州中康数字科技有限公司 基于日志反馈的中文医学术语自适应对齐方法
CN117312500A (zh) * 2023-11-30 2023-12-29 山东齐鲁壹点传媒有限公司 一种基于ann和bert的语义检索模型建立方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王彪等: ""基于卷积神经网络的面料检索系统"", 《计算机技术与发展》, vol. 33, no. 9, 25 September 2023 (2023-09-25), pages 52 - 56 *

Also Published As

Publication number Publication date
CN117725076B (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
US11520770B2 (en) System and method for providing high availability data
CN110532247B (zh) 数据迁移方法和数据迁移系统
CN107885758B (zh) 一种虚拟节点的数据迁移方法和虚拟节点
US9680893B2 (en) Method and system for event state management in stream processing
US8108623B2 (en) Poll based cache event notifications in a distributed cache
US20100076930A1 (en) System and method for providing high availability data
CN102158540A (zh) 分布式数据库实现系统及方法
US9747291B1 (en) Non-disruptive upgrade configuration translator
CN112948450B (zh) 用于实时推荐的Flink流式处理引擎方法、装置及计算机设备
CN106484321A (zh) 一种数据存储方法及数据中心
CN111654532A (zh) 一种配置文件集中管理系统、方法及装置
CN114415984B (zh) 数据处理方法及装置
CN110740155A (zh) 分布式系统中的请求处理方法及装置
CN115454420A (zh) 人工智能算法模型部署系统、方法、设备及存储介质
CN113297173B (zh) 分布式数据库集群管理方法及装置、电子设备
CN117725076B (zh) 一种基于Faiss的分布式海量相似向量增量训练系统
WO2017156855A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
CN113297201A (zh) 索引数据同步方法、系统及装置
CN114691720A (zh) 数据查询方法、数据库系统、可读介质和电子设备
CN112087501B (zh) 保持数据一致性的传输方法及系统
CN111400243B (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
CN114416689A (zh) 数据迁移方法、装置、计算机设备、存储介质
CN107153699B (zh) 一种动态扩展集群服务器的方法及装置
CN109005059A (zh) 一种实现Redis自动备份的系统及方法
US20230393909A1 (en) Automatically managing event-related communication data using machine learning techniques

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240508

Address after: Room 902, No. 33 Xishanwei Road, Software Park Phase III, Xiamen City, Fujian Province, 361000

Patentee after: Xiamen Shequ Information Technology Co.,Ltd.

Country or region after: China

Address before: Room 902, No. 33 Xishanwei Road, Software Park Phase III, Xiamen City, Fujian Province, 361024

Patentee before: Xiamen Shequ Information Technology Co.,Ltd.

Country or region before: China

Patentee before: Xiamen Huanqu Information Technology Co.,Ltd.

Patentee before: Xiamen Seal Cloud Information Technology Co.,Ltd.