---
title: 召回场景
description: "图1 鲲鹏召回场景上下文对接图"
url: https://www.hikunpeng.com/document/detail/zh/SRA/twp/kunpengsra_19_0004.html
sourcePath: /source/zh/SRA/twp/kunpengsra_19_0004.html
indexId: d3ec57f7e7eba9fd45778a60305aa86d16464bb768d33fad839ca9850e1a2e2b42
---
# 召回场景

#### 场景架构

图1 鲲鹏召回场景上下文对接图


#### 向量检索算法KScaNN

KScaNN是基于倒排索引，结合鲲鹏架构深度优化索引布局、算法流程和计算流程，充分挖掘芯片潜力形成的向量检索算法。基于开源ScaNN算法鲲鹏提供5类优化：查询感知优化、PQ距离算法优化、重排算法优化、使用高效的编译器内建指令&neon指令、系统优化（包括线程数调优、预取调优、Batch Size调优等）。KScaNN实现对接Milvus向量数据库使用。


#### 向量检索算法KBest

KBest是一种基于NSG（Navigating Spreading-out Graph）的高性能近邻搜索算法，用于多维向量近似最近邻搜索。在NSG算法的基础上，KBest进一步优化了近邻搜索的性能和精度。KBest搜索前通过预取参数优化得到当前图结构的最优预取参数，搜索过程中利用图索引预存的入口点快速逼近query，获取query的近邻，同时使用SIMD指令集加速距离计算，搜索结束时进行全/半精度重排以提高排序精度，返回K近邻。相较于开源ANNS算法，KBest可以取得可观的性能提升。KBest算法搜索原理如图2所示。KBest实现对接Milvus向量数据库使用。

图2 KBest算法搜索原理

基于鲲鹏提供5类优化：高性能上层算法、集成多种量化器，可根据实际场景选择使用、使用SIMD指令集优化各平台上的使用性能、搜索结束时进行全/半精度重排以提高排序精度、搜索前通过预取参数优化得到当前图结构的最优预取参数。


#### 向量检索加速组件KVecTurbo

KVecTurbo是鲲鹏自研的向量检索加速组件，可对接openGauss向量数据库使用。KVecTurbo通过将高维向量量化压缩，快速获取query的近邻，同时使用SIMD指令集加速距离计算，用于多维向量最近邻搜索。

基于鲲鹏提供3类优化：采用鲲鹏亲和的向量化指令、路径压缩、低比特量化。


#### 向量检索检索算子库KRL

KRL（Kunpeng Retrieval Library ）检索算子库是基于鲲鹏平台优化的用于加速向量检索的算子库，KRL可通过替换算子的形式对faiss原生的HNSW、PQFS、IVFPQ和IVFPQFS等算法进行加速。

基于鲲鹏提供优化：向量化指令加速，调整内存排布以提升缓存命中，低精度量化+高精度重排等技术。


#### KNewPfordelta库

KNewPfordelta （Kunpeng New PForDelta ）鲲鹏New PForDelta算法，是鲲鹏构建的高效的召回倒排解压缩算法。通过向量指令等方法优化了倒排解压缩的性能。

基于鲲鹏提供优化：采用鲲鹏硬件的向量化指令等技术。


#### Faiss库

对开源Faiss算法库进行了深度优化，通过向量化、维度交织查表累加及向量过滤压缩等关键技术，hnsw算法新增FP16接口支持，显著提升了IVFFlat、IVFPQ、HNSW、PQFS及IVFPQFS多种索引的相似性搜索与聚类效率。

基于鲲鹏提供优化：向量化指令加速，调整内存排布以提升缓存命中，低精度量化+高精度重排等技术。


#### hnswlib库

基于开源hnswlib算法库，针对鲲鹏平台进行了深度优化：通过向量化技术实现FP16高效支持，并应用了预取与指令重排等优化策略。

基于鲲鹏提供优化：采用鲲鹏硬件的向量化指令、指令等技术。


#### Embedding Lookup库

基于开源Monolith大规模实时推荐系统，对核心Embedding Lookup模块进行深度适配与性能优化。

基于鲲鹏提供优化：编译选项调优、自旋锁优化、内存对齐优化及ARM SIMD向量化改造。


#### RaBitQ库

基于开源RaBitQ算法库，将其扩展到ARM64（AArch64）架构，并且引入多项算法优化点。

基于鲲鹏提供优化：能FP16精度优化、LUT加速、SOAR溢出向量分配、ML自适应nprobe等优化特性。


#### DiskANN库

基于开源DiskANN，将其扩展至ARM64（AArch64）架构，并且引入多项算法优化点。

基于鲲鹏提供优化：NEON SIMD向量化、数据布局优化（邻接表驻留内存）、异步IO流水化、精排队列缩减等多项性能优化。
