向量数据库有什么用?

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 向量数据库是一种特殊类型的数据库,它可以将非结构化数据映射为高维向量,并计算数据之间的相似性。它可以用于查找相似的数据、推荐系统、异常检测和临时存储等应用。目前市场上有一些专门的向量数据库产品,同时也可以使用已有的数据库产品来构建向量数据库。向量数据库的发展前景还不确定,但它已经成为热门技术,并吸引了大量的投资。

随着大语言模型和 ChatGPT 的爆发,向量数据库现在非常热门。但什么是向量数据库?它是做什么用的呢?

下图显示了向量数据库与其他类型数据库的比较。


向量数据库可以将音频、视频、图像和文本等各种非结构化数据映射为高维向量(Embeddings)。然后,我们就可以计算非结构化数据之间的相似性。和其他类型的数据库类似,向量数据库也具有 CRUD 操作和水平扩展等功能。

image.png

典型用例包括:

  • 查找相似的图像或文本

  • 推荐相似产品(找同款)

  • 检测异常

  • 大量输入数据映射为 embeddings 后的临时存储

向量数据库公司的融资情况也从一个侧面反映了其热门情况:

  • Pinecone: 1.38 亿美元

  • Milvus: 1.13 亿美元

  • Weaviate:6770 万美元

  • Chroma: 2000 万美元

  • Qdrant: 980万美元

我们来看看使用向量数据库搭建一个企业知识库问答系统是怎么做的。

知识库搜索

假设我们有很多知识库文档,传统的做法是使用对象存储(Amazon S3)和全文搜索引擎(ElasticSearch)来搭建一个搜索应用。

知识库在搭建的时候,会进行倒排索引的搭建。

用户最终获取的是包含搜索关键词的一些文档原文,然后用户需要自行在这些文档中找到问题的答案。

我们这个知识库搜索应用其实并不能理解用户的问题,需要用户将“怎么找到我的账户余额”之类的问题翻译成“账户、余额”来输入给这个应用。

image.png

如果使用向量数据库和大语言模型的配合,那么用户体验就好多了。

知识库问答

在建立知识库的时候,我们先将长文本切块。然后使用 embeddings 算法将每个文本块映射到高维空间,并存储在向量数据库里。需要注意的是,这种映射的目的并不是为了压缩数据,而是为了非结构化数据的搜索。高维向量占用的空间可能会比原文更大。

用户在使用知识库问答时,会输入一系列问题。前续问题被称为“上下文”,和新问的问题一起输入大语言模型。大语言模型将其总结后会生成一个新的问题。然后应用程序会在向量数据库里寻找这个新问题的近邻。这样我们就找到了最接近用户问题的文档块。

这些文档块会连同新问题一起输入到大语言模型中进行求解,生成最终给用户的答案。

由于知识库问答和用户的互动性较强,向量数据库搜索的速度就很重要了。很多向量数据库产品在搜索优化上做了很多工作。

image.png

那么看到这里,你觉得向量数据库会成为专有数据库产品,还是会融入到已有的数据库产品中?我们是否可以基于 Redis 、ElasticSearch 或者 PostgreSQL 来构建向量数据库呢?

向量数据库现状

关于向量数据库是否会成为专有数据库产品还是融入到已有的数据库产品中,这个问题没有一个确定的答案。目前市场上已经有一些专门的向量数据库产品,如Milvus、Annoy等,它们提供了丰富的向量索引和查询功能。同时,也有一些传统的数据库产品开始支持向量数据类型和相应的查询操作,例如PostgreSQL 12引入了pg_similarity扩展,可以支持向量数据的相似度查询。

至于是否可以基于Redis、ElasticSearch或者PostgreSQL来构建向量数据库,答案是肯定的。这些数据库产品都是非常灵活和可扩展的,可以通过自定义数据结构、查询操作和索引方式来支持向量数据。例如,可以借助Redis的有序集合(sorted set)来存储向量数据,并使用Redis提供的命令进行查询和计算;ElasticSearch提供了丰富的文本搜索和聚类分析功能,可以通过自定义字段映射和查询DSL来支持向量数据的索引和查询;PostgreSQL通过自定义数据类型和扩展,可以实现向量数据的存储和查询。

下面转载两篇文章:

什么?!Elasticsearch也可以用作向量数据库?

原地址为:https://dbaplus.cn/news-160-5359-1.html

本文将探讨如何在 Elasticsearch 中优化向量搜索,并提供了一个详细的教程。

不是吧,Redis Enterprise也能当向量数据库来用?

原地址为:https://zhuanlan.zhihu.com/p/654879188

本文主要讲述了使用Redis Enterprise作为向量数据库时实现的一些功能以及表现能力。

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
4月前
|
存储 机器学习/深度学习 人工智能
向量数据库简介和5个常用数据库介绍
随着数字时代将我们推进到一个以人工智能和机器学习为主导的时代,向量数据库已经成为存储、搜索和分析高维数据矢量的不可或缺的工具。本文将旨在全面介绍向量数据库,并介绍2023年可用的最佳向量数据库。
|
4月前
|
存储 SQL Oracle
时空数据库有哪些
时空数据库有哪些
|
6月前
|
存储 自然语言处理 搜索推荐
什么是向量数据库?
什么是向量数据库?
355 0
|
4月前
|
存储 人工智能 NoSQL
一文带你了解向量数据库
相较于发展起步较早的关系型数据库以及图数据库、键值数据库等,专门用于存储和管理向量数据的数据库,能对向量数据进行高效的操作。
|
23天前
|
存储 SQL 机器学习/深度学习
通俗地理解向量数据库的使用
该文章主要介绍AI理解和学习世界的方式,强调了向量在AI中的重要性,将其比喻为AI的“海马体”。向量数据库用于存储和检索信息,增强大语言模型的记忆力。最后推荐阿里云的高性能向量检索服务DashVector,提供相关链接以供了解和使用。
|
1月前
|
存储 关系型数据库 数据库
目前数据库分类
目前数据库分类。
14 3
|
2月前
|
存储 人工智能 搜索推荐
大模型时代,为什么要懂向量数据库?
大模型时代,为什么要懂向量数据库?
大模型时代,为什么要懂向量数据库?
|
2月前
|
存储 算法 关系型数据库
向量数据库的索引技术
【2月更文挑战第2天】向量数据库的索引技术
84 0
|
2月前
|
机器学习/深度学习 存储 算法
向量数据库
向量数据库
230 0
|
3月前
|
存储 自然语言处理 API
向量数据库:了解其内部结构
向量数据库在底层是如何工作的,以及如何在高效的向量存储之上构建搜索?
向量数据库:了解其内部结构