System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及向量索引查询的并行优化,具体地,涉及适用于图索引的计算传输流水线并行方法及系统
技术介绍
1、面向非结构化数据的相似查询正在成为现实世界的一种主流查询方式。为满足这类特殊的查询需求,现有系统通常会使用机器学习模型将非结构化数据的特征提取为向量,基于向量的距离计算筛选近邻。用于减少查询需要检查的向量总数的向量索引是其中的重要技术之一。向量索引是一种特殊的、加速相似查询的非结构化数据索引技术,能根据距离返回目标向量的近似近邻向量集。近几年,随着算法和系统实现的进步,向量索引被广泛用于支撑搜索引擎、推荐系统和生成式服务等应用。
2、从索引算法类型来看,向量索引可以被分为基于聚簇的粗粒度索引和基于近邻图的细粒度索引,简称簇索引和图索引。簇索引将向量提前聚成簇,查询时通过先选簇后遍历向量的方式搜索近邻,优势是遍历向量的阶段可并行。图索引用有向边记录向量之间近邻关系,提前建立由系统中所有向量组成的近邻图。图索引服务查询时从一个固定向量出发,基于局部贪心策略沿有向边遍历图直到路径到达终点或超过最大向量访问限制。系统将搜索路径上的近邻集合视为全局近邻集合返回给应用。相比簇索引,图索引的优势是减少了计算量,但是缺点是搜索算法对并行计算不友好。
3、目前,由于向量数据集规模庞大,且有进一步增长的趋势,大规模图索引将向量及其邻边存储在ssd等大容量低速存储介质中。为了避免所有距离计算都需要从低速存储读取向量,现有的大规模图索引会在内存中保存所有向量的有损压缩版本和起点对应的向量及邻边。由于存在两个版本的向量,图索
4、在现有实现中,计算任务与传输任务之间存在互相依赖,导致在i/o传输过程中cpu只能空转,因此优化图索引查询的关键是设计更高效的计算传输流水线,减少cpu空转时间。
技术实现思路
1、针对现有技术中的缺陷,本专利技术的目的是提供一种适用于图索引的计算传输流水线并行方法及系统。
2、根据本专利技术提供的一种适用于图索引的单查询计算传输流水线并行方法,包括:
3、步骤s1:从当前候选点出发,基于内存中的压缩向量计算当前候选点的邻居与目标向量的近似距离,更新近似候选集;
4、步骤s2:检查近似候选集,当近似候选集中所有点均已被访问或总访问计数超过预设最大访问限制,结束查询,返回真实候选集;否则,选择近似候选集中第一个未访问的候选点作为下一个候选点,发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,并将该候选点标记为已访问;在等待io完成的同时,计算当前候选点与目标向量的真实距离,更新真实候选集;
5、步骤s3:收到i/o完成通知,保留下一个候选点的完整向量;基于下一个候选点更新当前候选点,重复触发步骤s1至步骤s3。
6、优选地,所述发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,包括:发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,并将读取到的下一个候选点对应的完整向量与邻边保存至内存层的缓冲区内;
7、当距离计算完成后释放内存层的缓冲区。
8、优选地,所述存储层包括ssd或基于高速内存互联技术连接的远端内存。
9、根据本专利技术提供的一种适用于图索引的单查询计算传输流水线并行系统,包括:
10、模块m1:从当前候选点出发,基于内存中的压缩向量计算当前候选点的邻居与目标向量的近似距离,更新近似候选集;
11、模块m2:检查近似候选集,当近似候选集中所有点均已被访问或总访问计数超过预设最大访问限制,结束查询,返回真实候选集;否则,选择近似候选集中第一个未访问的候选点作为下一个候选点,发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,并将该候选点标记为已访问;在等待io完成的同时,计算当前候选点与目标向量的真实距离,更新真实候选集;
12、模块m3:收到i/o完成通知,保留下一个候选点的完整向量;基于下一个候选点更新当前候选点,重复触发模块m1至模块m3。
13、优选地,所述发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,包括:发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,并将读取到的下一个候选点对应的完整向量与邻边保存至内存层的缓冲区内;
14、当距离计算完成后释放内存层的缓冲区。
15、优选地,所述存储层包括ssd或基于高速内存互联技术连接的远端内存。
16、根据本专利技术提供的一种适用于图索引的批量查询计算传输流水线并行方法,针对批量查询中的每个查询,利用上述所述的适用于图索引的单查询计算传输流水线并行方法同时并行处理。
17、优选地,针对同批次内不同查询的近似候选集和真实候选集通过队列的方式进行隔离。
18、根据本专利技术提供的一种适用于图索引的批量查询计算传输流水线并行系统,针对批量查询中的每个查询,利用上述所述的适用于图索引的单查询计算传输流水线并行系统同时触发执行。
19、优选地,针对同批次内不同查询的近似候选集和真实候选集通过队列的方式进行隔离。
20、与现有技术相比,本专利技术具有如下的有益效果:
21、1、本专利技术没有使用缓存完整向量及邻边的方式加速索引查询,节省了内存;
22、2、本专利技术的批量查询进行流水线设置优化,不涉及算法改动,因此能更好地兼容不同的图查询算法;
23、3、相比从多点同时遍历的图查询方法,本专利技术没有引入重复的计算或传输任务;
24、4、本专利技术很好地识别了图索引查询中不存在依赖关系的计算和传输任务,并基于此设计流水线减少了cpu空转时间,从而加速系统服务相似度查询的吞吐,加速图索引的向量查询;
25、5、本专利技术同时考虑了针对单个查询的优化和针对批量查询的优化,具有高性能、零额外资源开销的特点,适用于包括ssd、远端内存在内的多种存储介质,具有良好的适用性。
本文档来自技高网...【技术保护点】
1.一种适用于图索引的单查询计算传输流水线并行方法,其特征在于,包括:
2.根据权利要求1所述的适用于图索引的单查询计算传输流水线并行方法,其特征在于,所述发送异步I/O请求读取存储层内下一个候选点对应的完整向量与邻边,包括:发送异步I/O请求读取存储层内下一个候选点对应的完整向量与邻边,并将读取到的下一个候选点对应的完整向量与邻边保存至内存层的缓冲区内;
3.根据权利要求1所述的适用于图索引的单查询计算传输流水线并行方法,其特征在于,所述存储层包括SSD或基于高速内存互联技术连接的远端内存。
4.一种适用于图索引的单查询计算传输流水线并行系统,其特征在于,包括:
5.根据权利要求4所述的适用于图索引的单查询计算传输流水线并行系统,其特征在于,所述发送异步I/O请求读取存储层内下一个候选点对应的完整向量与邻边,包括:发送异步I/O请求读取存储层内下一个候选点对应的完整向量与邻边,并将读取到的下一个候选点对应的完整向量与邻边保存至内存层的缓冲区内;
6.根据权利要求4所述的适用于图索引的单查询计算传输流水线并行系统,其特征
7.一种适用于图索引的批量查询计算传输流水线并行方法,其特征在于,针对批量查询中的每个查询,利用权利要求1至3任意一项权利要求所述的适用于图索引的单查询计算传输流水线并行方法同时并行处理。
8.根据权利要求7所述的适用于图索引的批量查询计算传输流水线并行方法,其特征在于,针对同批次内不同查询的近似候选集和真实候选集通过队列的方式进行隔离。
9.一种适用于图索引的批量查询计算传输流水线并行系统,其特征在于,针对批量查询中的每个查询,利用权利要求4至6任意一项权利要求所述的适用于图索引的单查询计算传输流水线并行系统同时触发执行。
10.根据权利要求9所述的适用于图索引的批量查询计算传输流水线并行系统,其特征在于,针对同批次内不同查询的近似候选集和真实候选集通过队列的方式进行隔离。
...【技术特征摘要】
1.一种适用于图索引的单查询计算传输流水线并行方法,其特征在于,包括:
2.根据权利要求1所述的适用于图索引的单查询计算传输流水线并行方法,其特征在于,所述发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,包括:发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,并将读取到的下一个候选点对应的完整向量与邻边保存至内存层的缓冲区内;
3.根据权利要求1所述的适用于图索引的单查询计算传输流水线并行方法,其特征在于,所述存储层包括ssd或基于高速内存互联技术连接的远端内存。
4.一种适用于图索引的单查询计算传输流水线并行系统,其特征在于,包括:
5.根据权利要求4所述的适用于图索引的单查询计算传输流水线并行系统,其特征在于,所述发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,包括:发送异步i/o请求读取存储层内下一个候选点对应的完整向量与邻边,并将读取到的下一个候选点对应的完整向量与邻边保存至内存层的...
【专利技术属性】
技术研发人员:魏星达,程荣鑫,彭逸帆,陈榕,陈海波,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。