当前位置: 首页 > article >正文

深度学习-84-RAG技术之Facebook AI Similarity Search工具Faiss基础应用示例

文章目录

  • 1 faiss介绍
    • 1.1 Faiss基础依赖
    • 1.2 Faiss工作原理
    • 1.3 Train流程
    • 1.4 Search流程
      • 1.4.1 IndexFlatL2或IndexFlatIP
      • 1.4.2 IndexIVFFlat
      • 1.4.3 IndexIVFPQ
  • 2 代码示例
    • 2.1 基本参数设置
    • 2.2 准备向量库向量
    • 2.3 准备查询向量
    • 2.4 构建向量库索引
    • 2.5 相似向量查询
    • 2.6 增删索引向量
    • 2.7 保存加载索引
  • 3 参考附录

1 faiss介绍

Faiss全称Facebook AI Similarity Search,是FaceBook的AI团队针对大规模向量进行TopK相似向量检索的一个工具,使用C++编写,有python接口,对10亿量级的索引可以做到毫秒级检索的性能。

使用faiss搭配合适的model和embedding函数,可以帮助我们构建人脸识别,相似图片检索,LLM知识库问答,推荐系统召回模块等应用。

faiss的主要原理是构建base vectors向量数据的index索引,然后利用索引对search vectors实现TopK相似向量检索。

faiss支持许多不同的构建索引的方式,以下是一些较推荐使用的类型。
(1)Flat:暴力精确检索,全局最优,适合数十万级。
(2)IVF100,Flat:倒排暴力检索(100聚类后暴力检索),非全局最优但召回高,适合数百万级。
(3)HNSW64: 图网络检索,Hierarchical NSW(Navigable Small World),每个节点64条边,检索复杂度log(logn),适合千万上亿规模以及更大规模的图索引,缺点是构建索引过程较慢,占用很大的存储。

一般来说cpu足够快了
pip ins


http://www.kler.cn/a/507046.html

相关文章:

  • 【算法学习笔记】30:埃氏筛(Sieve of Eratosthenes)和线性筛(Linear Sieve)
  • 浅谈云计算19 | OpenStack管理模块 (上)
  • 卷积神经05-GAN对抗神经网络
  • 【大前端】Vue3 工程化项目使用详解
  • PyTorch使用教程(1)—PyTorch简介
  • 【蓝桥杯】43687.赢球票
  • 【单片机开发 - STM32(H7)】启动流程、方式、烧录方式详解
  • JS Clipboard API
  • 本地部署Web-Check网站检测与分析利器并实现远程访问实时监测
  • python爬虫笔记
  • 当PHP遇上区块链:一场奇妙的技术之旅
  • 【Python】使用python 对excel文件进行加密
  • 基于SpringCloud的广告系统设计与实现(一)
  • vscode 切换文件时,修改内容时很卡,怎么解决?
  • No.33 笔记 | Docker入门:基础概念与实用指南
  • wordpress的火车头商品发布接口
  • iOS面试模版
  • 赤店商城系统点餐小程序多门店分销APP共享股东h5源码saas账号独立版全插件全开源
  • 学习threejs,使用OrbitControls相机控制器
  • STM32的集成开发环境STM32CubeIDE安装
  • spark,读取和写入同一张表问题
  • 掌握 TypeScript 的 `Omit` 工具类型:灵活操作对象属性的艺术
  • [Qt]常用控件介绍-布局管理器-QVBoxLayout、QHBoxLayout、QGridLayout、QFormLayout、QSpace控件
  • AI实验室copilot自动化科研,AMD联手约翰霍普金斯大学:成本节约84%!
  • 【JVM-6】JVM 监控工具 jstat 的使用和具体应用案例
  • 【区间DP】【hard】力扣730. 统计不同回文子序列