AI时代新宠,向量数据库

随着生成式人工智能(GAI)应用以及大语言模型(LLM)的快速发展,一种新型数据库也获得了市场和资本的重点关注,它就是向量数据库(Vector Database)。

向量数据库简介

向量数据库是一种专门用于存储和处理向量的数据库。向量数据库使用专门的算法和数据结构来支持相似性搜索,通常用于机器学习或数据挖掘,侧重于性能、可扩展性和灵活性。向量数据库可以帮助 AI 模型理解和储存长期记忆等问题,以完成复杂的任务,加速应用场景落地。

在这里插入图片描述
向量数据库采用嵌入向量(embedding vector)技术,对非结构化数据(包括文本、图片、视频、音频等)进行特征抽象。数学上,嵌入向量是一个浮点数或二进制数的数组,即 N 维特征向量空间中的向量。

向量数据库能够将向量存储为高维点并且高效、快速地查找 N 维空间中的最近邻。这些功能通常由近似最近邻搜索(ANN)提供支持,并使用分层可导航小世界(HNSW)和倒排文件索引(IVF)等算法构建。常见的相似性度量包括余弦相似性、点积、欧几里得距离、曼哈顿距离和汉明距离。

向量数据库还提供了其他功能,例如数据管理、容错、身份验证和访问控制以及查询引擎。

向量数据库的应用场景非常广泛,包括:推荐系统、图像检索、自然语言处理、人脸识别和图像搜索、音频识别、实时数据分析、物联网以及生物信息学等。

主流向量数据库

数据库排名网站 DB-Engines 列出了常见的一些向量数据库,包括专用的向量数据库和基于传统数据库的扩展功能。

在这里插入图片描述
接下来我们介绍其中常见的几个向量数据库。

Milvus

Milvus 是一款云原生的开源向量数据库,专为向量相似性搜索和 AI 应用赋能。

在这里插入图片描述

Milvus 是一款云原生向量数据库,采用存储与计算分离的架构设计,所有组件均为无状态组件,极大地增强了系统弹性和灵活性。整个系统分为四个层面:

  • 接入层(Access Layer)。系统的门面,由一组无状态 proxy 组成。对外提供用户连接的 endpoint,负责验证客户端请求并合并返回结果。
  • 协调服务(Coordinator Service)。系统的大脑,负责分配任务给执行节点。协调服务共有四种角色,分别为 root coord、data coord、query coord 和 index coord。
  • 执行节点(Worker Node)。系统的四肢,负责完成协调服务下发的指令和 proxy 发起的数据操作语言(DML)命令。执行节点分为三种角色,分别为 data node、query node 和 index node。
  • 存储服务 (Storage)。系统的骨骼,负责 Milvus 数据的持久化,分为元数据存储(meta store)、消息存储(log broker)和对象存储(object storage)三个部分。

在这里插入图片描述
Milvus 已有应用场景包括:

  • 图片检索系统。以图搜图,从海量数据库中即时返回与上传图片最相似的图片。
  • 视频检索系统。将视频关键帧转化为向量并插入 Milvus,便可检索相似视频,或进行实时视频推荐。
  • 音频检索系统。快速检索海量演讲、音乐、音效等音频数据,并返回相似音频。
  • 分子式检索系统。超高速检索相似化学分子结构、超结构、子结构。
  • 推荐系统。根据用户行为及需求推荐相关信息或商品。
  • 智能问答机器人。交互式智能问答机器人可自动为用户答疑解惑。

Pipecone

Pipecone 是一个托管的、云原生的向量数据库,具有简单的API和无需基础架构的优势。

在这里插入图片描述
Pinecone具有以下特点:

  • 快速:即使有数十亿个条目,也可以获得超低的查询延迟。
  • 实时:添加、编辑或删除数据时,可以获得实时的索引更新。
  • 过滤:将向量搜索与元数据过滤器相结合,以获得更相关、更快速的结果。
  • 完全托管:轻松开始、使用和扩展,我们会让事情保持平稳和安全。

Pinecone适用于广泛的应用程序。以下是一些最常见的应用程序:

  • 语义文本搜索:使用像NLP转换器和句子嵌入模型将文本数据转换为向量嵌入,然后使用Pinecone索引和搜索这些向量。
  • 生成问答:从Pinecone检索与查询相关的上下文,并将其传递给像OpenAI这样的生成模型,以生成由真实数据来源支持的答案。
  • 混合搜索:在一个查询中执行语义和关键字搜索,并将结果组合以获得更相关的结果。
  • 图像相似度搜索:将图像数据转换为向量嵌入,并使用Pinecone构建索引。然后将查询图像转换为向量并检索相似图像。
  • 产品推荐:基于代表用户的向量生成电子商务的产品推荐。

Chroma

Chroma 是一个开源向量嵌入数据库,它使得构建 LLM 应用更加容易。通过将知识、事实和技能可插件化到大语言模型,Chroma 更易于构建大语言模型应用。

在这里插入图片描述
Chroma 提供了以下工具:

  • 存储嵌入及其元数据
  • 嵌入文档和查询
  • 搜索嵌入

Chroma 目前处于 Alpha 阶段,不适合生产使用。

Weaviate

Weaviate 是一个开源的向量数据库,可以存储对象、向量,支持将矢量搜索与结构化过滤与云原生数据库容错和可拓展性等能力相结合。

在这里插入图片描述
Weaviate 是一个低延迟的向量数据库,它支持多种媒体类型(如文本、图片等),并且具有语义搜索、问题答案提取、分类等功能,还支持可定制的模型(例如 PyTorch/TensorFlow/Keras)。它完全使用 Go 语言构建,存储了对象和向量,允许将向量搜索与结构化过滤器相结合,并具有云原生数据库的容错性。可以通过 GraphQL、REST 和各种客户端编程语言进行访问。

pgvector

pgvector 是基于 PostgreSQL 数据库的扩展插件,支持向量数据的存储和相似性搜索。

在这里插入图片描述
pgvector 支持精确和近似最近邻搜索、L2 距离、内积和余弦距离、各种开发语言以及 PostgreSQL 数据库功能。

其他产品

除了以上向量数据库之外,还有很多相关产品,包括:Qdrant、腾讯云向量数据库、Vearch、星环科技(Transwarp Hippo)等。

关于一些常见向量数据库的性能比较,可以参考 VectorDBBench。VectorDBBench 提供多个主流向量数据库和云服务的性能测试结果。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157771.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序自定义弹窗阻止滑动冒泡catchtouchmove之后弹窗内部内容无法滑动

自定义弹窗 如图所示: 自定义弹窗内部有带滚动条的盒子区域 问题: 在盒子上滑动,页面如果超出一屏的话,也会跟着一起上下滚动 解决方案:给自定义弹窗 添加 catchtouchmove 事件,阻止冒泡即可 网上不少…

【C++】C++11【上】列表初始化|声明|新容器|右值引用|完美转发|新的类功能

目录 1、 C11简介 2、 统一的列表初始化 2.1 {}初始化 2.2 std::initializer_list 3、声明 3.1 auto和范围for 3.1decltype 3.3 nullptr 4、新容器 5、 右值引用 5.1左值引用和右值引用 5.2 左值引用与右值引用比较 5.3 左值和右值引用使用场景及意义 6…

2023年【低压电工】考试及低压电工模拟考试题

题库来源:安全生产模拟考试一点通公众号小程序 低压电工考试根据新低压电工考试大纲要求,安全生产模拟考试一点通将低压电工模拟考试试题进行汇编,组成一套低压电工全真模拟考试试题,学员可通过低压电工模拟考试题全真模拟&#…

2023/10/29总结

总结 踩坑记录 写代码的时候遇到了一个错误大概是这样的 io.jsonwebtoken.security.WeakKeyException: The signing keys size is 48 bits which is not secure enough for the HS256 algorithm. The JWT JWA Specification (RFC 7518, Section 3.2) states that keys used…

pycharm使用ssh连接远程jupyter

1. 安装jupyter pip install jupyter2. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config3. 设置命令参数 jupyter notebook --no-browser --allow-root --port 8900配置Jupyter服务器 将上面的代码复制到命令行实参中:

管理类联考——数学——汇总篇——知识点突破——代数——函数、方程——记忆

文章目录 考点记忆/考点汇总——按大纲 整体局部 本篇思路:根据各方的资料,比如名师的资料,按大纲或者其他方式,收集/汇总考点,即需记忆点,在通过整体的记忆法,比如整体信息很多,通常…

Day17力扣打卡

打卡记录 参加会议的最多员工数&#xff08;拓扑排序 分类讨论&#xff09; 链接 计算内向基环树的最大基环&#xff0c;基环树基环为2的情况分类讨论。 class Solution { public:int maximumInvitations(vector<int> &favorite) {int n favorite.size();vector…

动作捕捉系统进行坐标系转换

动作捕捉系统在机器人等应用中常出现被测物与动捕坐标系不一致的问题。这时就需要进行坐标系的转换。在NOKOV度量动作捕捉系统软件中&#xff0c;可以对被测物的坐标系原点偏移量进行设置&#xff0c;实现被测物坐标系与大地坐标系的重合。 一、坐标系偏移操作 在形影动捕软件…

IOI车机系统刷机和改包笔记2 - 改包脚本

前言&#xff1a; 最近对雪佛兰改包需求感兴趣的网友很多&#xff0c;大家都遇上了很多奇怪的问题&#xff0c;这里就我自己使用的环境和脚本进行分享&#xff0c;供大家参考。 1. 准备环境 我这里使用Ubuntu系统进行操作 andyandy-vm:~$ sudo lsb_release -a No LSB module…

影视企业有哪些方式将视频文件快速海外跨国传输国内?

影视行业是一个高度国际化的行业&#xff0c;影视企业在跨国合作、制作、发行等方面有着强烈的需求。然而&#xff0c;影视企业在跨国文件传输方面也面临着诸多的问题和难题。视频文件通常具有较大的文件大小、多样的文件格式、高要求的文件质量等特点&#xff0c;这些特点使得…

【Midjourney入门教程4】与AI对话,写好prompt的必会方法

文章目录 1、语法2、单词3、要学习prompt 框架4、善用参数&#xff08;注意版本&#xff09;5、善用模版6、临摹7、垫图 木匠不会因为电动工具的出现而被淘汰&#xff0c;反而善用工具的木匠&#xff0c;收入更高了。 想要驾驭好Midjourney&#xff0c;可以从以下方面出发调整&…

代码随想录 Day35 动态规划04 01背包问题和完全背包问题 LeetCode T416 分割等和子集

背包问题 说到背包问题大家都会想到使用动规的方式来求解,那么为什么用动规呢,dp数组代表什么呢?初始化是什么,遍历方式又是什么,这篇文章笔者将详细讲解背包问题的经典例题0-1背包问题和完全背包问题的解题方式,希望能帮助到大家 1.暴力方式 有人一提到背包问题就只会使用动态…