CN116610848A - 基于npu优化的向量数据库检索方法及可读存储介质 - Google Patents
基于npu优化的向量数据库检索方法及可读存储介质 Download PDFInfo
- Publication number
- CN116610848A CN116610848A CN202310867889.2A CN202310867889A CN116610848A CN 116610848 A CN116610848 A CN 116610848A CN 202310867889 A CN202310867889 A CN 202310867889A CN 116610848 A CN116610848 A CN 116610848A
- Authority
- CN
- China
- Prior art keywords
- vector
- distance
- npu
- vectors
- result
- 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
Links
- 239000013598 vector Substances 0.000 title claims abstract description 431
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000005457 optimization Methods 0.000 title claims abstract description 32
- 239000011159 matrix material Substances 0.000 claims description 37
- 238000004364 calculation method Methods 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 8
- 230000001351 cycling effect Effects 0.000 claims description 4
- 238000013473 artificial intelligence Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 2
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于NPU优化的向量数据库检索方法,包括:获取查询向量;在向量数据层中获取第一向量节点,进入循环步骤,针对每一个第一向量节点,获取相邻的邻居向量节点并获取对应的邻居向量;计算查询向量与第一向量之间的第一距离和与每一个邻居向量之间的第二距离;将二者进行对比,选取不大于第一距离的邻居向量并按第二距离从小到大排名,保留排名前若干位作为结果向量保存在结果向量集合中,用当前次保留的结果向量对应的节点替换原来的第一向量节点;循环执行若干次直至在当前次的第二距离均大于第一距离,将保存的所有结果向量按与查询向量之间的距离从小到大排名,输出前若干位的结果向量。本发明能够与NPU最大限度配合使用。
Description
技术领域
本发明涉及信息检索技术领域,具体涉及一种基于NPU优化的向量数据库检索方法及可读存储介质。
背景技术
在信息爆炸的时代,如何快速、准确地获取所需信息是信息检索领域一直以来的关注点。向量空间模型是信息检索领域中常用的一种检索模型,其基本思想是将文本转化为向量形式,并通过计算向量之间的相似度来实现信息检索。然而,向量空间模型在应对大规模数据集和高维数据时存在一定的局限性。为了解决这一问题,近年来图索引技术逐渐成为了信息检索领域的研究热点。
图索引技术是一种基于图形结构的信息检索方法,通过建立图形结构来描述文本的语义信息,从而实现文本的快速检索。与传统的向量检索技术相比,图索引技术具有更好的扩展性和适应性,能够有效地应对大规模数据集和高维数据的检索需求。因此,优化图索引技术成为了当前信息检索领域的一个重要研究方向。目前主要的优化方向包括算法层面的优化、硬件层面的优化。
目前图索引方案通常部署在CPU、GPU中。而在CPU中,受限于硬件性能,很难对海量数据、复杂场景做高效的计算。在GPU中,相比于向量检索领域其他的算法如PQ等,图索引算法的构建和检索过程并没有极高的并行度。受限于这一点,即使目前一些学术论文探索了图索引在GPU的优化,且有一定效果。但仍然存在着并行度天花板问题。基于此本发明的发明人希望实现图索引在NPU的优化方案,但发现在NPU中缺少图索引相关计算算子实现、缺少可以分配NPU资源使其适配图索引算法的解决方案,并且现有技术中的基于图索引的检索方法不适合NPU的异步计算架构,如果直接使用NPU执行现有技术的图索引检索算法,反而相比于CPU、GPU效率更低。
发明内容
本发明的目的在于提供一种基于NPU优化的向量数据库检索方法及可读存储介质,使其能够适配NPU的矩阵处理能力,实现与NPU最大限度配合使用,提高基于向量数据库的向量检索效率。
为实现上述目的,本发明提供一种基于NPU优化的向量数据库检索方法,包括层检索,所述层检索包括以下步骤:获取查询向量;在所述向量数据库中的一向量数据层中获取一原始向量,将所述原始向量对应的向量节点作为第一向量节点,并进入循环步骤;所述循环步骤包括:针对每一个所述第一向量节点,获取所有与该第一向量节点相邻的邻居向量节点,并获取每一个所述邻居向量节点对应的邻居向量;计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离;计算所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离;将每一个所述第二距离与所述第一距离进行数值对比,选取小于或等于所述第一距离的所述第二距离对应的所述邻居向量,并将选取出的所述邻居向量按所述第二距离从小到大排名,保留排名前若干位的所述邻居向量作为结果向量;将所有所述结果向量积累保存在一结果向量集合中;用当前次保留的所述结果向量对应的向量节点替换原来的该第一向量节点,成为新的所述第一向量节点;将所述循环步骤循环执行若干次,直至在当前次所述循环步骤执行过程中所述第二距离均大于所述第一距离,进入输出步骤:所述输出步骤包括:将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出前若干位的所述结果向量。
可选的,所述计算所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离,具体包括:将与该第一向量节点相邻的所有所述邻居向量拼接成向量矩阵,计算所述向量矩阵与所述查询向量之间的距离,获得一第二距离矩阵。
可选的,所述将每一个所述第二距离与所述第一距离进行数值对比,具体包括:遍历所述第二距离矩阵的每一个元素,将每一个所述元素与所述第一距离进行数值对比。
可选的,调用NPU的矩阵计算单元计算所述向量矩阵与所述查询向量之间的距离。
可选的,调用NPU的向量计算单元计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离。
可选的,调用NPU异步并行计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离和所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离。
可选的,调用NPU自身具有的人工智能中央处理器进行所述基于NPU优化的向量数据库检索方法中的所述数值对比与所述循环步骤和/或所述输出步骤中的所述排名。
可选的,当所述结果向量积累保存数量超过一预设上限值时,将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,删除排名超出所述预设上限值的所述结果向量。
可选的,所述向量数据库包括多个按预设顺序排列的所述向量数据层,在所述多个按预设顺序排列的所述向量数据层中,前一个所述向量数据层所包含的向量为后一个所述向量数据层所包含的向量的子集;从所述多个所述向量数据层的第一层开始,按所述预设顺序进行每一个所述向量数据层的所述层检索,其中所述输出步骤具体包括:将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出排名第一位的所述结果向量;每一个所述向量数据层的所述输出结果作为后一个所述向量数据层的所述原始向量,直至到达最后一个所述向量数据层,最后一个所述向量数据层的所述输出步骤具体包括:将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出排名前若干位的所述结果向量。
为实现上述目的,本发明提供一种可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现如上述任一项所述的基于NPU优化的向量数据库检索方法。
本发明提供的基于NPU优化的向量数据库检索方法及可读存储介质具有如下有益效果:
本发明提供的基于NPU优化的向量数据库检索方法,包括层检索,所述层检索包括以下步骤:获取查询向量;在所述向量数据库中的向量数据层中获取一原始向量,将所述原始向量对应的向量节点作为第一向量节点,并进入循环步骤;所述循环步骤包括:针对每一个所述第一向量节点,获取所有与该第一向量节点相邻的邻居向量节点,并获取每一个所述邻居向量节点对应的邻居向量;计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离;计算所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离;将每一个所述第二距离与所述第一距离进行数值对比,选取小于或等于所述第一距离的所述第二距离对应的所述邻居向量,并将选取出的所述邻居向量按所述第二距离从小到大排名,保留排名前若干位的所述邻居向量作为结果向量;将所有所述结果向量积累保存在一结果向量集合中;用当前次保留的所述结果向量对应的向量节点替换原来的该第一向量节点,成为新的所述第一向量节点;将所述循环步骤循环执行若干次,直至在当前次所述循环步骤执行过程中所述第二距离均大于所述第一距离,进入输出步骤:所述输出步骤包括:将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出前若干位的所述结果向量。如此设置,本发明实现了一种针对NPU异构计算架构重构的基于图索引思想的向量检索方法,使得本发明提供的基于NPU优化的向量数据库检索方法能够适配NPU的矩阵处理能力,实现与NPU最大限度配合使用,提高基于向量数据库的向量检索效率。
本发明还提供一种可读存储介质,由于所述可读存储介质用于执行上述任一所述的基于NPU优化的向量数据库检索方法。因此,所述可读存储介质能够适配NPU的矩阵处理能力,实现与NPU最大限度配合使用,提高基于向量数据库的向量检索效率。
附图说明
图1为本发明一实施例提供的基于NPU优化的向量数据库检索方法的流程示意图。
图2为本发明一实施例提供的电子设备的方框结构示意图。
其中附图标记为:
101-处理器;102-通信接口;103-存储器;104-通信总线;105-显示器。
具体实施方式
为使本发明的目的、优点和特征更加清楚,以下结合附图和具体实施例对本发明作进一步详细说明。需说明的是,附图均采用非常简化的形式且未按比例绘制,仅用以方便、明晰地辅助说明本发明实施例的目的。此外,附图所展示的结构往往是实际结构的一部分。特别的,各附图需要展示的侧重点不同,有时会采用不同的比例。
应当明白,当元件或层被称为"在…上"、"连接到"其它元件或层时,其可以直接地在其它元件或层上、连接其它元件或层,或者可以存在居间的元件或层。相反,当元件被称为"直接在…上"、"直接连接到"其它元件或层时,则不存在居间的元件或层。尽管可使用术语第一、第二、第三等描述各种元件、部件、区、层和/或部分,这些元件、部件、区、层和/或部分不应当被这些术语限制。这些术语仅仅用来区分一个元件、部件、区、层或部分与另一个元件、部件、区、层或部分。因此,在不脱离本发明教导之下,下面讨论的第一元件、部件、区、层或部分可表示为第二元件、部件、区、层或部分。空间关系术语例如“在……之下”、“在下面”、“下面的”、“在……之上”、“在上面”、“上面的”等,在这里可为了方便描述而被使用从而描述图中所示的一个元件或特征与其它元件或特征的关系。应当明白,除了图中所示的取向以外,空间关系术语意图还包括使用和操作中的器件的不同取向。例如,如果附图中的器件翻转,然后,描述为“在……之下”、“在下面”、“下面的”元件或特征将取向为在其它元件或特征“上”。器件可以另外地取向(旋转90度或其它取向)并且在此使用的空间描述语相应地被解释。在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的"一"、"一个"和"所述/该"也意图包括复数形式,除非上下文清楚地指出另外的方式。还应明白术语“包括”用于确定可以特征、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语"和/或"包括相关所列项目的任何及所有组合。
本发明的目的在于提供一种基于NPU优化的向量数据库检索方法及可读存储介质,使其能够适配NPU的矩阵处理能力,实现与NPU最大限度配合使用,提高基于向量数据库的向量检索效率。
为实现上述目的,请参考图1,图1为本发明一实施例提供的基于NPU优化的向量数据库检索方法的流程示意图。如图1所示,本发明提供一种基于NPU优化的向量数据库检索方法,包括层检索,所述层检索包括以下步骤:
获取查询向量;
在所述向量数据库中的一向量数据层中获取一原始向量,将所述原始向量对应的向量节点作为第一向量节点,并进入循环步骤;
所述循环步骤包括:
针对每一个所述第一向量节点,获取所有与该第一向量节点相邻的邻居向量节点,并获取每一个所述邻居向量节点对应的邻居向量;
计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离,计算所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离;
将每一个所述第二距离与所述第一距离进行数值对比,选取小于或等于所述第一距离的所述第二距离对应的所述邻居向量,并将选取出的所述邻居向量按所述第二距离从小到大排名,保留排名前若干位的所述邻居向量作为结果向量;
将所有所述结果向量积累保存在一结果向量集合中;
用当前次保留的所述结果向量对应的向量节点替换原来的该第一向量节点,成为新的所述第一向量节点;
将所述循环步骤循环执行若干次,直至在当前次所述循环步骤执行过程中所述第二距离均大于所述第一距离,进入输出步骤:
所述输出步骤包括:
将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出前若干位的所述结果向量。
如此设置,本发明实现了一种针对NPU异构计算架构重构的基于图索引思想的向量检索方法,使得本发明提供的基于NPU优化的向量数据库检索方法能够适配NPU的矩阵处理能力,实现与NPU最大限度配合使用,提高基于向量数据库的向量检索效率。
需要说明的是,与现有技术的不同之处包括:本发明在每次循环步骤中将选取出的所述邻居向量按所述第二距离从小到大排名,保留排名前若干位的所述邻居向量作为结果向量,可以保留出多个所述结果向量,并可以更新出多个新的所述第一向量节点,而且由于循环步骤中始终选取与查询向量尽可能小的邻居向量,因此循环步骤最终必然会因无法再找到更小的所述第二距离而终止,从而可以在循环执行过程中进一步全面地进行数值对比,更加精确地选出距离所述查询向量最近的向量。
还需要说明的是,当选取与保留排名前若干位的所述邻居向量时,以下几种特殊场景可以通过算法设定排除:
为本领域技术人员所能理解的,当所述邻居节点过多时,可以预设获取原则,设定所述邻居节点获取数量的上限,以提升检索效率。
若后一次的所述第一向量节点为前一次的所述第一向量节点的邻居节点,此时在进行获取所有与后一次的所述第一向量节点相邻的邻居向量节点并获取每一个所述邻居向量节点对应的邻居向量时,应采用单向边原则,即不再重复获取前一次的所述第一向量节点作为邻居节点。
所述循环步骤循环执行若干次的过程中,若某一个所述第一向量节点的邻居节点与当前次循环步骤中另一个所述第一向量节点相同,则不再选取该邻居节点。
在将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出前若干位的所述结果向量时,若出现距离相等的不同的所述结果向量,则可并列排名,并占据排名位置,若只输出一个所述结果向量,则可选择其中任意一个输出。
进一步的,所述计算所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离,具体包括:
将与该第一向量节点相邻的所有所述邻居向量拼接成向量矩阵,计算所述向量矩阵与所述查询向量之间的距离,获得一第二距离矩阵。
如此设置,则可将所述第二距离的计算转化为矩阵计算,实现与NPU中的矩阵计算单元的配合使用,提高计算处理效率。
具体的,所述将每一个所述第二距离与所述第一距离进行数值对比,具体包括:
遍历所述第二距离矩阵的每一个元素,将每一个所述元素与所述第一距离进行数值对比。
在NPU中存在矩阵计算单元和向量计算单元,应理解,由于向量也可以看做一个单行矩阵,因此所属于向量计算单元本质上是另一种矩阵计算单元,可以通过设定和资源分配,在所述NPU中划分所述矩阵计算单元和所述向量计算单元,从而进一步地实现以下技术方案:
调用NPU的矩阵计算单元计算所述向量矩阵与所述查询向量之间的距离。
调用NPU的向量计算单元计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离。
需要说明的是,所述计算所述向量矩阵与所述查询向量之间的距离和所述计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离这两个步骤是可以彼此独立进行的,因此在NPU中可以通过异步并行处理思想对两个步骤进行同时处理,从而进一步提升工作效率,基于此本发明提供一下技术方案:
调用NPU异步并行计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离和所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离。
综上可以得出,本发明与现有技术的不同之处还包括:现有技术的图索引算法是一个线性的搜索过程。所谓线性,即是这个过程中我们必须迭代出搜索路径,一定要按照搜索路径的节点进行查找。这个特点使其存在着并行度天花板,很难在CPU和GPU中实现,充分的发挥出CPU和GPU的极高的并行计算能力。而本发明基于NPU的强大的矩阵计算能力和向量计算能力,重构了图索引算法,使其中间数据分别转化为矩阵和向量,并对NPU内部的计算单元进行划分和资源分配,从而实现调用NPU异步并行处理,提高计算检索效率。
应理解,所述第一距离和所述第二距离均包括欧氏距离,具体地,欧氏距离的计算公式为:
其中,为第一计算向量,/>为第二计算向量。
此公式的含义如下:
等式左边为所述第一计算向量和所述第二计算向量之间的距离,可以发现其符合完全平方公式的展开逻辑,从而得出等式右边的内容,等式右边由三个加数组成,分别为所述第一计算向量的长度,所述第二计算向量的长度,以及所述第一计算向量和所述第二计算向量的内积的二倍。例如在计算所述第一距离时,所述第一计算向量可以是所述第一向量节点对应的第一向量,此时所述第二计算向量是所述查询向量;在计算所述第二距离时,所述第一计算向量可以是由所述第一向量节点相邻的所有所述邻居向量拼接成向量矩阵,此时所述第二计算向量是所述查询向量,二者的所述第二距离计算结果此时会是一个所述第二距离矩阵。
进一步地,显然本发明提供的所述基于NPU优化的向量数据库检索方法也包括不含矩阵计算的步骤,此类步骤不应调用NPU中的矩阵计算单元和向量计算单元,此时可调用NPU自身具有的人工智能中央处理器(即AICPU)进行所述基于NPU优化的向量数据库检索方法中的所述数值对比与所述循环步骤和/或所述输出步骤中的所述排名,需要说明的是,所述神经网络处理器NPU自身的人工智能中央处理器与通用中央处理器CPU不同,不同之处在于所述神经网络处理器NPU自身的人工智能中央处理器为所述NPU内部本身设有的,并不是脱离NPU以外存在的独立的通用中央处理器。NPU自身内部也具有人工智能中央处理器,即AICPU,这种情况下,直接调用所述AICPU和将数据传输到NPU外部的硬件相比,使算法的所有步骤均能在所述NPU内部完成,减少了数据传输,能够极大地提升处理效率,数据传输与处理计算的效率更高。并且所述NPU自身的人工智能中央处理器即AICPU,其自身架构与通用中央处理器CPU不同,因此算法可针对AICPU的架构进行二次开发,例如可对应AICPU的架构针对性开发排序算子算法、数值对比算子算法、查表算子算法等,AICPU处理此类二次开发的算法步骤的效率高于通用中央处理器CPU。
优选的,当所述结果向量积累保存数量超过一预设上限值时,将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,删除排名超出所述预设上限值的所述结果向量。因为在向量检索领域通常取查询向量的topk结果,当积累保存数量超过k时,应开始执行替换策略,替换策略即取当前与查询向量最近的若干个所述结果向量。
进一步的,为了进一步优化检索速度,应引入跳表分层的思路,首先使用所述向量数据库中的全部向量构造一个向量数据层,然后找出其中具有代表性的向量节点构成上层子图,节点数目从下至上逐渐减少,而在检索过程中则可以从节点少的一层开始,向下跳表逐层检索,实现先快速的接近要查找的点的附近,然后再精确的搜索。基于此本发明提供以下技术方案:
所述向量数据库包括多个按预设顺序排列的所述向量数据层,在所述多个按预设顺序排列的所述向量数据层中,前一个所述向量数据层所包含的向量为后一个所述向量数据层所包含的向量的子集;
从所述多个所述向量数据层的第一层开始,按所述预设顺序进行每一个所述向量数据层的所述层检索,其中所述输出步骤具体包括:
将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出排名第一位的所述结果向量;
每一个所述向量数据层的所述输出结果作为后一个所述向量数据层的所述原始向量,直至到达最后一个所述向量数据层,最后一个所述向量数据层的所述输出步骤具体包括:
将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出排名前若干位的所述结果向量。
需要重点区分的是,所述最后一个所述向量数据层的所述输出步骤中可以输出多个所述结果向量,以实现topk输出,但其他层应只输出排名第一位的所述结果向量,以作为后一个所述向量数据层的所述原始向量。
为实现上述目的,本发明还提供一种电子设备,请参考图2,图2为本发明一实施例提供的电子设备的方框结构示意图。如图2所示,所述电子设备包括:
存储器103,存储有计算机程序;
处理器101,与所述存储器通信相连,调用所述计算机程序时执行上述中任一项所述的基于NPU优化的向量数据库检索方法;
显示器105,与所述处理器和所述存储器通信相连,用于显示与所述基于NPU优化的向量数据库检索方法相关GUI交互界面。
如图2所示,所述电子设备还包括通信接口102和通信总线104,其中所述处理器101、所述通信接口102、所述存储器103通过通信总线104完成相互间的通信。所述通信总线104可以是外设部件互连标准(PeripheralComponentInterconnect,PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,EISA)总线等。该通信总线104可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。所述通信接口102用于上述电子设备与其他设备之间的通信。
本发明中所称处理器101可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器101是所述电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分。
所述存储器103可用于存储所述计算机程序,所述处理器101通过运行或执行存储在所述存储器103内的计算机程序,以及调用存储在存储器103内的数据,实现所述电子设备的各种功能。
所述存储器103可以包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
为实现上述目的,本发明提供一种可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现如上述任一项所述的基于NPU优化的向量数据库检索方法。由于本发明提供的可读存储介质与上文所述的基于NPU优化的向量数据库检索方法属于同一发明构思,因此本发明提供的可读存储介质具有上文所述的基于NPU优化的向量数据库检索方法的所有优点,故在此不再对本发明提供的可读存储介质所具有的有益效果进行一一赘述。
本发明实施方式的可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。可读介质可以是计算机可读信号介质或者计算机可读可读存储介质。计算机可读可读存储介质例如可以是但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机硬盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文中,计算机可读可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其组合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
发明人基于本发明的原理进行了与现有技术的实验对比,发现本发明能够极大地提升检索效率,具体实验数据如下:
实验环境:
操作系统:Ubuntu20.04.5LTS
CPU:Intel(R)Xeon(R)Platinum8362CPU@2.80GHz
GPU:NVIDIAA30
NPU:Ascend310P
内存:256G
数据集:SIFT1M
除上述资源以外,其他资源不设限制。GPU实现版本参考相关论文。
实验:单并发测试,测试召回率为98%时的吞吐量。
NPU吞吐量(QPS):23324.1
GPU吞吐量(QPS):16329.5
CPU吞吐量(QPS):1827.4
由此可见基于本发明提供的基于NPU优化的向量数据库检索方法中NPU吞吐量(QPS)明显高于GPU和CPU,能够极大提升检索效率。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围。
还应当理解的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
此外还应该认识到,此处描述的术语仅仅用来描述特定实施例,而不是用来限制本发明的范围。必须注意的是,此处的以及所附权利要求中使用的单数形式“一个”和“一种”包括复数基准,除非上下文明确表示相反意思。例如,对“一个步骤”或“一个装置”的引述意味着对一个或多个步骤或装置的引述,并且可能包括次级步骤以及次级装置。应该以最广义的含义来理解使用的所有连词。以及,词语“或”应该被理解为具有逻辑“或”的定义,而不是逻辑“异或”的定义,除非上下文明确表示相反意思。此外,本发明实施例的实现可包括手动、自动或组合地执行所选任务。
Claims (10)
1.一种基于NPU优化的向量数据库检索方法,其特征在于,包括层检索,所述层检索包括以下步骤:
获取查询向量;
在所述向量数据库中的一向量数据层中获取一原始向量,将所述原始向量对应的向量节点作为第一向量节点,并进入循环步骤;
所述循环步骤包括:
针对每一个所述第一向量节点,获取所有与该第一向量节点相邻的邻居向量节点,并获取每一个所述邻居向量节点对应的邻居向量;
计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离,计算所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离;
将每一个所述第二距离与所述第一距离进行数值对比,选取小于或等于所述第一距离的所述第二距离对应的所述邻居向量,并将选取出的所述邻居向量按所述第二距离从小到大排名,保留排名前若干位的所述邻居向量作为结果向量;
将所有所述结果向量积累保存在一结果向量集合中;
用当前次保留的所述结果向量对应的向量节点替换原来的该第一向量节点,成为新的所述第一向量节点;
将所述循环步骤循环执行若干次,直至在当前次所述循环步骤执行过程中所述第二距离均大于所述第一距离,进入输出步骤:
所述输出步骤包括:
将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出前若干位的所述结果向量。
2.如权利要求1所述的基于NPU优化的向量数据库检索方法,其特征在于,所述计算所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离,具体包括:
将与该第一向量节点相邻的所有所述邻居向量拼接成向量矩阵,计算所述向量矩阵与所述查询向量之间的距离,获得一第二距离矩阵。
3.如权利要求2所述的基于NPU优化的向量数据库检索方法,其特征在于,所述将每一个所述第二距离与所述第一距离进行数值对比,具体包括:
遍历所述第二距离矩阵的每一个元素,将每一个所述元素与所述第一距离进行数值对比。
4.如权利要求2所述的基于NPU优化的向量数据库检索方法,其特征在于,调用NPU的矩阵计算单元计算所述向量矩阵与所述查询向量之间的距离。
5.如权利要求1所述的基于NPU优化的向量数据库检索方法,其特征在于,调用NPU的向量计算单元计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离。
6.如权利要求1所述的基于NPU优化的向量数据库检索方法,其特征在于,调用NPU异步并行计算所述查询向量与该第一向量节点对应的第一向量之间的第一距离和所述查询向量与该第一向量节点相邻的每一个所述邻居向量之间的第二距离。
7.如权利要求1所述的基于NPU优化的向量数据库检索方法,其特征在于,调用NPU自身具有的人工智能中央处理器进行所述基于NPU优化的向量数据库检索方法中的所述数值对比与所述循环步骤和/或所述输出步骤中的所述排名。
8.如权利要求1所述的基于NPU优化的向量数据库检索方法,其特征在于,当所述结果向量积累保存数量超过一预设上限值时,将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,删除排名超出所述预设上限值的所述结果向量。
9.如权利要求1所述的基于NPU优化的向量数据库检索方法,其特征在于,所述向量数据库包括多个按预设顺序排列的所述向量数据层,在多个按预设顺序排列的所述向量数据层中,前一个所述向量数据层所包含的向量为后一个所述向量数据层所包含的向量的子集;
从多个所述向量数据层的第一层开始,按所述预设顺序对每一个所述向量数据层进行层检索,其中所述输出步骤具体包括:
将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出排名第一位的所述结果向量;
每一个所述向量数据层的输出结果作为后一个所述向量数据层的所述原始向量,直至到达最后一个所述向量数据层,最后一个所述向量数据层的所述输出步骤具体包括:
将所述结果向量集合中积累保存的所有所述结果向量按与所述查询向量之间的距离从小到大排名,输出排名前若干位的所述结果向量。
10.一种可读存储介质,存储有计算机程序,其特征在于:该计算机程序被处理器执行时实现如权利要求1至9中任一项所述的基于NPU优化的向量数据库检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310867889.2A CN116610848B (zh) | 2023-07-17 | 2023-07-17 | 基于npu优化的向量数据库检索方法及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310867889.2A CN116610848B (zh) | 2023-07-17 | 2023-07-17 | 基于npu优化的向量数据库检索方法及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116610848A true CN116610848A (zh) | 2023-08-18 |
CN116610848B CN116610848B (zh) | 2023-10-20 |
Family
ID=87685662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310867889.2A Active CN116610848B (zh) | 2023-07-17 | 2023-07-17 | 基于npu优化的向量数据库检索方法及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116610848B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178158A1 (en) * | 1999-12-21 | 2002-11-28 | Yuji Kanno | Vector index preparing method, similar vector searching method, and apparatuses for the methods |
JP2010128598A (ja) * | 2008-11-25 | 2010-06-10 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置及び方法及びプログラム及びプログラムを記録した記録媒体 |
WO2020060605A1 (en) * | 2018-09-21 | 2020-03-26 | Microsoft Technology Licensing, Llc | Approximate nearest neighbor searching strategy generating based on reinforcement learning |
CN115146103A (zh) * | 2022-09-01 | 2022-10-04 | 太平金融科技服务(上海)有限公司深圳分公司 | 图像检索方法、装置、计算机设备、存储介质和程序产品 |
CN115374104A (zh) * | 2022-07-05 | 2022-11-22 | 深圳大学 | 关系型数据库的汉明向量检索方法、装置、介质及终端 |
-
2023
- 2023-07-17 CN CN202310867889.2A patent/CN116610848B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020178158A1 (en) * | 1999-12-21 | 2002-11-28 | Yuji Kanno | Vector index preparing method, similar vector searching method, and apparatuses for the methods |
JP2010128598A (ja) * | 2008-11-25 | 2010-06-10 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置及び方法及びプログラム及びプログラムを記録した記録媒体 |
WO2020060605A1 (en) * | 2018-09-21 | 2020-03-26 | Microsoft Technology Licensing, Llc | Approximate nearest neighbor searching strategy generating based on reinforcement learning |
CN115374104A (zh) * | 2022-07-05 | 2022-11-22 | 深圳大学 | 关系型数据库的汉明向量检索方法、装置、介质及终端 |
CN115146103A (zh) * | 2022-09-01 | 2022-10-04 | 太平金融科技服务(上海)有限公司深圳分公司 | 图像检索方法、装置、计算机设备、存储介质和程序产品 |
Non-Patent Citations (1)
Title |
---|
汪善义;马煜;汪源源;: "基于SIFT特征和近似最近邻算法的医学CT图像检索", 生物医学工程学进展, no. 03 * |
Also Published As
Publication number | Publication date |
---|---|
CN116610848B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8380643B2 (en) | Searching multi-dimensional data using a parallelization framework comprising data partitioning and short-cutting via early out | |
US9442929B2 (en) | Determining documents that match a query | |
KR102034833B1 (ko) | 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법 | |
US7894627B2 (en) | Methods and apparatus for incremental approximate nearest neighbor searching | |
CN117251641A (zh) | 向量数据库检索方法、系统、电子设备及存储介质 | |
EP4375844A1 (en) | Neural network on-chip mapping method and device based on tabu search algorithm | |
CN109308191A (zh) | 分支预测方法及装置 | |
KR102305575B1 (ko) | 이미지 간 유사도를 이용한 유사 영역 강조 방법 및 시스템 | |
US11068484B2 (en) | Accelerating queries with complex conditions using zone map enhancements | |
WO2022007596A1 (zh) | 图像检索系统、方法和装置 | |
CN116610848B (zh) | 基于npu优化的向量数据库检索方法及可读存储介质 | |
CN116402113B (zh) | 一种任务执行的方法、装置、存储介质及电子设备 | |
KR100667741B1 (ko) | 특징 벡터 데이터 공간의 인덱싱 방법 | |
CN112100446B (zh) | 搜索方法、可读存储介质和电子设备 | |
CN105144139A (zh) | 生成特征集 | |
KR20220054220A (ko) | 탑케이 연산을 위한 방법 및 시스템 | |
JP2009146215A (ja) | データ分析装置、及びデータ分析プログラム | |
US20040107312A1 (en) | System and method for determining a cache optimized ordering of cells in an unstructured graph | |
CN112214627A (zh) | 搜索方法、可读存储介质和电子设备 | |
CN111695685A (zh) | 一种面向图神经网络应用的片上存储系统及方法 | |
KR101878844B1 (ko) | 중첩 오버래핑 기반의 서브 그래프 리스팅 방법 | |
Feng et al. | Effective optimizations of cluster-based nearest neighbor search in high-dimensional space | |
CN116304258B (zh) | 基于向量数据库的检索方法、检索系统及可读存储介质 | |
CN118014098B (zh) | 机器学习训练数据调度方法及设备 | |
CN113721839B (zh) | 用于处理图数据的计算系统和存储分层方法 |
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 |