如何为您的企业GENERATIVE-AI堆栈选择合适的矢量数据库

智能真的很好说 2024-03-07 06:32:51
我们将探讨在企业中选择正确的向量数据库的框架,以构建基于生成式人工智能的应用程序。

由于大型语言模型在企业中的采用激增,GENERATIVE AI 为释放各种业务潜力和用例开辟了一条新途径。GENERATIVE AI 的主要架构构建块之一是由 Vector 数据库提供支持的语义搜索。顾名思义,语义搜索本质上涉及在带有元数据的向量集合中的“最近邻”(A-NN 或 k-NN)搜索。该系统具有在向量存储中查找最接近的向量数据的索引,称为向量数据库,其中查询结果基于查询的相关性,而不是完全匹配。这种技术广泛用于流行的 RAG(检索增强生成)模式,其中基于用户的输入查询在向量数据库中执行相似性搜索,并将相似结果或相关信息增强到大型语言模型的输入中,以便 LLM 不会对超出其知识边界的查询产生幻觉,从而为用户生成唯一的响应。如果没有作为架构中主要核心组件之一的 Vector 数据库的支持,这种流行的基于 GENERATIVE AI 的模式称为 RAG,就无法实现。由于 GENERATIVE-AI 用例越来越多,作为一名致力于将基于 LLM 的原型过渡到生产的工程师,在开发的早期阶段确定正确的向量数据库至关重要。

在概念验证阶段,数据库的选择可能不是工程团队的关键问题。然而,随着团队进入生产阶段,整个视角发生了很大变化。嵌入/向量数据量可以显着增加,并且需要在应用程序中集成安全性和合规性。这需要深思熟虑的考虑,例如在服务器发生故障时的访问控制和数据保存。在本文中,我们将解释一个框架和评估参数,在为基于GENERATIVE-AI的用例正确选择企业级向量数据库时,应考虑这些参数,同时考虑开发人员体验以及结合到企业体验中的技术经验。我们还需要记住,市场上有许多 vector db 产品提供封闭或开源产品,并且每种产品都迎合特定的用例,并且没有一种解决方案适合所有用例。因此,在为基于生成式 AI 的应用程序决定最合适的选项时,必须关注关键方面。

什么是矢量数据库,为什么需要它?

首先,我们需要了解什么是向量或嵌入。向量或嵌入表示数字数据的数学表示,例如文本、图像或多媒体内容,如具有多个维度的音频或视频。这些嵌入与所表示数据之间的语义含义和邻近关系有关。维度越多,数据就越能准确地传达相关性或相似性。当在向量空间中完成搜索时,它会将自然语言中的输入查询转换为向量嵌入,然后使用相似性算法来识别相关向量,该算法将向量之间的最短距离链接起来。在构建 AI 应用程序或设计推荐引擎或分类器应用程序时,数据库中的此功能非常有用。使用向量数据库的相似性搜索对于存储组织的矢量化私有域数据非常有用,这些数据可以在构建GENERATIVE-AI产品或在现有应用程序中添加GEN-AI功能时进行增强,例如构建内容摘要,推荐内容生成,文档问答系统,数据分类引擎。

众所周知,传统的RDBMS或NoSQL数据库难以存储具有大量维度的矢量数据以及其他数据类型,并且它们面临着可扩展性挑战。此外,这些数据库仅在输入查询与存储的数据精确匹配时返回结果,而向量数据库的目的是根据相似性或相关性提供结果,而不仅仅是完全匹配。向量数据库使用各种算法,如第N个最近邻(N-NN)或近似最近邻(ANN)来索引和检索其中距离最短的相关数据。因此,我们可以看到,我们仍然需要传统的数据库来构建一个安全的符合 ACID 标准的事务系统。尽管如此,当我们在构建基于GENERATIVE AI的应用程序时寻找一些利基功能时,Vector数据库还是解决了这个难题,这些应用程序专注于增强私有业务数据,或者从不相关数据集群中对类似数据进行分类,或者创建一个用户友好的推荐引擎。

为企业AI应用选择合适的向量数据库的框架

每个项目都会有不同的要求,很难只有一个解决方案可以满足所有要求。由于不可能一一列举,我们将使用一个框架来研究几个重要的领域,这些领域不仅对开发阶段的原型构建很重要,而且对一般的 AI 应用程序的生产也很重要。

如下图所示,我们的框架由两类组成:

专注于基于企业的数据库技术方面的技术体验,可以在较长的时间内支持整个企业 AI 应用程序,并具有强大的安全性。开发体验侧重于为企业工程团队提供无缝开发体验,以快速构建 AI 原型,而无需管理基础设施挑战。

技术体验的构建基块是什么?

技术经验主要集中在涉及核心基础设施的数据库的操作和可靠性方面。我们将在下面讨论主要的构建块。

性能

性能是矢量数据库的核心方面之一。为了实现 RAG 模式,AI 应用程序需要借助大型语言模型(例如 OpenAI 的 text-embedding-ada-002 模型或 Amazon 的 amazon.titan-embed-image-v1 基础模型)将公司自己的私人数据或知识转换为向量或嵌入,然后需要将生成的嵌入存储到向量数据库中。众所周知,在 Vector 数据库中,需要索引才能在大量记录中进行有效搜索。索引是一种数据结构,可以加快数据库中的检索操作 - 其原理与书中的索引相同。数据库的性能很大程度上取决于它构建索引的速度和效率,因此无论系统中存储了多少具有不同维度的数据量,数据库搜索都会产生恒定的检索时间。如果您期望在向量数据库中存储大量知识或数据,或者您希望它们呈指数级增长,那么最好选择能够支持从存储中持续检索时间的向量数据库,无论存储了多少数据。

最常用的矢量索引算法是 IVF(倒排文件索引)和分层导航小世界 (HNSW)。HNSW 以更快的速度提供更高质量的搜索结果,因为构建或重新构建索引需要更多时间,而 IVF 占用更少的内存。因此,在我们有内存限制并且不需要经常重新构建索引的情况下,我们需要使用 IVF 算法寻找向量数据库。否则,使用 HNSW 索引算法的矢量数据库是获得更好质量和速度的默认选择。

可 伸缩

您是否预计数据库会快速增长?如果是这样,最好提前计划并考虑候选数据库的可伸缩性。可扩展性是指系统的扩展能力。确定数据库提供程序可以容纳的矢量嵌入量是否有限制,并探索缩放选项。

横向扩展的一种常见方法是“分片”技术,其中数据分布在多个数据库副本中,通过集成相同数据的多个只读副本来减轻负载并提高性能。虽然这似乎是一种简单的技术,但实际实现可能更加复杂。向现有部署添加其他分片并不总是那么简单,并且通常涉及某种形式的停机时间。当 AI 应用程序快速增长时,使用托管服务将是比管理自己的基础设施更好的选择,有许多基于 SAAS(软件即服务)的解决方案可以立即扩展。

高性价比

成本也是在构建基于GENERATIVE-AI的解决方案时需要仔细考虑的另一个因素。在处理外部向量数据库解决方案时,应考虑预期扩展的嵌入的估计数量,并相应地根据质量、速度和嵌入总数与供应商合作定价。

高可用性

确保应用程序的持续运行至关重要,尤其是面向客户的应用程序。我们需要验证提供商是否可以提供服务级别协议 (SLA),这是服务提供商和客户之间的正式承诺,指定保证正常运行时间。在某些情况下,可能需要设计一个具有非易失性存储类型的分布式系统,以增强现有数据库的可用性。

企业支持

在选择基于 SAAS 的矢量数据库解决方案时,必须建立全面的 SLA,以确保矢量数据库供应商提供强大的企业级支持。此 SLA 应包括预定义且双方商定的 RPO(恢复点目标)和 RTO(恢复时间目标)。此外,无论是供应商管理的数据库解决方案还是自我管理的开源数据库解决方案,我们都应该考虑进行适当的实时监控。强大的监测系统对于高效的病媒数据库管理至关重要,可以通过实时仪表板跟踪性能、运行状况和整体状态。监控在检测问题、优化性能和确保无缝操作方面发挥着关键作用。

安全

在高度监管的行业中,在某些情况下,企业数据必须驻留在公司的基础设施中。在这种情况下,可以认为自我管理的数据库解决方案是最佳选择。对于供应商管理的解决方案,评估产品至关重要,确保正确实施传输中加密和静态加密,以维护数据的安全性。此外,请务必确认提供商持有 SOC 认证等认证并符合 GDPR 以及医疗保健领域的 HIPAA 合规性。

开发人员体验的构建基块是什么?

在这个为企业生成式 AI 解决方案选择正确矢量数据库的框架中,开发人员体验与卓越运营同等重要。目标应该是选择一个提供用户友好体验的矢量数据库,使工程团队能够无缝地启动原型实验,而无需管理复杂性。各种构建基块包括:

易用性

在将业务逻辑实施到基于 GENERATIVE AI 的应用程序中时,工程团队非常欣赏用户友好且易于移植的数据库组件,以便在开发环境中运行。对于工程师来说,查看 docker-compose 中是否提供矢量数据库以在本地运行确实是一个福音。

文档

向量数据库解决方案需要提供结构良好且简单明了的文档,并附有广泛使用的编程语言(如 NodeJs、Java 等)的实用代码示例。这确保了工程团队的入职流程顺利进行。

工具和 SDK

对于工程团队来说,数据库必须包含他们首选编程语言的库或与他们选择的框架兼容的插件。虽然 Python 包在基于 AI 的应用程序开发中很普遍,但对于使用其他编程语言的项目,建议在现有支持下探索选项,而不是投入宝贵的时间开发自定义客户端库。

集成选项

在评估开发人员体验时,验证矢量数据库是否可在首选云平台上访问非常重要。提供多云支持可增强原型开发和选择正确部署选项期间的体验。

社区支持

矢量数据库应该有一个广泛的开发人员社区,以支持正在进行的功能开发和支持。如果这是托管供应商产品,请确保该产品应具有免费套餐产品或全面的免费解决方案,使开发人员能够在大多数通用 AI 用例中运行、查看、修改和试验工作代码。

结论

总之,我希望这里介绍的高级评估列表可以作为一个有价值的指南,使您能够根据您独特的组织需求做出明智的选择。在下一篇文章中,我们将评估一些流行的矢量数据库产品,看看它们如何适应上述框架。

原文标题:How To Select the Right Vector Database for Your Enterprise GENERATIVE-AI Stack

原文链接:https://dzone.com/articles/abcs-of-vector-database-you-should-know-before-int

作者:Suvoraj Biswas

编译:LCR

0 阅读:0

智能真的很好说

简介:感谢大家的关注