基于NPU的向量数据库检索处理加速方法及系统技术方案

技术编号:38540130 阅读:16 留言:0更新日期:2023-08-19 17:08
本发明专利技术提供一种基于NPU的向量数据库检索处理加速方法及向量数据库检索处理系统,应用于向量数据库检索算法,包括以下步骤:针对所述向量数据库检索算法的每一个步骤,判断该步骤是否包括向量处理和\或矩阵计算;若是,则调用神经网络处理器NPU中的计算核心进行对该步骤的处理和\或计算。本发明专利技术能够实现在一些常规向量数据库检索算法中也能调用NPU计算,充分发挥NPU的矩阵计算和向量处理的能力,加快计算处理速度。计算处理速度。计算处理速度。

【技术实现步骤摘要】
基于NPU的向量数据库检索处理加速方法及系统


[0001]本专利技术涉及信息检索
,具体涉及一种基于NPU的向量数据库检索处理加速方法及向量数据库检索处理系统。

技术介绍

[0002]向量检索算法通过向量数据之间的相似性比对来完成业务场景中对非结构化数据的使用需求,例如以图搜图、视频推荐、文本检索等。目前很多向量检索方案依托于CPU,如Faiss库中的大多数索引算法、图索引算法等。当数据量和性能要求更高的场景下,很多方案依托于GPU的并行计算能力对索引时间进行优化。如Faiss库中部分GPUIndex索引。但随着算法的多样性与复杂性,CPU和GPU的并行计算也已无法满足效率要求。其实常见向量检索技术还可通过神经网络处理器NPU进行加速, NPU中大量的矩阵运算单元、向量运算单元和异构计算架构也在理论上适合高效的向量检索算法。但目前NPU更多定制化地针对固定的涉及人工智能的算法,如何充分发挥NPU的矩阵运算和向量运算处理能力,使其能更广泛应用于不同的算法中,目前缺乏相关方案。

技术实现思路

[0003]本专利技术的目的在于提供一种基于NPU的向量数据库检索处理加速方法及向量数据库检索处理系统,充分发挥NPU的矩阵计算和向量处理的能力,加快计算处理速度。
[0004]为实现上述目的,本专利技术提供一种基于NPU的向量数据库检索处理加速方法,应用于向量数据库检索算法,包括以下步骤:针对所述向量数据库检索算法的每一个步骤,判断该步骤是否包括向量处理和\或矩阵计算;若是,则调用神经网络处理器NPU中的计算核心进行对该步骤的处理和\或计算。
[0005]可选的,若该步骤不包括向量处理和矩阵计算中的任一者,则调用神经网络处理器NPU自身的人工智能中央处理器进行对该步骤的处理和\或计算。
[0006]可选的,所述向量数据库检索算法包括以下步骤:步骤S1:将向量数据库中的所有维数相同的原始向量组成原始向量矩阵,将向量数据库中的每一个原始向量平均划分成第一预设数量个数的第一子段向量,将所述向量数据库中所有所述第一子段向量组成第一子段向量集;步骤S2:针对所述第一子段向量集,进行K均值聚类算法聚类,以获得第二预设数量个数的聚类中心向量,并为每个所述聚类中心向量对应标记编码;步骤S3:根据每个所述第一子段向量与每个所述聚类中心向量的聚类对应关系,将对应的编码标记在每一个所述第一子段向量上,将所述编码与对应的所述第一子段向量替换,以使所述编码成为所述原始向量矩阵的新元素,以获得编码矩阵;步骤S4:获取查询向量,将所述查询向量也平均划分为第一预设数量个数的第二子段向量,计算每个所述第二子段向量到每一个所述聚类中心向量的距离,根据所述距离获得距离矩阵,其中,所述距离矩阵B的行数等于所述第二预设数量,所述距离矩阵B的列数等于所述第一预设数量,或者所述距离矩阵B的行数等于所述第一预设数量,所述距离矩阵的列数等于所述第二预设数量;步骤S5:根据所述编码矩阵
与所述距离矩阵的映射关系,查找出所述编码矩阵的每一个元素在所述距离矩阵中对应的距离;步骤S6:将每一个所述原始向量在所述步骤S5中查出的对应的距离进行累加,以获得每一个所述原始向量与所述查询向量的总距离;步骤S7:将向量数据库中的各所述原始向量与所述查询向量的总距离按从小到大排名,输出排名前若干位的所述原始向量数据。
[0007]可选的,针对所述步骤S1、所述步骤S2、所述步骤S4、所述步骤S6以及所述步骤S7中的至少一者,调用神经网络处理器NPU中的计算核心进行该步骤的处理。
[0008]可选的,针对所述步骤S3和\或所述步骤S5,调用神经网络处理器NPU自身的人工智能中央处理器进行该步骤的处理。
[0009]可选的,通过以下子步骤计算所述第二子段向量到所述聚类中心向量的距离:子步骤S411:计算所述所述聚类中心向量的长度;子步骤S412:计算所述聚类中心向量与所述第二子段向量的内积,并乘以2;子步骤S413:将所述子步骤S411的计算结果和所述子步骤S412的计算结果相加;其中,针对所述子步骤S412,调用神经网络处理器NPU中的计算核心进行该子步骤的处理,针对所述子步骤S411和\或S413,调用神经网络处理器NPU自身的人工智能中央处理器进行该子步骤的处理。
[0010]可选的,所述神经网络处理器NPU中的计算核心包括第一计算单元和第二计算单元,所述第一计算单元和所述第二计算单元均为三维立体结构,且所述第一计算单元的长为k/t,宽为m,高为t,所述第二计算单元的长为k/t,宽为n,高为t;通过以下子步骤计算所述第二子段向量到所述聚类中心向量的距离:子步骤S421:将所述聚类中心向量转化为m
×
k的第一矩阵,将所述第二子段向量转化为k
×
n的第二矩阵;子步骤S422:获取一预设均分数t,将所述第一矩阵的数据对应搬运至所述第一计算单元中;子步骤S423:将所述第二矩阵的数据对应搬运至所述第二计算单元中;子步骤S424:调用所述第一计算单元和所述第二计算单元计算所述第一矩阵与所述第二矩阵的乘积。
[0011]可选的,开启三个线程池进行所述长、宽、高对应数据的搬运,其中第一线程池用于搬运所述长的数值,第二线程池用于搬运所述宽的数值,第三线程池用于搬运所述高的数值,所述第一线程池和所述第二线程池的线程数为1,所述第三线程池的线程数为t。
[0012]可选的,所述向量数据库检索算法包括以下步骤:步骤X1:将向量数据库中的所有维数相同的原始向量各自平均划分为第三预设数量的第三子段向量;步骤X2:获取查询向量,将所述查询向量也划分为第三预设数量的第四子段向量;步骤X3:将每一个所述原始向量的所述第三子段向量与所述查询向量的所述第四子段向量一一对应进行逐位对比,相同则对比输出结果为0,不相同则对比输出结果为1;步骤X4:将所有所述对比输出结果累加,以获得每一个所述原始向量与所述查询向量的总距离;步骤X5:将向量数据库中的各所述原始向量与所述查询向量的总距离按从小到大排名,输出排名前若干位的所述原始向量数据。
[0013]为实现上述目的,本专利技术还提供一种向量数据库检索处理系统,包括神经网络处理器NPU、第一存储器和第二存储器,所述神经网络处理器NPU用于执行上述任一所述的基于NPU的向量数据库检索处理加速方法;所述神经网络处理器NPU包括多个计算核心,所述多个计算核心用于平均分配被计算的数据;所述第一存储器用于存储向量数据库的数据,所述第二存储器用于存储所述向量数据库中的部分数据和\或存储针对所述向量数据库中的部分数据量化处理后的数据,所述第二存储器的读写速度大于所述第一存储器的读写速
度。
[0014]本专利技术提供的基于NPU的向量数据库检索处理加速方法及向量数据库检索处理系统具有如下有益效果:本专利技术提供的基于NPU的向量数据库检索处理加速方法,针对所述向量数据库检索算法的每一个步骤,判断该步骤是否包括向量处理和\或矩阵计算;若是,则调用神经网络处理器NPU中的计算核心进行对该步骤的处理和\或计本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于NPU的向量数据库检索处理加速方法,应用于向量数据库检索算法,其特征在于,包括以下步骤:针对所述向量数据库检索算法的每一个步骤,判断该步骤是否包括向量处理和或矩阵计算;若是,则调用神经网络处理器NPU中的计算核心进行对该步骤的处理和或计算;若该步骤不包括向量处理和矩阵计算中的任一者,则调用神经网络处理器NPU自身的人工智能中央处理器进行对该步骤的处理和或计算。2.如权利要求1所述的基于NPU的向量数据库检索处理加速方法,其特征在于,所述向量数据库检索算法包括以下步骤:步骤S1:将向量数据库中的所有维数相同的原始向量组成原始向量矩阵,将向量数据库中的每一个原始向量平均划分成第一预设数量个数的第一子段向量,将所述向量数据库中所有所述第一子段向量组成第一子段向量集;步骤S2:针对所述第一子段向量集,进行K均值聚类算法聚类,以获得第二预设数量个数的聚类中心向量,并为每个所述聚类中心向量对应标记编码;步骤S3:根据每个所述第一子段向量与每个所述聚类中心向量的聚类对应关系,将对应的编码标记在每一个所述第一子段向量上,将所述编码与对应的所述第一子段向量替换,以使所述编码成为所述原始向量矩阵的新元素,以获得编码矩阵;步骤S4:获取查询向量,将所述查询向量也平均划分为第一预设数量个数的第二子段向量,计算每个所述第二子段向量到每一个所述聚类中心向量的距离,根据所述距离获得距离矩阵,其中,所述距离矩阵的行数等于所述第二预设数量,所述距离矩阵的列数等于所述第一预设数量,或者所述距离矩阵的行数等于所述第一预设数量,所述距离矩阵的列数等于所述第二预设数量;步骤S5:根据所述编码矩阵与所述距离矩阵的映射关系,查找出所述编码矩阵的每一个元素在所述距离矩阵中对应的距离;步骤S6:将每一个所述原始向量在所述步骤S5中查出的对应的距离进行累加,以获得每一个所述原始向量与所述查询向量的总距离;步骤S7:将向量数据库中的各所述原始向量与所述查询向量的总距离按从小到大排名,输出排名前若干位的所述原始向量数据。3.如权利要求2所述的基于NPU的向量数据库检索处理加速方法,其特征在于,针对所述步骤S1、所述步骤S2、所述步骤S4、所述步骤S6以及所述步骤S7中的至少一者,调用神经网络处理器NPU中的计算核心进行该步骤的处理。4.如权利要求2所述的基于NPU的向量数据库检索处理加速方法,其特征在于,针对所述步骤S3和或所述步骤S5,调用神经网络处理器NPU自身的人工智能中央处理器进行该步骤的处理。5.如权利要求2所述的基于NPU的向量数据库检索处理加速方法,其特征在于,通过以下子步骤计算所述第二子段向量到所述聚类中心向量的距离:子步骤S411:计算所述所述聚类中心向量的长度;子步骤S412:计算所述聚类中心向量与所述第二子段向量的内积,并乘以2;子步骤S413:将所述子步骤S411的...

【专利技术属性】
技术研发人员:李剑楠苏鹏阎虎青黄炎李恒
申请(专利权)人:上海爱可生信息技术股份有限公司
类型:发明
国别省市:

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

1