向量数据库介绍

2023-11-06

1.什么是向量数据

    向量数据库是一种专门用于存储和检索向量数据的数据库。它不同于传统的关系型数据库,而是基于向量相似度匹配的方式来实现高效的数据查询和分析。

图片

2.向量数据库的应用场景

2.1  应用场景概览

        向量数据库是一种专门用于存储和检索向量数据的数据库,它可以处理高维稠密和稀疏向量数据,对于数据量大、数据维度高、需要实时检索和相似度匹配的场景非常适用。以下是一些常见的向量数据库应用场景:

  1. 图像、音频和视频检索:向量数据库可以根据相似度来检索图片、音频和视频资料,用于图像识别、音频识别、视频识别等应用。

  2. 自然语言处理:向量数据库可以存储和检索大量的文本数据,用于自然语言处理领域的文本分类、聚类和相似度计算等。

  3. 推荐系统:向量数据库可以存储和检索用户行为数据和商品特征向量,用于推荐系统的商品推荐、用户画像和个性化推荐等。

  4. 医疗领域:向量数据库可以存储和检索医疗图像和病历数据,用于医疗图像诊断、病历分类和病情分析等应用。

  5. 金融领域:向量数据库可以存储和检索金融数据,用于金融风控、股票分析和交易策略等应用。

  6. 搜索引擎:向量数据库可以存储和检索网页、图片等数据,用于搜索引擎的文本和图像

2.2 向量数据库在人工智能领域的应用

        向量数据库被广泛地用于大模型训练、推理和知识库补充等场景:支撑训练阶段海量数据的分类、去重和清洗,给大模型的训练降本增效;通过新数据的带入,帮助大模型提升处理新问题的能力,突破预训练带来的知识时间限制,避免大模型出现幻觉;提供一种私有数据连接大模型的方式,解决私有数据注入大模型带来的安全和隐私问题,加速大模型在产业落地。

        简而言之,向量数据库可以解决大模型预训练成本高、没有“长期记忆”、知识更新不足、提示词工程复杂等问题,突破大模型在时间和空间上的限制,加速大模型落地行业场景。

图片

3.向量数据库的使用

3.1 向量数据库产品

     目前市场上有很多向量数据库产品,以下是一些比较知名的向量数据库产品:

  1. Milvus:由开源社区提供的向量数据库,支持高维向量数据存储、检索和相似度匹配,可应用于图像、音频、自然语言处理等多个领域。

  2. Faiss:由Facebook开发的向量数据库,支持高效的向量相似度计算和查询,是图像检索、自然语言处理等领域的重要工具。

  3. Annoy:也是一款开源的向量数据库,支持快速的近似最近邻搜索和低维向量数据的可视化,可应用于推荐系统、计算机视觉等领域。

  4. TencentCloud Vector Database:由腾讯云提供的向量数据库,支持高维向量数据存储、检索和相似度匹配,可应用于推荐系统、金融风控等领域。

  5. MilvusDB:由Zilliz公司开发的向量数据库,支持高维向量数据存储、检索和相似度匹配,可应用于图像、音频、自然语言处理等多个领域。

3.2 选择向量数据库时考虑哪些因素

  1. 数据存储和检索效率:好的向量数据库应当具有高效的数据存储和检索能力,能够快速地存储和检索大量的向量数据。

  2. 相似度匹配精度:好的向量数据库应当具有高精度的相似度匹配能力,能够准确地计算和返回最相似的向量数据。

  3. 支持的向量数据类型和维度:好的向量数据库应当支持多种向量数据类型和高维向量数据存储和检索,能够满足不同场景的需求。

  4. 可扩展性和易用性:好的向量数据库应当具有良好的可扩展性和易用性,能够方便地集成到现有系统中,支持横向和纵向扩展。

  5. 安全性和稳定性:好的向量数据库应当具有高度的安全性和稳定性,能够保障数据的安全和稳定的运行。

        综合以上几个方面,可以评估一个向量数据库的好坏。另外,需要根据不同的应用场景和需求,选择适合的向量数据库产品。

4.使用示例-PostgreSQL向量扩展

      pgvector 是一个基于 PostgreSQL 的扩展,为用户提供了一套强大的功能,用于高效地存储、查询和处理向量数据。它具有以下特点:

  • 直接集成:pgvector 可以作为扩展直接添加到现有的 PostgreSQL 环境中,方便新用户和长期用户获得矢量数据库的好处,无需进行重大系统更改。

  • 支持多种距离度量:pgvector 内置支持多种距离度量,包括欧几里德距离、余弦距离和曼哈顿距离。这样的多功能性使得可以根据具体应用需求进行高度定制的基于相似性的搜索和分析。

  • 索引支持:pgvector 扩展为矢量数据提供高效的索引选项,例如 k-最近邻 (k-NN) 搜索。即使数据集大小增长,用户也可以实现快速查询执行,并保持较高的搜索准确性。

  • 易于查询语言访问:作为 PostgreSQL 的扩展,pgvector 使用熟悉的 SQL 查询语法进行向量操作。这简化了具有 SQL 知识和经验的用户使用矢量数据库的过程,并避免了学习新的语言或系统。

  • 积极的开发和支持:pgvector 经常更新,以确保与最新的 PostgreSQL 版本和功能兼容,并且开发者社区致力于增强其功能。用户可以期待一个受到良好支持的解决方案,满足其矢量数据的需求。

  • 稳健性和安全性:通过与 PostgreSQL 的集成,pgvector 继承了相同级别的稳健性和安全性功能,使用户能够安全地存储和管理其矢量数据。

        总之,pgvector 是一个功能强大的 PostgreSQL 扩展,为用户提供了高效、灵活和可靠的方式来处理向量数据。它的直接集成、多种距离度量支持、索引支持和易于访问的查询语言使其成为处理矢量数据的理想选择。

4.1 使用示例

        使用类型为 vector(3) 的 embedding 列创建 tblvector 表。 这样定义,它在三维平面中表示为 three coordinates,这有助于评估向量的位置。

(1)新建表

CREATE TABLE tblvector(
    id bigserial PRIMARY KEY,
    embedding vector(3)
    );

(2)数据插入

INSERT INTO tblvector (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]'), (3, '[5,4,6]'), (4, '[3,5,7]'), (5, '[7,8,9]');

(3)利用 Insert into ... ON CONFLICT 语句,插入记录,如果存在则更新

INSERT INTO tblvector (id, embedding) VALUES (1, '[1,2,3]'), (2, '[4,5,6]')
ON CONFLICT (id) DO UPDATE SET embedding = EXCLUDED.embedding;

(4)删除

DELETE FROM tblvector WHERE id = 1;

(5)若要检索向量并计算相似性,请使用 SELECT 语句和内置向量运算符。 例如,查询会计算给定向量与存储在 tblvector 表中的向量之间的欧几里得距离(L2 距离),根据计算的距离对结果进行排序,并返回最接近的五个最相似的项。

SELECT * FROM tblvector 
ORDER BY embedding <-> '[3,1,2]' 
LIMIT 5;

(6)使用“<->”运算符穿查询,这是用于计算多维空间中两个向量之间距离的“距离运算符”。 查询返回所有与向量 [3,1,2] 的距离小于 6 的行。

SELECT * FROM tblvector WHERE embedding <-> '[3,1,2]' < 6;

5.总结

    最近在学习基于大模型的应用搭建的能力,刚刚碰到了向量数据库这个概念,本文是向量数据库的科普文,介绍了向量数据库的概念、应用场景、选择向量数据库产品的考虑点,最后以PostgreSQL向量扩展示例展示向量数据库的使用。

参考文档:

[1] PostgreSQL pgvector:如何利用向量数据库提升搜索效率和精度

[2] 探索向量数据库的力量:释放大型语言模型之外的潜力

[3] 如何在PostgreSQL中启用和使用pgvector

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向量数据库介绍 的相关文章

  • 如何在CentOS安装SQL Server数据库并通过内网穿透工具实现公网访问

    文章目录 前言 1 安装sql server 2 局域网测试连接 3 安装cpolar内网穿透 4 将sqlserver映射到公网 5 公网远程连接 6 固定连接公网地址 7 使用固定公网地址连接 前言 简单几步实现在Linux cento
  • 大模型笔记【2】 LLM in Flash

    Apple最近发表了一篇文章 可以在iphone MAC 上运行大模型 LLM in a flash Efficient Large Language Model Inference with Limited Memory 主要解决的问题是
  • 天猫数据分析工具推荐(天猫第三方数据平台)

    在电商迅速发展的大背景下 做好天猫数据分析能够在多方面帮助品牌商家更好地运营店铺 塑造品牌 如通过数据分析了解消费者的需求 购买偏好 这有利于品牌商家及时调整商品结构 产品推广 商品宣传等等 灵活制定品牌的销售策略 那么 天猫平台行业 品牌
  • 神州信息一表通监管合规系统

    什么是 一表通 国家金融监督管理总局为进一步建立健全数据统计监管体系 规范数据报送指标体系 明确检测数据规则 而推行建立的一套新体系监管报送方式 提升校验准确性和信息安全性 近期 国家金融监督管理总局更是进一步加大推动 一表通 的实行试点范
  • AntDB内存管理之内存上下文之内存上下文机制是怎么实现的

    4 内存上下文机制是怎么实现的 下文将针对内存上下文机制进行代码说明 本次以AntDB的代码为例 来解析内存上下文的实现方式 4 1 最基础的数据结构 MemoryContextData和MemoryContextMethods是内存上下文
  • Navicat 16 for MySQL:打造高效数据库开发管理工具

    随着数据的快速增长和复杂性的提升 数据库成为了现代应用开发中不可或缺的一部分 而在MySQL数据库领域 Navicat 16 for MySQL作为一款强大的数据库开发管理工具 正受到越来越多开发者的青睐 Navicat 16 for My
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 【计算机毕业设计】网上拍卖系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本网上拍卖系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人员
  • 【计算机毕业设计】北关村基本办公管理系统

    在如今社会上 关于信息上面的处理 没有任何一个企业或者个人会忽视 如何让信息急速传递 并且归档储存查询 采用之前的纸张记录模式已经不符合当前使用要求了 所以 对北关村基本办公信息管理的提升 也为了对北关村基本办公信息进行更好的维护 北关村基
  • APP端网络测试与弱网模拟

    当前APP网络环境比较复杂 网络制式有2G 3G 4G网络 还有越来越多的公共Wi Fi 不同的网络环境和网络制式的差异 都会对用户使用app造成一定影响 另外 当前app使用场景多变 如进地铁 上公交 进电梯等 使得弱网测试显得尤为重要
  • 基于java的学生宿舍管理系统设计与实现

    基于java的学生宿舍管理系统设计与实现 I 引言 A 研究背景和动机 基于Java的学生宿舍管理系统设计与实现的研究背景和动机 在数字化时代的推动下 学生宿舍管理系统已经成为了管理学生宿舍的重要工具 学生宿舍管理系统能够帮助管理者更好地管
  • 电商数据api拼多多接口获取商品实时数据价格比价api代码演示案例

    拼多多商品详情接口 接口接入入口 它的主要功能是允许卖家从自己的系统中快速获取商品详细信息 通过这个接口 卖家可以提取到商品的各类数据 包括但不限于商品标题 价格 优惠价 收藏数 下单人数 月销售量等 此外 还可以获取到商品的SKU图 详情
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • 强烈推荐收藏!LlamaIndex 官方发布高清大图,纵览高级 RAG技术

    近日 Llamaindex 官方博客重磅发布了一篇博文 A Cheat Sheet and Some Recipes For Building Advanced RAG 通过一张图给开发者总结了当下主流的高级RAG技术 帮助应对复杂的生产场
  • 手把手教你用 Stable Diffusion 写好提示词

    Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度 文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好 前面文章写了一篇文章 一份保姆级的 Stable Diffusion
  • 用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成

    检索增强生成 Retrieval Augmented Generation RAG 是一种结合了检索 Retrieval 和生成 Generation 的技术 它有效地解决了大语言模型 LLM 的一些问题 比如幻觉 知识限制等 随着 RAG
  • 做测试不会 SQL?超详细的 SQL 查询语法教程来啦!

    前言 作为一名测试工程师 工作中在对测试结果进行数据比对的时候 或多或少要和数据库打交道的 要和数据库打交道 那么一些常用的sql查询语法必须要掌握 最近有部分做测试小伙伴表示sql查询不太会 问我有没有sql查询语法这一块的文档可以学习
  • 数据库 | 面试官:一次到底插入多少条数据合适啊?.....面试连环炮

    数据库 面试官 一次到底插入多少条数据合适啊 面试连环炮 数据库插入操作的基础知识 插入数据是数据库操作中的基础 但是 我们程序员将面临随之而来的问题 如何快速有效地插入数据 并保持数据库 性能 当你向数据库中插入数据时 这些数据直接存储到

随机推荐

  • iframe无边框实现

  • Android 11 绕过反射限制

    1 问题出现的背景 腾讯视频在集成我们 replay sdk 的时候发现这么个错误 导致整个 db mock 功能完全失效 Accessing hidden field Landroid database sqlite SQLiteCurs
  • LeetCode1477-找两个和为目标值且不重叠的子数组

    给你一个整数数组 arr 和一个整数值 target 请你在 arr 中找 两个互不重叠的子数组 且它们的和都等于 target 可能会有多种方案 请你返回满足要求的两个子数组长度和的 最小值 请返回满足要求的最小长度和 如果无法找到这样的
  • 餐馆点餐系统(Java GUI + mysql)

    餐馆点餐系统 Java GUI mysql 开发环境 eclipse mysql 开发语言 Java SQL 本系统采用MVC模式开发的 果冻点餐系统 适合Java初级选手学习 本系统实现了用户注册登录 点餐 商家管理订单等一系列功能 首先
  • crc32碰撞_hash碰撞的概率和可能性比你直觉中大得多

    注 这篇文章源自我10年前写的博客 今天看到有人谈密码安全的 再发一遍和大家讨论下 我发现哪怕10年后 这文章也没过时 很多人还是没拎清 冲突概率和样本空间的关系 前段时间跟某大牛叽歪的时候 被提到我写的一篇文章 用CRC32实现短网址的一
  • 基于Spring Boot的酒店客房管理系统

    文章目录 项目介绍 主要功能截图 后台 前台 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于Spring
  • 奇偶校验c语言ascii,奇偶校验(parity check)

    parity check 奇偶校验 N a check made of computer data to ensure that the total number of bits of value 1 or 0 in each unit o
  • 查看Linux的用户权限(转载)

    转 Linux查看用户及其权限管理 查看用户 请打开终端 输入命令 who am i 或者 who mom likes 输出的第一列表示打开当前伪终端的用户的用户名 要查看当前登录用户的用户名 去掉空格直接使用 whoami 即可 第二列的
  • ASP.NET MVC - Model Binding

    Http Request 到Input Model的绑定按照model的类型可分为四种情况 Primitive type Collection of primitive type Complex type Collection of com
  • ROC曲线-阈值评价标准

    ROC曲线指受试者工作特征曲线 接收器操作特性曲线 receiver operating characteristic curve 是反映敏感性和特异性连续变量的综合指标 是用构图法揭示敏感性和特异性的相互关系 它通过将连续变量设定出多个不
  • UE4导入3dmax模型并在场景中添加第三人称角色

    1 3dmax安装Datasmith插件 插件下载位置 https www unrealengine com zh CN datasmith plugins 2 3dmax导出模型 3 UE4导入模型 从3dmax导出datasmith的格
  • Pytorch模型保存与加载模型继续训练

    1 网络模型定义与模型参数保存 定义网络模型与基本参数 以及模型训练和模型保存 使用torch save 方法保存模型 在save dict 中可以保存epoch model optimizer scheduler loss等参数 my n
  • 2013年6月24日星期一(离屏表面blitter)

    粗略看了一下 感觉这章也是个大餐 把所有以前的全屏过程综合起来了 1 总流程 SURFACE 不只是只有主缓冲和后备缓冲 还有离屏表面 离屏表面不只是一个 它装载各种位图 然后被blt到后备缓冲 再primarysurface gt fli
  • django 实现同步登登录和退出

    实现步骤 准备登录Django模板表单 设计用户模型 添加用户的同步登陆 添加登录拦截 实现退出登录的功能 用户登录 步骤一 认证用户 user authenticate username john possword secret 步骤二
  • CSS-IN-JS

    集成css代码在js中 一 为什么会有 CSS IN JS CSS IN JS 是 WEB 项 中将 CSS 代码捆绑在 JavaScript 代码中的解决 案 这种 案旨在解决 CSS 的局限性 例如缺乏动态功能 作 域和可移植性 二 C
  • MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法

    MS17 010 Eternal blue永恒之蓝 漏洞利用 修复方法 前言 0x01 准备工作 0x02 漏洞利用 0x03 修复方案 总结 前言 提到操作系统漏洞 大家肯定听说过耳熟能详的永恒之蓝 MS17 010 了 他的爆发源于Wa
  • (模电笔记四 By Multisim)典型运算放大电路案例分析(同相反相差分)

    1 反相比例运算电路 1 输入 U i U i Ui 与输出 U
  • 【研究记录】dummy related tips

    Q 生成dummy但是条件太多 string太长 A 参考 合成控制法时候expression too long错误解决问题 Stata专版 经管之家 原人大经济论坛 pinggu org local code1 C25 C26 C27 C
  • 鸿蒙-实践课程五 android、HarmonyOS Database

    在android中使用到数据包括 sqlite mysql等等 使用最多是 greenDao 是 Android中一个开源的对象关系映射框架 能够提供一个接口通过操作对象的方式去操作关系型数据库 完成 Java 对象的存储 更新 删除和查询
  • 向量数据库介绍

    1 什么是向量数据 向量数据库是一种专门用于存储和检索向量数据的数据库 它不同于传统的关系型数据库 而是基于向量相似度匹配的方式来实现高效的数据查询和分析 2 向量数据库的应用场景 2 1 应用场景概览 向量数据库是一种专门用于存储和检索向