简介
本文档提供了SRA_Recall的安装指导、接口说明与示例代码,旨在帮助用户快速熟悉SRA_Recall的使用。
SRA_Recall概述
SRA_Recall是华为提供的基于鲲鹏计算平台优化的召回算法库。通过针对鲲鹏处理器的指令集架构与内存访问机制进行底层优化,提升了召回算法的计算效率与吞吐量,尤其适用于高并发召回场景。
SRA_Recall的组成如表1所示。
算法 |
描述 |
适用场景 |
|---|---|---|
KBest |
KBest(Kunpeng Blazing-fast embedding similarity search thruster)鲲鹏图检索算法,是鲲鹏自研的高效的图检索算法。通过量化、NUMA访存调度等方法优化了最近邻搜索的性能和精度,用于多维向量近似最近邻搜索。 |
适用于向量检索的各类应用领域,包括网络搜索、多模态检索、推荐系统、广告投放以及RAG(Retrieval-Augmented Generation)等领域。 |
KScaNN |
KScaNN(Kunpeng Scalable Nearest Neighbors)是基于倒排索引,结合鲲鹏架构深度优化索引布局、算法流程和计算流程,充分挖掘芯片潜力形成的向量检索算法。 |
|
KVecTurbo |
KVecTurbo是鲲鹏自研的向量检索加速组件,可对接openGauss向量数据库使用。KVecTurbo通过将高维向量量化压缩,快速获取query的近邻,同时使用SIMD指令集加速距离计算,用于多维向量最近邻搜索。 |
|
KNewPfordelta |
KNewPfordelta是鲲鹏基于开源PForDelta算法优化的一种专为高效压缩与快速解压倒排索引设计的整数压缩算法。通过分块处理、异常值分离、SIMD加速三重优化,在倒排索引压缩领域实现了存储成本与查询性能的极致平衡,主要应用于搜索引擎、推荐系统等需要快速处理大规模有序整数序列(如文档ID列表、词频位置)的场景。 |
|
hnswlib |
hnswlib是开源图检索算法,基于鲲鹏平台增量支持了FP16数据类型检索功能,通过向量化、预取与重排等方法优化了检索算法性能。 |
|
Faiss |
基于开源Faiss算法库,通过向量化、维度交织查表累加及向量过滤压缩等方法,对IVFFlat、IVFPQ、HNSW、PQFS及IVFPQFS等索引做优化,加速相似性搜索与聚类方面的性能。 |
Elasticsearch概述
Elasticsearch是一个分布式搜索引擎,具有高可伸缩性、高可靠性和易管理的特点。它基于Apache Lucene构建,支持全文检索、结构化检索和分析,并能够将这三者结合起来。Elasticsearch广泛应用于日志管理、实时数据分析、全文搜索等场景。
Elasticsearch的主要特点包括:
- 分布式架构:支持水平扩展,能够处理大量数据。
- 实时搜索:数据写入后立即可搜索。
- 高可用性:通过数据复制和故障转移机制保证高可用性。
- 灵活的查询语言:支持丰富的查询和聚合操作。
- RESTful API:提供易于使用的RESTful API,支持多种编程语言。
应用场景
SRA_Recall主要在以下场景中使用:
- 搜索:网络搜索、多模态检索
- 推荐:推荐系统
- 广告:广告投放