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

news2024/11/28 18:39:09

向量数据库: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,拥抱向量数据库吧!

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sqlserver2012 bat脚本实现最大使用内存设置

前言 安装完成sqlserver之后,在运行过程中会无限制的占用电脑的内存,会影响到其他软甲的使用。 bat脚本 准备好bat脚本和sql文件之后,配置好数据库信息 直接双击即可 ECHO OFF REM 自动判断权限问题,主动获取管理员权限>…

中国有多少个省?【最新】

2023.09.09 中华人民共和国省级行政区是指中国现行的34个一级行政区, 包括23个省(河北、山西、黑龙江、吉林、辽宁、江苏、浙江、安徽、福建、江西、山东、河南、湖北、湖南、广东、海南、四川、贵州、云南、陕西、甘肃、青海、台湾)、 5个…

国际版腾讯云阿里云免费开户:全站加快 DCDN 重磅发布!打造新一代加快引擎

腾讯云全站加快 DCDN 重磅发布!打造新一代加快引擎 在数字化转型革新逐渐深化的当下,安全高效成为企业上云、全球化布置的要害需求。 跟着运用场景复杂度不断提高、事务需求差异化开展,为了给企业供给更完善的安全加快服务,阿里云…

基于Java+SpringBoot+Vue前后端分离小型诊疗预约平台设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

黑马JVM总结(一)

(1)什么是JVM JVM是java的运行环境,我们写了一个HelloWorld.java源代码,经过javac编译成了class字节码,这个class字节码使用一个java程序加载到虚拟机里就可以运行了 Java语言是跨平台的,它是在那个层面上…

08_瑞萨GUI(LVGL)移植实战教程之LVGL对接串口打印

本系列教程配套出有视频教程,观看地址:https://www.bilibili.com/video/BV1gV4y1e7Sg 8. LVGL对接串口打印 本次实验我们为LVGL库对接串口的打印功能。 8.1 复制工程 上次实验得出的工程我们可以通过复制在原有的基础上得到一个新的工程。 如果你不清…

09_瑞萨GUI(LVGL)移植实战教程之拓展练习

本系列教程配套出有视频教程,观看地址:https://www.bilibili.com/video/BV1gV4y1e7Sg 9. 拓展练习 本节安排三个实验检验学习成果,实验示例源码在资料包的这个位置: DShanMCU-RA6M5配套学习资料\2_配套源码\02_瑞萨电子MCU GUI(…

分享一个基于Python和Django的产品销售收入数据分析系统源码

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

数据通信网络之IPv6静态路由

文章及资源归档至公众号【AIShareLab】,回复 通信系统与网络 可获取。 文章目录 一、目的二、拓扑三、需求四、步骤 一、目的 掌握路由器的 IPv6 基础配置。掌握静态 IPv6 路由的基础配置。理解 IPv6 数据报文的路由过程。 二、拓扑 如图 1 所示,三台…

XL-LightHouse 与 Flink 和 ClickHouse 流式大数据统计系统

一个Flink任务只能并行处理一个或少数几个数据流,而XL-LightHouse一个任务可以并行处理数万个、几十万个数据流; 一个Flink任务只能实现一个或少数几个数据指标,而XL-LightHouse单个任务就能支撑大批量、数以万计的数据指标。 1、XL-LightHo…

005微信小程序云开发API数据库-查询记录-聚合-统计记录数量

文章目录 1.微信小程序云开发API数据库-查询记录案例代码 2.微信小程序云开发API数据库-聚合案例代码 3.微信小程序云开发API数据库-统计记录数量案例代码 1.微信小程序云开发API数据库-查询记录 微信小程序云开发API数据库是一个方便快捷的数据库解决方案,可以让开…

国庆节你会去哪玩? 立即领取国庆专属头像

点击上方蓝字关注我们 立即领取国庆头像 国庆节 国庆节是一个重要的假期,许多人都会选择外出旅游,放松心情,享受美好的时光。以下是一些建议,供您在国庆节期间选择旅游目的地。 迎祖国华诞 愿祖国风调雨顺,国泰民安 国…

进阶C语言-指针的进阶(上)

指针的进阶 📖1.字符指针📖2.指针数组📖3.数组指针🎈3.1 数组指针的定义🎈3.2 &数组名VS数组名🎈3.3 数组指针的使用 📖4.数组参数、指针参数🎈4.1一维数组传参🎈4.2…

[H5动画制作系列] Rectangle Demo 的三种方法

整体要求: 舞台背景为蓝色,大小为:400*400;左上角有一个红色正方形,大小为:200*200,中心点坐标为(0,0) 方法一: 启动Aninmate,用界面绘图工具,做一个单帧静态画面,然后采用Html Canvas发布。 方法二: 启动Aninmate,先做一个单帧,空白帧。然后在空白帧上,填写帧代码。 然…

yolov7简化yaml配置文件

yolov7代码结构简单,效果还好,但是动辄超过70几个模块的配置文件对于想要对网络进行魔改的朋友还是不怎么友好的,使用最小的tiny也有77个模块 代码的整体结构简单,直接将ELAN结构化写成一个类就能像yolov5一样仅仅只有20几个模块&…

优思学院|怎样定义质量?质量的八个维度是什么?

质量是一个广泛而关键的概念,它可以通过多种方式来描述和评估。在商业和制造领域,了解如何区分和评估产品质量的不同维度至关重要。在本文中,我们将讨论产品质量的多维度,并根据哈佛商学院 David A. Garvin(1987&#…

PowerBI依据字段取一列从小到大的第三个值(没三个值取第二个,第二个没有取第一个)

大家在项目业务背景中总能遇到一些比较奇特的需求,我们尽力取解决,下面把这个过程提供出来,供大家参考。步步高升自己技术。PowerBI依据字段取一列从小到大的第三个值(没三个值取第二个,第二个没有取第一个&#xff09…

【数据结构--顺序表】移除元素

题目描述&#xff1a; 代码实现&#xff1a; 1、指针实现 int removeElement(int* nums, int numsSize, int val) {int* dst nums, * src nums;int n1 0,n20;while (n1n2 < numsSize){if (*src ! val){*dst *src;dst;src;n1;//表示src走的步数}else{src;n2;//表示src走…

无涯教程-JavaScript - IMSECH函数

描述 IMSECH函数以x yi或x yj文本格式返回复数的双曲正割。复数的双曲正割被定义为双曲余弦的倒数,即 六(z) 1/cosh(z) 语法 IMSECH (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the hyperbolic secant.Required Notes Ex…

我的创作纪念日——你知道这5年我是怎么过的吗?

机缘 第一篇博客记忆犹新&#xff0c;是与CSDN结下了第一缕缘分。 前期的博客都被打上“改进质量”的标签&#xff0c;到后来的高质量文字的撰写&#xff0c;见证了自己撰写能力的一步一步地提高&#xff0c;正可谓不积跬步无以至千里。 如下图所示&#xff1a; 这5年&#…