更快更强更稳定:腾讯向量数据库测评

2023-09-09 11:24:42

向量数据库:AI时代的新基座

人工智能在无处不在影响着我们的生活,而人工智能飞速发展的背后是需要对越来越多的海量数据处理,传统数据库已经难以支撑大规模的复杂数据处理。特别是大模型的出现,向量数据库横空出世。NVIDIA CEO黄仁勋在NVIDIA GTC Keynote演讲中首次提到了向量数据库,并强调它在构建专有大型语言模型组织中的重要性。作为新一代AI处理器,大型模型提供了强大的数据处理能力,而向量数据库则成为了存储能力的关键基础。

向量数据库是一种专门用于存储和查询向量数据的数据库系统,它采用向量化计算,能够快速处理大规模复杂数据,相较于关系型数据库有着更高的性能。与传统数据库相比,向量数据库可以处理高维数据,例如图像、音频和视频等,从而解决了传统关系型数据库的瓶颈。此外,向量数据库可以利用分布式、云计算和边缘计算等技术轻松地扩展到多个节点,从而实现数据处理规模的扩大,并提高向量数据的存储、管理和查询的稳定性。

我们不禁要问,向量数据库相比于传统数据库有如此亮眼的表现,背后是哪些核心技术在支撑呢?

向量数据库的核心技术

什么是向量数据?

向量数据是由多个数值组成的序列,可以表示一个数据量的大小和方向。通过Embedding技 术,图像、声音、文本都可以被表达为一个高维的向量,比如一张图片可以转换为一个由像素值构成的向量。

在计算机科学和数据科学中,向量数据广泛应用于各种领域,如机器学习、图像处理、自然语言处理等。例如,在机器学习中,数据通常以向量的形式表示,每个维度表示一个特征,从而可以进行各种模型的训练和预测。通过对向量数据进行计算,可以进行相似度比较、聚类分析、分类和预测等任务。向量数据的处理和分析对于许多领域的数据科学和人工智能应用至关重要。

什么是向量数据库?

向量数据库是一种专门用于存储和查询向量数据的数据库系统。 向量数据库支持对向量数据进行各种操作,例如向量检索,根据给定的向量,找出数据库中与之最相似的向量;例如向量聚类:根据给定的相似度度量,将数据库中的向量分类,例如根据图片的内容或风格,将图片分成不同的主题。

向量数据库有哪些技术上的难点?

向量数据库主要有高维度、稀疏性、异构性和动态性四大难点。高维度是指向量数据通常包含大量元素,具有较高的维度,维度越高,对数据库性能的要求也就越高;稀疏性是指向量数据中很多元素的值可能为零或接近零,只有少数元素具有显著非零值,分布越稀疏越难以处理;异构性是指向量数据中的元素可能具有不同的类型或含义,表示不同的特征或属性;动态性是指向量数据可能随着时间或环境的变化而发生变化,可以是实时更新的,更新的频率越高,对数据库的查询、检索等要求也就越高。

分布式系统架构与负载均衡

针对向量数据规模庞大的问题,单机无法满足存储、计算需求, 所以必须要使用分布式系统。例如下图是腾讯云向量数据库分布式架构图,客户的请求通过负载均衡分发到各节点上,每个节点均可直接进行读/写操作,负责数据的计算及存储。

向量索引技术

向量数据维度很高,直接进行全量扫描或者基于树结构 的索引会导致效率低下或者内存爆炸。向量索引技术是一种专门用于向量数据的索引方法,旨在加快对向量数据的相似度搜索和查询操作。 首先对向量数据进行向量化计算,将每个向量映射到一个高维空间中。然后根据向量之间的相似度定义构建索引结构。常用的向量索引方法包括:

  1. FLAT:在FLAT 索引中,向量会以浮点型的方式进行存储,不做任何压缩处理。搜索向量会遍历所有向量与目标向量进行比较。当查询数量较少时,它是最有效的索引方法。当数据集非常大时,FLAT 的性能会明显下降。FLAT 适用于数据量小,且需要精确匹配的场景等。
  2. HNSW:是一种基于图的算法,它在高维空间中能够保持较高的精度。HNSW 通过建立一个多层级的图结构来组织数据集,并且使用随机游走来搜索最近邻。HNSW 的构建过程比 FLAT 更为复杂,需要更多的计算资源,但检索速度更快。HNSW 适用于需要快速近似匹配的场景等。
  3. IVF系列:IVF 系列索引的核心思想是将高维空间划分为多个聚类,并为每个聚类构建一个倒排文件。通过这种方法,IVF 系列索引可以在大规模高维向量数据中实现高效的相似性搜索。

腾讯云向量数据库的优势

以上种种技术难点一定程度上阻碍了向量数据库的大规模落地和使用,全球很多顶尖高科技公司和组织都在投入这个领域的研究。例如国际市场上,Zilliz与Nvidia、IBM、 Mircosoft等公司展开合作;Pinecone先后上架Google云和AWS,逐步打开市场。在国内市场腾讯云向量数据库(Tencent Cloud VectorDB)无疑是表现最抢眼的产品之一,凭借着强悍的性能、超高的稳定性和可靠性、超高性价比吸引了越来越多的用户。

强悍性能

腾讯云向量数据库单索引支持10亿级向量数据规模,在同等向量维度下和数据量级下,相比于开源向量数据库有极大的性能提升,博主在下一节也亲手测试体验了强悍的性能表现。

如此强大的性能能力建立在云原生的分布式架构基础上,做了大量的负载均衡优化、向量检索优化、向量分析优化等,体现了腾讯云深厚的技术功底。

超高性价比

腾讯云向量数据库从诞生之初就是基于云原生而设计的,得益于腾讯云完善的基础设施,用户直接在云上操作,可以大大减少机器成本和运维成本。所以选择腾讯云向量数据库无疑是超高性价比的选择。

高兼容性

向量数据库支持多种类型和格式的向量数据,同时提供多种语言和平台的接口和工具,具备高度的兼容性,方便用户进行集成和使用。腾讯云向量数据库提供了Python SDK和HTTP SDK两种SDK,例如使用Python SDK只需要执行下面的pip命令安装 tcvectordb库即可。

Shell
pip install tcvectordb-0.0.2-py3-none-any.whl

Python SDK提供了创建表格、写入数据、查询数据、相似性检索等API接口,使用起来非常方便。用户可以在官方手册中找到更多的教程和示例。

性能实测:128维向量查询

准备工作

最近腾讯云向量数据库也开放了产品内测功能,大家可以去官网按照产品手册的指导,亲手内测体验一下吧!博主很幸运率先体验到了腾讯云向量数据库,并亲手测了大家最关心的数据库性能、稳定性和可靠性,没来得及体验的朋友就请先跟着博主的视角一睹为快吧!

在正式测评前,先介绍以下我们的测试工具ann-benchamrk 。这是是一个用于评估近似最近邻(ANN)搜索库的性能测试工具,包含了多个真实数据集,其中包括图像、文本、生物信息学等领域的数据。每个数据集都有一个已知的最近邻集合,可以用作性能评估的标准。此外,ANN-Benchmarks还提供了一些常用的评估指标,如精确度、查询时间和内存消耗等,用于衡量不同算法在近似最近邻搜索任务中的性能。具体数据集信息如下表所示:

我们首先在控制台新建一个向量数据库:

在新建完数据库后,我们可以点进实例列表查看我们刚才新建实例的基本信息、规格信息和架构图:

为了测试需要,我们还需要购买一台CVM云服务器,可以根据自身需求购买不同配置的服务器:

购买时博主选择了按量计费的模型,配置如下:

执行测试

在开通完CVM之后,我们启动机器,打开我们的测试工具ann-benchamrk,安装测试环境依赖的包:

然后我们拷贝ann_benchmarks/algorithms/vector_db/config.yml 路径下的配置文件,重新命名为mytest.yml。查看我们刚才创建的向量数据库,配置数据库实例内网 IP 地址与端口。

接下来运行run.py执行128维向量性能测试:

多进程压测结果

我们用L2 euclidean欧式距离做衡量,在数据集量级100w和128维向量检索的条件下,获取最相似的 Top10的文档,比较QPS数据。腾讯云向量数据库的HNSW 索引都可以达到99%以上的召回率,QPS大约在13800以上,开源的向量数据库Faiss、Elasticsearch等在同等测试条件下,QPS都不超过4000,所以腾讯云向量数据库取得了至少3倍以上的性能提升。

结语

大模型的热潮宣告着人工智能的又一波高潮已经到来,向量数据库作为人工智能时代的基座,必将迎来一个飞速发展的新阶段。博主亲手体验了腾讯云向量数据库,能够切实解决传统数据库的诸多难点,强悍的性能和稳定性令我大受震撼。未来必定是属于AI的时代,让我们一起拥抱AI,拥抱向量数据库吧!

 

更多推荐

【K8S系列】Weave Net 故障排除的常见问题和解决方案

写在前面当使用WeaveNet进行容器网络配置时,可能会遇到一些常见的故障情况。以下是一些常见问题及其解决方案:问题列表1节点无法加入WeaveNet网络解决方案检查节点之间的网络连通性,确保可以通过IP地址相互访问。检查节点的防火墙设置,确保允许WeaveNet的流量通过。确保在每个节点上正确安装了WeaveNet,

04-前端基础CSS第二天

01-CSS第二天导读目标:能使用emmet语法能够使用CSS复合选择器能够写出伪类选择器的使用规范能够说出元素有几种显示模式能够写出元素显示模式的相互转换代码能够写出背景图片的设置方式能够计算CSS的权重目录:Emmet语法CSS的复合选择器CSS的元素显示模式CSS的背景CSS的三大特性CSS的注释02-emmet

在字节当了几个月的牛马,醒悟了。

作者:阿秀InterviewGuide大厂面试真题网站:https://top.interviewguide.cn小伙伴们大家好,我是阿秀。以前也分享过不少实习体验,比如去年就分享了一位师弟的美团实习体验:美团实习三个月,我受益良多,今天来分享一下一位学习圈中学弟的字节实习体验。他周围同事都是硕士起步,只有他是双非本,

Java毕业设计-基于SpringBoot的租房网站的设计与实现

大家好,今天为大家打来的是基于SpringBoot的租房网站的设计与实现博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌文章目录一、前言介绍二、主要技术三、系统设计(部分)3.1、主要功能模块设计3.

普中51-矩阵按键

矩阵按键原理图如下:行列扫描行列扫描法检测时,先送一列为低电平,其余几列全为高电平(此时我们确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(这时我们又确定了行数),则我们便可确认当前被按下的键是哪一行哪一列的,用同样方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平,这样即可检测完所

Web自动化测试理解

最近几天,由于工作需要接触Web自动化测试,所以我从网上找的资料,学习了解,然后自己总结汇总的随笔,如文章中有不足的地方,请大家多多指教;或者文章内容与他人相似,望见谅。手工测试跟自动化测试区别:手工测试:就是由人去一个一个输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。自动化测试:自动化测试

植隆业务中台与金蝶云星空对接集成服务工单查询接口连通应收单新增(6202-开票申请(代理商-销售类))

植隆业务中台与金蝶云星空对接集成服务工单查询接口连通应收单新增(6202-开票申请(代理商-销售类))数据源系统:植隆业务中台承载了企业核心关键业务,是企业的核心业务能力,也是企业数字化转型的重点。业务中台的建设目标是:“将可复用的业务能力沉淀到业务中台,实现企业级业务能力复用和各业务板块之间的联通和协同,确保关键业务

竞赛选题 基于深度学习的中文情感分类 - 卷积神经网络 情感分类 情感分析 情感识别 评论情感分类

文章目录1前言2情感文本分类2.1参考论文2.2输入层2.3第一层卷积层:2.4池化层:2.5全连接+softmax层:2.6训练方案3实现3.1sentence部分3.2filters部分3.3featuremaps部分3.41max部分3.5concat1max部分3.6关键代码4实现效果4.1测试英文情感分类效果

72、Spring Data JPA 的 Specification 动态查询

Specification:规范、规格★Specification查询它也是SpringData提供的查询——是对JPA本身Criteria动态查询的包装。▲为何要有动态查询页面上常常会让用户添加不同的查询条件,程序就需要根据用户输入的条件,动态地组合不同的查询条件。JPA为动态查询提供了Criteria查询支持。Sp

基于SpringBoot的驾校管理系统

基于SpringBoot+Vue的驾校管理系统、前后端分离开发语言:Java数据库:MySQL技术:SpringBoot、Vue、MybaitsPlus、ELementUI工具:IDEA/Ecilpse、Navicat、Maven【主要功能】角色:管理员、用户、教练管理员:学员管理、教练管理、驾校信息管理、报名信息管理

P7075 [CSP-S2020] 儒略日

题目题目描述为了简便计算,天文学家们使用儒略日(Julianday)来表达时间。所谓儒略日,其定义为从公元前4713年1月1日正午12点到此后某一时刻间所经过的天数,不满一天者用小数表达。若利用这一天文学历法,则每一个时刻都将被均匀的映射到数轴上,从而得以很方便的计算它们的差值。现在,给定一个不含小数部分的儒略日,请你

热文推荐