文档
注册

总体说明

  • mxIndex特征检索组件的C++接口遵循开源的Faiss接口的异常处理机制,故用户必须在try/catch语句块内进行调用以及异常处理,具体的处理范例参见代码参考,否则在使用的过程中存在异常抛出的风险。
  • 特征检索FeatureRetrieval基于CANN开放形态,实际检索业务进程运行在昇腾芯片设备( Device)侧,特征底库存储于昇腾芯片DDR内,特征维度和数量决定内存占用大小,入库或查询向量过多会引起设备侧OOM导致程序异常,当前单个Index(底库)支持最大库容视昇腾芯片设备侧内存大小而定,业务侧需要根据实际需求规划Index个数。
  • 对于特征检索中索引算法Index使用昇腾芯片设备侧的资源,如果超出限制(如对于特定Index进行过度的底库数据添加等),可能会导致特定的芯片上的索引算法Index数据报错,并在Host侧抛出异常。尤其内存资源不足OOM时,可能引起设备侧服务短暂不可用,但特征检索功能可以在一分钟内恢复(需要重新入库)。

FeatureRetrieval继承Faiss中的Index,并支持多种检索Index,提供建库、查询、删库等接口,对于各个对象间的继承关系如图1图2所示。

图1 部分AscendIndexConfig间继承关系
图2 部分AscendIndex间继承关系
  • 由于部分FeatureRetrieval特征检索的输入为指针类型的输入,请用户确保此类指针为合法值,以防止FeatureRetrieval的运行过程中可能产生的越界读写等潜在风险和问题。此外,FeatureRetrieval是助力昇腾AI处理器完成向量检索计算,因此输入的Device ID需要用户确保为合法值,否则可能因为连接设备侧失败导致功能失效。
  • 当前单个Device只能被一个Host进程使用,当一个Device被某个进程占用时,其他检索进程对该Device的连接请求会执行失败,等待20s后重连,尝试5次仍然失败时程序会报错退出。
  • Faiss是在业界使用非常广泛的向量检索加速库,为了便于生态用户将向量检索聚类业务快速从CPU/GPU平台迁移到昇腾平台,昇腾平台众多算法的基类AscendIndex继承自faiss::Index类,faiss::Index类中d、ntotal等成员变量为public,在使用AscendIndex和AscendIndexInt8各子类过程中,请勿直接修改此类public成员变量。
  • 本文档不再描述基类faiss::Index的成员函数和变量。
  • 关于Config类中的resourceSize变量,其作用是预留特征检索过程存储中间结果的内存大小,单位为Byte,当底库特征较大(如超过300万)且查询请求数较大时需要调大,避免检索过程中因申请临时内存导致性能抖动(衰退),建议设置为最大值1024 * 1024 * 1024 Byte。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词