faiss:Indexing 1M vectors

Guidelines

数据集大约有1M的向量,所以使用穷举索引会非常慢,好的选择是使用IdexIVFFlat索引,它会返回精确距离,但是偶尔会丢掉一个相近的向量,只是因为它不是穷举算法。

下面使用不同的索引在1M的数据集上做索引。主要关注如下的平衡:

  • 速度,测试机器使用"Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz",开启20个线程。报告显示的批量模型,单位是ms。(所有query向量是同时处理的)
  • 准确率。使用“1-NN recall @R”的评测方法,R取值为1,10或者100。这是实际最相似的向量出现在前R召回结果中比值。

注意:这个是最优化的设置,如果使用单线程会慢十倍,如果是逐个发起请求会慢2-3倍(可以参考下面sift_1M的耗时)。

测试的索引类型引用了index_factory函数创建索引时使用索引Key。所有的索引,单次请求返回100个相似结果。

CNN activation maps

从1M图片中抽取4096维度的描述符,请求图片采用通用处理方法。4096D的描述事先会通过PCA降维变成256D(PCA变换的消耗没有被计入结果中),结果如下:

图横轴为准确率,越靠右侧准确率越高,纵轴是单个请求耗时,越靠下方耗时越短, 由此可知IVF适合准确率要求高的环境,IMI适合准确率低,到耗时要求的环境。

注意:IVF16384的结果会比IVF4096稍好,但是在train和add阶段的耗时明显多了很多。

如果需要留意内存消耗,可以使用IndexIVFPQ压缩向量。

 IVF4096,Flat没有任何压缩,用来和其它Index作对比。

例如“OPQ32_128,IVF4096,PQ32”每个向量使用字节数为: code + id = 32+8=40个字节。1M的数据集会被压缩到40M,但是会有预计算表,几何数组等的内存开销。

我们还使用在Imagenet上训练的resnet-34描述符,并在Flickr100M前1M个图像上进行特征提取,我们删除了两个顶部的layer以获得512维度的激活向量。 得到类似的结论:

这个很有意思,PCA128后丢失信息很多,IMI2x10后,丢失信息不多。

SIFT 1M

这是研究论文中常用的基准。 它由从图像块中提取的SIFT描述符(128D)组成。

由上图得到的结论和CNN数据集是类似的。

下面论述一下性能和线程数、批量操作的关系:

  • nt1: 单线程批量操作,
  • nobatch/nobatch_nt1:  单线程且一个一个提交
  • parallelqueries:多线程,一个一个的提交

图纵轴OPS为每秒请求数,越高越好,横轴是10度量(或交叉度量)的10折精度,原文为:“the x-axis is the 10-precision at 10 measure (or intersection measure)”

显示单线程运行时,会慢5倍到12倍。每次提交一个请求时,多线程是没用的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 警告:索引所有PDF对象。 这意味着将对PDF文档中的所有对象进行索引,包括文本、图像、表格等。这可能会导致索引文件变得非常大,因此需要考虑存储和处理这些文件的能力。同时,索引所有对象可能会导致搜索结果不准确或不相关,因为某些对象可能不是用户所需的信息。因此,需要谨慎考虑是否需要索引所有对象,以确保搜索结果的准确性和效率。 ### 回答2: "warning: indexing all pdf objects" 是一个关于 Adobe Acrobat Reader 软件的警告信息。Adobe Acrobat Reader 是一款用于打开和查看 PDF 文件的应用程序,而 "warning: indexing all pdf objects" 这一警告通常出现在打开大尺寸 PDF 文件时。 这个警告的意思是,Adobe Acrobat Reader 正在尝试索引 PDF 文件中的所有对象。在 PDF 文件中,有很多不同的对象,例如图像、文字和表格等。索引这些对象可以加快文件的搜索和查找速度,因此在打开文档时,Adobe Acrobat Reader 将尝试自动索引所有的对象。 然而,当 PDF 文件比较大时,索引所有对象可能需要很长时间。在此过程中,Adobe Acrobat Reader 可能会使用大量的计算机资源,这可能会导致计算机运行缓慢。 为了避免这种情况,可以尝试以下几种方法: 1. 避免打开太大的 PDF 文件; 2. 在打开 PDF 文件时,勾选 "不索引文档中的附件" 选项; 3. 在 Adobe Acrobat Reader 中,选择 "编辑" -> "偏好设置" -> "搜索",然后取消勾选 "启用实时过滤器" 和 "启用单个字符索引" 选项。 总之,这个警告信息表明 Adobe Acrobat Reader 正在索引 PDF 文件的所有对象,可能会影响计算机的性能。需根据实际情况采取相应措施。 ### 回答3: “warning: indexing all pdf objects”是一种警告信息,通常出现在处理PDF文档的过程中。它的意思是正在对所有的PDF对象进行索引,需要一定的时间和资源。这个警告信息可能会对PDF处理的效率和速度产生一定的影响。 在PDF文档中,所有的内容都被保存为对象,这些对象包括图片、文字、字体等等。索引所有PDF对象的目的是为了方便后续的检索和搜索。当我们使用某些工具对PDF文档进行处理时,比如OCR识别、文本提取、PDF合并等等,可能需要先对所有的PDF对象进行索引。 虽然索引PDF对象可以提高检索和搜索的效率,但是它也有一定的缺点。首先,需要消耗一定的计算机资源和时间,特别是当PDF文档比较大和复杂的时候。其次,如果某些PDF对象被索引了但并不需要,会浪费一些空间和资源。 因此,在使用PDF处理工具时,我们需要根据具体情况决定是否需要索引所有PDF对象。如果PDF文档比较小和简单,那么索引所有对象可能不会对处理效率产生太大影响;如果PDF文档比较大和复杂,那么我们可以选择只索引某些必要的对象,或者使用一些优化工具来提高处理速度。在任何情况下,我们都需要根据具体情况进行调整,以获得最佳的处理效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值