向量数据库—加速大模型训练推理
前言
中国数据库联盟主席盖国强表示:向量技术的出现为非结构化数据的管理打开了一扇门。从概念上看,向量数据库就是一种能够将数据存储为高维向量的数据库,作为一种数据结构,每个向量都包含多个维度,每个维度代表不同的特征或属性,在保障信息完整的情况下,通过向量嵌入函数精准描写非结构化数据的特征,能够快速完成查询、删除、修改、元数据过滤等操作。因此相较。于传统关系型数据库,向量数据库通过使用向量相似度算法,可以快速且精确地进行相似度检索。
向量数据库不是一种新的技术领域,只是没有太多人去关注它,如今大模型的发展,使得向量检索成为普遍需求,向量数据库的价值渐渐显示出来。本文将带你了解什么是向量数据库,以及目前向量数据库的产品有哪些?
什么是向量数据库?
21 世纪的今天,信息呈现多样化,部分信息是非结构化,比如如文本文档、富媒体和音频,而另一部分是结构化的,比如应用程序日志、表格和图表。人工智能和机器学习(AI/ML)的发展使得我们能够建立一种称为嵌入模型的机器学习模型。嵌入模型将各种类型的数据编码为向量,以便捕捉资产的意义和上下文。这使得我们能够通过搜索相邻的数据点来找到相似的资产。向量搜索方法提供了独特的体验,例如用智能手机拍照然后搜索相似的图像。
向量数据库能够将向量存储为高维点并进行检索。这些数据库具备额外功能,能够在 N 维空间中高效快速地查找最近邻。通常,这些功能由 k 最近邻(k-NN)索引支持,并采用诸如分层可导航小世界(HNSW)和倒排文件索引(IVF)算法等来构建。向量数据库还提供其他功能,如数据管理、容错、身份验证和访问控制,以及查询引擎。
Amazon OpenSearch Serverless 向量引擎
几月前,亚马逊云科技推出了Amazon OpenSearch Serverless
向量引擎,为用户提供了简单、可扩展且高性能的相似性搜索功能。这使用户能够轻松创建现代化的、由机器学习增强的搜索体验和生成式人工智能应用程序,而无需管理底层的向量数据库基础设施。尽管仍处于预览版阶段,但其性能和功能已经十分强大。
Amazon OpenSearch Serverless
是一种分布式的、由社区驱动并采用 Apache 2.0 许可的 100%开源搜索和分析套件,可用于多种广泛的使用情景,包括实时应用程序监控、日志分析和网站搜索。OpenSearch
提供了一个高度可扩展的系统,通过集成的可视化工具OpenSearch
控制面板,使大量数据能够快速访问和响应,让用户能够轻松探索他们的数据。OpenSearch
借助Apache Lucene
搜索库提供技术支持,支持多种搜索和分析功能,包括 k-最近邻(KNN)搜索、SQL
、异常检测、Machine Learning Commons
、Trace Analytics
、全文搜索等。具有以下特点:
1、使用由 AWS 托管的流行开源解决方案实现更卓越的运营 2、利用内置认证的数据中心和网络架构审计并保护数据,系统地检测潜在威胁,并利用机器学习、提示和可视化等技术根据系统状态作出反应。3、系统地检测潜在威胁,并利用机器学习、提示和可视化等技术根据系统状态作出反应。4、优化时间和资源,确保专注于战略性的工作 。
Amazon OpenSearch Service
能够帮助您轻松进行交互式日志分析、实时应用程序监控、网站搜索等任务,它源自Elasticsearch
的开源分布式搜索和分析套件,拥有上万活跃客户,托管数十万个集群,每月处理数百万亿个请求。足以说明OpenSearch
产品十分强大,吸用来许多用户,其工作原理如下图所示:
使用场景
Amazon OpenSearch Serverless
的使用场景太多了,包括:图像搜索、文档搜索、音乐检索、产品推荐、视频搜索、基于位置的搜索、欺诈检测以及异常检测等。例如:向量引擎支持的混合搜索使得用户能够在单个查询调用中查询向量嵌入、元数据和描述性信息,从而在不构建复杂应用程序代码的情况下,轻松地提供更准确的,与上下文相关的搜索结果。
其他向量数据库
Faiss
Faiss
是一个开源库,专注于高效的相似性搜索和密集向量聚类。它使用 C++编写,并提供了完整的 Python/numpy 包装器。此外,一些常用算法还具备 GPU 实现。该库提供了多种索引算法,能够构建不同类型的索引。它支持欧氏距离或点积的相似度计算功能。一些索引类型是基于精确搜索的简单结构。对于大多数可用的索引结构,需要权衡搜索时间、搜索质量以及每个索引向量使用的内存等方面的考量。
Milvus
Milvus
是一个开源的分布式向量数据库,具有高可用性、高性能和易扩展性的特点,用于实时检索海量向量数据。它基于Faiss
、Annoy
、HNSW
等向量搜索库构建,在解决稠密向量相似度检索方面发挥着核心作用。除了向量检索库的功能外,Milvus
还支持数据分区分片、数据持久化、增量数据摄取、标量向量混合查询、时间穿梭等特性。同时,Milvus
大幅优化了向量检索的性能,能够满足各种向量检索场景的应用需求。
Chroma
Chroma
是一个基于向量检索库实现的轻量级向量数据库,集成了初学者所需的所有要素,并提供简单的 API。目前仅支持 CPU 计算,但利用乘积量化的方法将向量维度切分成多段,分别进行k-means
聚类,以减少存储空间并提高检索效率。它还能与LangChain
集成,实现基于语言模型的应用。Chroma
的优点在于易用、轻量且智能,但其功能相对简单,不支持 GPU 加速。
elasticsearch
Elasticsearch 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储数据,飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。
Tencent Cloud VectorDB
腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持 10 亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、自然语言处理等 AI 领域。
向量数据库的应用场景
向量数据库的应用场景十分广泛,主要有以下几个方面:
图像和视频处理
在图像和视频处理场景中,需要处理大量的图像和视频数据,其中图像和视频数据往往是由向量表示的。向量数据库可以用于存储和管理图像和视频特征向量数据,并使用向量相似度算法来实现高效的图像和视频处理。
自然语言处理
在自然语言处理场景中,需要处理大量的文本数据,其中文本数据往往是由向量表示的。向量数据库可以用于存储和管理文本向量数据,并使用向量相似度算法来实现高效的自然语言处理。
推荐系统
在推荐系统场景中,需要处理大量的用户行为数据和商品特征数据,其中商品特征数据往往是由向量表示的。向量数据库可以用于存储和管理商品特征向量数据,预测客户的需求并提供适合他们兴趣的个性化体验。
搜索引擎
在搜索引擎场景中,需要处理大量的文本数据,并将文本数据映射到向量空间中进行搜索。向量数据库可以用于存储和管理文本向量数据,并使用向量相似度算法来实现高效的搜索。
人脸识别和身份验证
在人脸识别和身份验证场景中,需要处理大量的人脸数据,并将人脸数据映射到向量空间中进行比对。向量数据库可以用于存储和管理人脸特征向量数据,并使用向量相似度算法来实现高效的人脸识别和身份验证。
基于“事实”的个性化聊天机器人
提供交互式响应和帮助,以更好地支持您的客户。
总结
向量数据库加速了大模型训练推理,大模型也让向量数据库变得越发重要。向量数据以生产级别的向量嵌入搜索支持,提高了开发人员生产力,并且可扩展性非常强,工作效率极高。上面列举的向量数据库都有各自的优势,然而在我个人看来Amazon OpenSearch Serverless
具有强大的性能和可扩展性,可以满足各种应用程序的需求。如果您想要了解或使用向量数据库,亚马逊云科技最近还提供向量数据库的免费试用服务,值得一看。
版权声明: 本文为 InfoQ 作者【不叫猫先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/42368989426e867fe7c33c294】。文章转载请联系作者。
评论