图像视频检索: faiss: Billion-scale similarity search with GPUs

图片向量相似检索服务(4)——基于faiss实现 概述 为了让尝试“以图搜图”的相似图片检索的场景,基于Faiss向量索引计算和图片特征提取模型 VGG16 设计了一个以图搜图系统。 开源地址:https://github.com/yaolipro/image-retrieval 检索场景 推理流程:读取图片,算法生成特征向量 特征入库:把特征向量存入ES中 检索流程:线上实时向量检索 具体流程如下图: Faiss简介 faiss是为稠密向量提供高效相似度搜索和聚类的框架。由Facebook AI Research研发。 具有以下特性。 提供多 阅读详情

faiss: Billion-scale similarity search with GPUs 
paper 
https://arxiv.org/abs/1702.08734
github  https://github.com/facebookresearch/faiss

摘要:
【提出问题】
特种数据库系统中的相似度搜索应用程序处理诸如图像或视频之类的复杂数据,这些数据通常由
高维特征表示并且需要特殊的索引结构。本文解决相似度搜索更好利用GPU的问题。尽管GPU
擅长数据并行任务,但先前的方法遇到算法瓶颈:暴露出较少的并行性(例k-min selection),
或不能充分利用内存的层次结构。
【解决方案】
我们提出了一种用于k-selection的设计。其运行性能最高可达理论峰值55%,使得近似最近邻
ANN(approximate nearest neighbor)实现比现有GPU SOTA快8.5倍。通过提出brute-force
优化设计,基于乘积量化(PQ)的近似和压缩域搜索,我们尝试应用于不同的相似性搜索场景。
在所有这些设置中,我们都大大超越了现有SOTA技术。我们的实现可在35分钟内,Yfcc100M
数据集的9500万张图像上构建高精度k-NN图,利用4个Titan XGPU卡,在不到12小时的时间
内连接10亿个矢量的图。为了比较和复现,我们已经开源了方法。

1.引论

本文做出了以下贡献:  
GPU k-selection,在快速寄存器存储器中运行,足够的灵活性可以融合其他内核,为此我们提供了
复杂性分析;  用于在GPU上进行精确和近似k-nearest neighbor查找的近优算法布局;实验表明,
在单或多GPU配置中,这些改进在中型到大型的最近邻居搜索任务上性能大幅超越历史最好。 

本文的结构如下。第2节介绍了上下文和符号。第3节回顾了GPU体系结构,讨论了将其用于相似性
搜索时出现的问题。第4节介绍了我们的主要贡献之一,即我们针对GPU的k-selection,而第5节则
提供了有关算法计算布局的细节。最后,第6节为我们的方法提供了广泛的实验,与SOTA技术进行
了比较,并展示了图像集合的具体用例。

===================================

源代码实现/原理解释: https://github.com/facebookresearch/faiss/wiki
Faiss是一个用于高效相似性搜索和稠密向量聚类的库。 它包含的算法可搜索任意大小的向量集,
直至放不到RAM的向量。 它还包含用于评估和参数调整的支持代码。 Faiss用C ++编写用Python封装。
一些最有用的算法是在GPU上实现的。 它是由Facebook AI Research开发的。
Faiss基本构建块: 聚类 clustering, 降维PCA, 乘积量化quantization
Faiss provides an efficient k-means implementation,Clustering on the GPU.
Computing a PCA,
PQ encoding / decoding.

A Survey of Product Quantization,2018,
https://www.jstage.jst.go.jp/article/mta/6/1/6_2/_pdf
Abstract:
Product Quantization (PQ) search and derivatives are popular and successful methods for
large-scale approximated nearest neighbor(ANN) search. In this paper, we review the
fundamental algorithm of this class of algorithms and provide executable sample codes.
We then provide a comprehensive survey of the recent PQ-based methods.
-
-A relation of PQ-based methods
-

 

faiss-web-service , https://github.com/plippe/faiss-web-service
gRPC faiss-server,  https://github.com/ynqa/faiss-server

================================================================

faiss简介及示例  https://blog.youkuaiyun.com/kanbuqinghuanyizhang/article/details/80774609
Faiss 在项目中的使用 https://waltyou.github.io/Faiss-In-Project/
Facebook开源向量检索框架Faiss   https://zhuanlan.zhihu.com/p/266589272

图像检索:向量索引,, https://yongyuan.name/blog/vector-ann-search.html

 

youtube视频推荐系统
https://daiwk.github.io/posts/dl-youtube-video-recommendation.html

 

Billion-scale semantic similarity search with FAISS+SBERT

https://towardsdatascience.com/billion-scale-semantic-similarity-search-with-faiss-sbert-c845614962e2

【中译】https://www.yanxishe.com/TextTranslation/2987

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

https://arxiv.org/abs/1908.10084

 【中译】 https://blog.youkuaiyun.com/weixin_43922901/article/details/106014964

 

 

 

【FAISS指南】打造高性能图像检索应用 使用 FAISS 构建高性能的图像检索应用是一种非常有效的方法,可以帮助您在大规模图像数据集中快速找到最相似的图像。 阅读详情

相关推荐

视觉特征-自监督-同源不同crop视图一致性【2023-04】:DINOv2(无监督学习鲁棒视觉特征)【12 亿张互不重复的图像】【判别式自监督方法】【交叉熵损失+iBOT损失】

近期,自然语言处理领域在大量数据上进行模型 Pretraining 取得的突破,为计算机视觉中类似Foundation Model 的发展开辟了道路。这些模型能够生成通用视觉特征,即无需微调即可跨图像分布和任务发挥作用的特征,从而大幅简化图像在任何系统中的使用。本研究表明,现有的 Pretraining 方法,尤其是自监督方法,如果在来自多样化来源的充足精选数据上进行训练,便能够产生此类特征。我们重新审视了现有方法,并结合不同技术,从数据规模和模型规模两方面扩展我们的 Pretraining。

u013250861的博客 362

深度学习之以图搜图实战(PyTorch + Faiss)

 《深度学习之以图搜图实战(PyTorch + Faiss) 》课程从实战的角度出发,方案来源于工业界实际业务应用(例如:京东、淘宝、拍照搜题、搜索引擎搜索业务等)。通过深度学习工具PyTorch 完成图片特征抽取,结合Facebook AI团队开源的针对聚类和相似性搜索库,完成图片特征索引构建和在线图片检索。    从0到1完成以图搜图的功能实现,针对课程业务分析、数据处理,图片特征索引构建和优化,在线图片检索功能全程实战操作,以最接地气的方式详解每一步流程、解决方案和代码实现。   老师的授课风格: 以实战为主,结合理论,提供免费技术答疑和交流。让大家彻底掌握基于深度学习的图像搜索方案和功能实现。

如何实现图像搜索,文搜图,图搜图,CLIP+faiss向量数据库实现图像高效搜索

如何实现图像搜索,文搜图,图搜图,CLIP+faiss向量数据库实现图像高效搜索 这是AIGC的时代,各种GPT大模型生成文本,还有多模态图文并茂大模型, 以及stable diffusion和stable video diffusion 图像生成视频生成等新模型, 层出不穷,如何生成一个图文并貌的文章,怎么在合适的段落加入图像,图像用什么方式获取, 图像可以使用搜索的形式获取,也可以使用sta...

高颜值的杀生丸(此博客转载自我的博客园) 3636

OpenVINO™ 开发者说:基于 OpenVINO™ 的端侧私有化 RAG 系统 构建个人知识库智能管家的工程实践

本文提出了一种基于 OpenVINO 推理框架的端侧私有化 RAG(Retrieval-Augmented Generation)系统架构,通过深度融合 BGE Embedding 向量检索与 Qwen2.5 大语言模型,构建了完整的个人知

英特尔开发人员专区 861

一文读懂 Faiss:开启高维向量高效检索的大门

Faiss(Facebook AI Similarity Search),如同一位身怀绝技的武林高手,为高维向量相似性搜索带来了高效的解决方案。本文将以清晰的章节结构、完整的内容和严谨的逻辑,深入剖析 Faiss,带你领略其独特的魅力。

进一步有进一步的欢喜~ 4708

Billion-scale similarity search with GPUs

Billion-scale similarity search with GPUs

Facebook AI实验室开源相似性搜索库Faiss:性能高于理论峰值55%,提速8.5倍

在用户日常搜索过程中,一个经常出现的问题即大多数返回的网站结果拥有完全相同或者几乎一样的信息。而应用了相似性搜索的相似引擎即可为用户返回最恰当、最合适的结果,同时隐藏或者丢弃那些重复的数据。 但是,目前相似性搜索领域需要克服的难题即它的规模和运行速度。雷锋网近日了解到,Facebook的人工智能研究团队就称已在该问题上取得了重要进展。Facebook在...

weixin_33699914的博客 362

论文解析-sciPENN

用这2个CITE-seq共有的protein作为训练集,分别将他们特有的protein作为测试集,评估sciPENN对CITE-seq数据集中缺失的protein丰度预测准确度。来自Seurat 4 的PBMC数据集,样本被注射水疱性口炎病毒 (VSV) 载体 HIV 疫苗,数据集包含每个样本注射疫苗0天、3天、7天的CITE-seq数据。PBMCs作为训练集,MALT作为测试集,利用scRNA-seq测试17个蛋白质表达水平。Monocyte:随机取4个样本作为训练集,剩余4个样本作为测试集。

weixin_46065198的博客 1020

DINOv2:结合FAISS进行图像相似性搜索

早些时候,MetaAI 通过开源 DINOv2 在计算机视觉领域取得了一个重要的里程碑,该模型是在 1.42 亿张图像的庞大数据集上训练的。此版本使 DINOv2 与 OpenAI CLIP直接竞争,初步评估表明它甚至可能在某些任务上超越它。然而,浏览现有文档可能难以利用 DINOv2 的功能。在本文中,我们将探讨图像相似性任务需要采取的步骤,并对其性能进行全面评估。图像相似性的意义在之前的故事...

Warmer_Sweeter 4091

MATLAB打开.m文件乱码解决办法

Matlab打开.m文件出现中文乱码问题,是因为Matlab存在两种编码格式:GBK和UTF-8,而不同版本的Matlab编码格式可能不统一,因此在不同版本的Matlab打开文件,由于编码格式的改变,会导致注释乱码。 1.查看你的Matlab的文件编码方式,在Matlab的命令行窗口输入feature('locale') ,如下图,可以看到默认编码为GBK,那问题就变成了将Matlab的文件编码方式GBK修改成UTF-8; 2.找到你的Matlab安装目录bin文件夹下的lcdata_utf.

zhugby的博客 4万+

基于VUE的智慧园区可视化平台(开题报告+源码)

本系统(程序源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景: 随着城市化进程的加速,园区作为城市发展的重要组成部分,其管理和运营效率直接影响到城市的经济发展和居民生活质量。传统的园区管理方式已经难以满足现代城市对于高效率、智能化的需求。因此,利用先进的信息技术构建一个智慧园区可视化平台显得尤为重要。Vue.js作为一个高效的前端框架,能够帮助开发一个动态的、用户友好的智慧园区可视化平台,实现园区管理的数字化和智能化。

liu10611的博客 1179

以图搜图升级版faiss框架一之faiss介绍

1. Faiss Faiss是一个用于高效相似性搜索和密集向量聚类的库。它包含搜索任意大小的向量集的算法,最多可能不适合RAM。它还包含用于评估和参数调整的支持代码。Faiss是用C ++编写的,包含Python / numpy的完整包装器。一些最有用的算法是在GPU上实现的。它由Facebook AI Research开发。 2. 介绍 Faiss包含几种相似性搜索方法。它假设实例表示为向量并由...

weixin_42435657的博客 315

abaqus2matlab的安装与使用:如何用matlab提取abaqus的odb结果

官网abaqus2matlab官网地址matlab社区地址matlab社区地址在这里可以看到.m文件的源码论文:Abaqus2Matlab: A suitable tool for finite element post-processingabaqus2matlab可以处理.inp、.fil、.odb三种类型的文件。.inp文件:处理功能就在于只是单纯的输出inp文件,由于我自己写了自己的函数,不需要用到这个功能。

qianxin1234的博客 2016

【以图搜图代码实现2】--faiss工具实现犬类以图搜图

Faiss的全称是Facebook AI Similarity Search,是FaceBook针对大规模相似度检索问题开发的一个工具,底层是使用C++代码实现的,提供了python的接口,号称对10亿量级的索引可以做到毫秒级检索。使用faiss的基本步骤1、数据转换:把原始数据转换为"float32"数据类型的向量。2、index构建:用 faiss 构建index3、数据添加:将向量add到创建的index中4、通过创建的index进行检索。

qq_45584615的博客 1475

IP-Guard安全网关实例

企业相关情况: 1.OA系统,主要为日常工作使用,该系统IP为192.168.1.2,端口为8080; 2.文件共享服务器,用于存放日常工作资料和文档,该文件共享服务器的IP为192.168.1.1,其中\\192.168.1.1\private 目录中的存放着公司重要文档,不能随意外传; 3.安全网关已采用串联的方式联入网络,IP为192.168.2.6,所有机器访问OA系统和文件共享服务...

IP-Guard专栏 705

手把手教你学AI GPU UMD驱动软件开发专栏--1.1 UMD(用户模式驱动)的定义与定位

摘要:UMD(用户模式驱动)是GPU驱动架构中的关键组件,负责连接AI应用与硬件。作为运行在用户空间的动态链接库,UMD通过减少系统调用开销显著提升AI计算性能。其核心功能包括API转换、资源管理和命令生成,同时具备安全性高(崩溃不影响系统)、开发灵活等优势。随着AI发展,UMD已从图形驱动演变为深度学习加速的关键组件,支持TensorCore等硬件特性优化。未来趋势包括深度框架集成、硬件感知增强和虚拟化支持。UMD通过性能优化和安全隔离机制,成为现代AI计算基础设施的理想选择。

MHD0815的博客 170

深入理解Faiss:高效向量检索的利器

Faiss是由Facebook AI Research(FAIR)团队开发的一个高效向量相似性搜索库。它主要用于快速检索和聚类大规模高维向量数据。Faiss不仅支持CPU和GPU,还提供了丰富的索引结构和优化算法,能够在保证高精度的同时,大幅提升检索速度。Faiss作为一个高效的向量检索库,凭借其丰富的索引结构、强大的GPU加速能力和灵活的API,受到了广泛的关注和应用。无论你是构建推荐系统、图像搜索还是进行自然语言处理,Faiss都能为你提供高效、可靠的解决方案。

东境物语 2万+

手把手教你安装 OpenClaw 小龙虾(MAC安装教程),一次成功不踩坑

本文详细介绍了在Mac上安装OpenClaw的完整流程。主要内容包括:1)准备工作(磁盘空间、网络环境、终端工具);2)安装Homebrew包管理器及常见问题解决;3)安装Node.js 22+版本(环境核心);4)Git安装与验证;5)OpenClaw项目克隆、依赖安装及运行配置;6)大模型配置方法(以MiniMax为例)。文章提供了详细的命令行操作步骤和常见错误解决方案,特别强调了网络环境要求和Apple Silicon芯片的原生支持注意事项。最后展示了验证配置成功的方法和资源获取渠道。

Chengbei11的博客 6337

Dinov2 + Faiss 图片检索

Dinov2+FAISS实现快速图像检索

蓝羽飞鸟的博客 1642

VLA仿真平台:Isaac sim、MuJoCo

在虚拟仿真领域,VLA(Virtual Learning Agent)仿真器是用于开发和训练虚拟机器人代理的环境,它们为机器人提供了一个平台来进行各种任务的模拟和学习,特别是在强化学习(RL)中。两款广泛应用的仿真器是和。这两者各有其特点和优势,适用于不同类型的机器人研究和开发。

u013250861的博客 858

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

用sentencebert、sbert + faiss对比学习训练词向量原理与实战

1、推广搜:类似推荐算法,召回相似向量表征的文本2、求余弦相似度:两个词(句)向量求语义相似度。

weixin_45079449的博客 3069

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Faiss原理与使用总结

另一种方法是构建多个模态的独立索引,查询时分别计算查询向量与各模态数据的相似度,通过加权融合或其他策略综合决策。假设我们拥有一个包含数万张图像的数据库,目标是构建一个图像检索系统,用户上传一张图片,系统返回与之最相似的若干张图片。本案例将利用Faiss强大的向量相似度搜索能力,结合深度学习模型进行图像特征提取,实现高效准确的图像检索。查询时,将查询向量广播到各服务器,分别搜索子索引,然后汇总结果。查询时,输入视觉和文本特征,混合索引将分别在两个子索引中搜索,返回综合结果。首先,确保已安装Faiss库。

zevjay的博客 4627

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Faiss相似性搜索类库

Facebook 人工智能实验室(FAIR)基于十亿级别的数据集构建了最近邻搜索算法的实现,这比之前介绍的已知文献中在 GPU 上实现的最先进且最快的 k-selection 算法还要快大约 8.5 倍,因此创造了新的记录,包括第一个基于十亿高维向量构建的 k 最近邻图。 关于相似性搜索 传统的数据库是由包含符号信息的结构化数据表组成。比如,一个图片集可以表示为一个数据表,每行代表一个被索引的...

深藏功与名 3405

向量检索(一)Faiss 在工业界的应用和常见问题解决

传统的搜索,使用关键做精确的查找,利用倒排索引在索引库中搜索。日常在用的百度,Google都属于关键词搜索。 在 AI 时代我们需要查找一张相似的图片,一个问题的答案,或者根据一段音乐查找对应的歌曲,这些情况下没有准确的关键词用来做检索。 这些图片,问题(文本),语音,不再是简单的一个一维量化的数字,而是包含了大量的属性特征。 因而不合适使用传统的关键字搜索引擎来查找。 对于文本,图片,语音,视频,DNA信息等等,都可用向量来表示,数据被特征化处理后用来表示这条数据的向量称之为 Embedding

千里之行 1万+

图像搜索引擎DIY【CLIP+FAISS】

图像的语义可以用称为嵌入的数值向量表示。比较这些低维嵌入向量(而不是原始图像)可以实现高效的相似性搜索。对于数据集中的每个图像,我们将创建一个嵌入向量并将其存储在索引中。当提供文本查询或参考图像时,将生成其嵌入并将其与索引嵌入进行比较以检索最相似的图像。嵌入:使用 CLIP 模型提取图像的嵌入。索引:嵌入存储为 FAISS 索引。检索:使用 FAISS,查询的嵌入与索引嵌入进行比较,以检索最相似的图像。

新缸中之脑 1862

基于Vision Transformer(ViT)和FAISS的高效图像检索系统实现解析

在显微镜图像分析领域,快速准确地检索相似图像是一项关键技术。本文解析了一个基于Vision Transformer(ViT)和FAISS的高效图像检索系统实现,该系统来自python_for_microscopists项目。我们将深入探讨其核心组件和实现细节。 ## 核心组件 ### 1. 图像数据集处理类(ImageDataset) `ImageDataset`继承自PyTorch的`Da...

gitblog_00890的博客 501
上一篇: LM详解 GPT3,GPT2, GPT1 论文译读
下一篇: benchmark: GLUE ,CoQA,SQuAD
WorldModel
博客等级 码龄27年 23粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值