解锁数据潜力:为什么你应该考虑使用向量数据库
前言
根据 DC 调查数据显示,全球在 A1 技术和服务上的支出 2023 年将达到 1540 亿美元,到 2026 年将超过 3000 亿美元。其中,向量数据库为 AI 的开发、增强内容生成的准确性提供了重要技术支撑。如果说 ChatGPT 是 LLM 的处理核心,prompts 是 code,那么向量数据库就是 LLM 需要的存储。为什么要有向量数据库?向量数据库用来存储非结构化数据,例如,文档,图片,视频,音频和纯文本等,在保证 1%信息完整的情况下,通过向量嵌入函数来精准描写非结构化数据的特征,从而提供查询、删除、修改、元数据过滤等操作。而像 SQL、Mysqli 这样传统的数据库根本无法完成这些操作。
什么是向量和向量数据库
向量是 AI 世界对世间万物的表示形式,是具有一定大小和方向的量,可以简单理解为一串数字的集合,就像一行多列的矩阵,比如:[2,0,1,9,0,6,3,0]。每一行代表一个数据项,每一列代表一个该数据项的各个属性。随着大模型等 AI 技术的发展和普及,向量数据的存算需求一定会得到极大的释放。
特征向量是包含事物重要特征的向量。大家比较熟知的一个特征向量是 RGB (红-绿-蓝)色彩。每种颜色都可以通过对红®、绿(G)、蓝(B)三种颜色的比例来得到。这样一个特征向量可以描述为:颜色 = [红,绿,蓝]。
向量检索是指从向量库中检索出距离目标向量最近的 K 个向量。一般我们用两个向量间的欧式距离,余弦距离等来衡量两个向量间的距离,一次来评估两个向量的相似度。
基本概念:
Collection: 包含一组 entity,可以等价于关系型数据库系统(RDBMS)中的表。
Segment: Milvus 在数据插入时通过合并数据自动创建的数据文件。一个 collection 可以包含多个 segment。一个 segment 可以包含多个 entity。在搜索中,Milvus 会搜索每个 segment,过滤被删除的数据,并返回合并后的结果。
Entity: 包含一组 field。field 与实际对象相对应。field 可以是代表对象属性的结构化数据,也可以是代表对象特征的向量。
Entity ID: 用于指代一个 entity 的唯一值。目前,Milvus 不支持 ID 去重,因此有可能在一个 segment 内出现重复 ID。
Field: entity 的组成部分。field 可以是结构化数据,例如数字和字符串,也可以是向量。
Vector: 一种类型的 field,代表对象的特征。目前,一个实体最多只能包含一个向量。
Index: 索引基于原始数据构建,可以提高对 collection 数据搜索的速度。
Mapping: 一系列规则用来定义 collection 如何组织数据。
在 GPT 模型的限制下,开发者们不得不寻找其他的解决方案,而向量数据库就是其中之一。向量数据库的核心思想是将文本转换成向量,然后将向量存储在数据库中,当用户输入问题时,将问题转换成向量,然后在数据库中搜索最相似的向量和上下文,最后将文本返回给用户。
向量数据库的作用当然不止步于文字语义搜索,在传统的 AI 和机器学习场景中,还包含人脸识别、图像搜索、语音识别等功能,但不可否认的是,这一轮向量数据库的火爆,正是因为它对于 AI 获得理解和维护长期记忆以执行复杂任务时有非常大的帮助。
使用示例
ES7.0 后自带 dense_vector 类型,无需安装额外插件,从 8.0 版本开始使用 knn 计算余弦相似度,底层使用 hnsw
1. 创建测试索引
2.导入测试数据
3.1. 执行检索 Approximate kNN
4.Exact kNN 处理大型数据集时性能不佳,script_score 查询扫描每个匹配的文档以计算向量函数,这可能导致搜索速度较慢。可以通过使用查询来限制传递给函数的匹配文档的数量来改善延迟。如果将数据筛选到较小的文档子集中,可以获得良好的搜索性能。
Amazon OpenSearch Serverless 向量引擎
亚马逊云科技再接再厉,推出 Amazon OpenSearch Serverless 向量引擎预览版这次推出标志着在云搜索服务领域的一个重大飞跃,它为用户提供了一个简单、高性能且可扩展的相似性搜索功能。
向量引擎是构建在 Amazon OpenSearch Serverless 之中,它能为用户带来现代化的机器学习(ML)增强的搜索体验。这意味着,无论是大型企业还是初创公司,开发者都能轻松构建出先进的生成式 AI 应用程序,为用户提供更加个性化和智能化的服务。
Amazon OpenSearch Serverless 向量引擎有以下优势:
1.无需管理基础设施: 与传统的搜索引擎不同,Amazon OpenSearch Serverless 向量引擎真正做到了让开发者专注于开发,而不是管理。它消除了对底层向量数据库基础设施的管理需求,大大降低了开发和运维的复杂性。
2.简单: 向量引擎的设计原则是简洁易用,让开发者在最短的时间内上手并投入开发。
3.可扩展: 不管你的数据量多大,用户量多少,Amazon OpenSearch Serverless 向量引擎都能轻松应对,确保搜索体验始终流畅。
4.高性能: 依托亚马逊云科技强大的云服务,该向量引擎提供了业界领先的搜索性能,确保用户的每一次搜索都能得到快速响应。
亚马逊云科技不仅仅满足于提供高性能的向量数据库服务,更持续不断地进行优化和改进,确保客户获得最前沿的技术体验。在向量图方面,团队一直在努力优化其性能和内存使用。亚马逊云科技进行了一系列的升级和改进,目标是进一步提高向量图的效率。其中,缓存改进是其中的一项重要策略。通过优化缓存机制,向量图能够更快速地访问常用数据,大大减少了访问延迟,提高了整体性能。
我觉得厉害的不仅仅是 Amazon OpenSearch Serverless 向量引擎,而是亚马逊云科技的整体实力和体系,所以我觉得还是还厉害的。
总结
向量数据库是崭新的领域,目前大部分向量数据库公司的估值乘着 AI 和 GPT 的东风从而飞速的增长,但是在实际的业务场景中,目前向量数据库的应用场景还比较少,抛开浮躁的外衣,向量数据库的应用场景还需要开发者们和业务专家们去挖掘。
版权声明: 本文为 InfoQ 作者【熬夜磕代码、】的原创文章。
原文链接:【http://xie.infoq.cn/article/f3370108e94a3336b631a21e8】。文章转载请联系作者。
评论