向量数据库与 RAG 应用架构解析(上)
深入探讨了向量数据库在检索增强生成(RAG)应用中的核心作用。内容涵盖了 RAG 的基本概念、现状挑战、语义搜索原理、嵌入模型创建方法、向量存储与索引算法(如倒排索引、基于图索引)、相似度度量(余弦、欧氏距离)等关键技术点。此外,文章还分析了企业在评估向量数据库时需考虑的多数据类型支持、搜索方法、数据新鲜度、事务性及生产环境安全性等因素,并提供了常见向量数据库选型参考及生产环境最佳实践,旨在帮助开发者构建高效、稳定的生成式 AI 应用程序。

深入探讨了向量数据库在检索增强生成(RAG)应用中的核心作用。内容涵盖了 RAG 的基本概念、现状挑战、语义搜索原理、嵌入模型创建方法、向量存储与索引算法(如倒排索引、基于图索引)、相似度度量(余弦、欧氏距离)等关键技术点。此外,文章还分析了企业在评估向量数据库时需考虑的多数据类型支持、搜索方法、数据新鲜度、事务性及生产环境安全性等因素,并提供了常见向量数据库选型参考及生产环境最佳实践,旨在帮助开发者构建高效、稳定的生成式 AI 应用程序。

数据库领域的发展日新月异,已涵盖众多细分市场和应用场景。如今,一个全新的数据库类别——向量数据库,正在迅速崛起。这一创新得益于生成式人工智能技术的飞速进步,以及大语言模型在各行各业的广泛应用。向量数据库的出现,无疑将引领数据处理的变革,为我们带来前所未有的可能性。本文将围绕向量数据库,详细介绍向量存储的高级分类,并尝试从在企业规模上构建生成式人工智能应用程序的角度来审视这个新市场。
大模型为我们带来很多惊喜,但是随着应用的逐步深入,其弊端越来越不容忽视。这些大模型被它们训练时的数据所束缚,无法反映现代企业动态和广阔的数据宇宙。幻觉问题、知识滞后性以及对私有数据的不可访问性是主要挑战。
RAG (Retrieval-Augmented Generation),检索增强生成,是一个由 Meta AI 研究团队开发的大规模自然语言处理模型架构。RAG 是一个将检索和生成结合在一起的模型,它能够从大量文本中检索相关信息,并用这些信息来生成答案或进行文本补全。
大多数搜索和检索的数据通常涉及非结构化和结构化数据。对于大多数非结构化数据,通常使用基于语义或含义的搜索,传统上也是一种搜索图像和发现数据异常以及在一定程度上对数据进行分类的技术。
现在不同的是,引入 LLM 后,大模型可以将数据转换为向量的嵌入模型,通过计算相似数据之间的距离来编码它们的含义,现在可以用于构建所有需要上下文数据的 LLM 应用程序。RAG 在大量的私人数据语料库中搜索,并检索与最相似的查询结果,以便将其作为上下文传递给 LLM。
RAG 时代是一种依靠基于语义搜索能力的软件模式,通过将原始数据转换为向量来实现。这就是向量数据库闪闪发光的地方,将数据转化为 AI 应用可以掌握的格式。
在语义搜索领域,嵌入 (Embedding) 是基础。嵌入表示数据的高维向量,可以是文本、图像或其他类型的数据,以计算机可处理的格式呈现。这些嵌入反映了数据的本质,包括其语义和语境细微差别,这对于语义搜索等任务至关重要,其中理解单词或图像背后的含义是关键。
Transformer 模型的出现彻底改变了嵌入的创建方式,特别是在自然语言处理(NLP)领域。像 BERT(双向编码器的 Transformer)和 GPT(生成式预训练 Transformer)这样的模型已经在理解语言的上下文和语义方面树立了新的标准。这些模型处理文本数据,创建嵌入不仅包含单词的字面意义,还包括它们的隐含和上下文的重要性。
在生成嵌入时,有以下几种选择:
这就是向量数据库发挥作用的地方。向量是一组用逗号分隔的数字,可以使用内存中的向量数据库或能够以高效方式存储这些数字的数据库进行存储。数据库可以将向量存储为不同的索引类型,以便更快地存储和检索可能具有超过一千个维度的数百万个向量。
向量使用效率的关键是它在数据库中的存储方式,有几种用于将向量聚集在一起的索引算法,这些算法在速度、准确性和资源使用方面取得平衡,组织和检索向量:
索引方法的选择会影响向量数据库的性能和可扩展性。倒排索引虽然快速,但对于高维向量数据可能不够高效。基于树和图的索引为这种数据提供了更多的可扩展性,但在搜索准确性和速度方面存在不同的权衡。量化提供了一个折中方案,平衡了效率和准确性。
在语义搜索中,检索过程从将查询转换为向量开始,使用与在数据库中创建嵌入向量相同的方法。然后将该查询向量与存储在数据库中的向量进行比较,以找到最相关的匹配项。一般来说,结果可能是精确匹配或近似匹配:精确的 K 最近邻(KNN)或近似最近邻(ANN)。语义搜索的有效性在于准确地衡量查询向量与数据库向量之间的相似性。
这其中相似度度量的选择至关重要,因为它直接影响搜索结果的相关性。最常见的度量包括:
其中余弦相似度和欧氏距离应用更为广泛,理论上余弦相似度会在高维向量里比欧氏距离好很多,欧氏距离通用性相对有限。
现有数据中有多少存储在结构化(例如 SQL)、半结构化(例如 JSON)和非结构化(例如 pdf、文件等)格式中。如果公司拥有更多种类的数据类型,则需要考虑使用支持多种数据类型的企业数据库(例如 SingleStore)。混合查询能力允许在同一系统中同时处理关系型数据和向量数据。
如果公司数据有多种数据类型,那么很可能会同时进行关键词搜索和语义搜索。ElasticSearch、AWS OpenSearch 和 SingleStore 等数据库同时支持基于文本的词汇和基于向量的语义搜索选项。混合搜索(Hybrid Search)结合了 BM25 等传统算法与向量相似度,往往能提供更鲁棒的检索结果。
需要考虑当前场景下更新数据的频率,要知道这些数据需要进行向量化才能在生成式 AI 应用程序中进行搜索。需要注意,具有定义函数和摄取管道功能的数据库可以更轻松地处理这些问题。实时写入和低延迟读取对于交互式应用至关重要。
生成式 AI 应用程序是否需要任何类型的分析用例,如果答案是肯定的,那么考虑使用可以基于列存储数据的数据库。某些向量数据库结合了 OLTP 和 OLAP 的能力,适合复杂的业务逻辑。
回答这个问题需要了解整体数据的总量、延迟和准确性要求以及其他数据安全和治理要求。例如应用程序是否需要考虑基于角色的访问控制(RBAC)、审计和其他行业级安全合规要求,以及应用程序和数据是否能够容忍停机或数据丢失等等意外情况。如果答案更倾向于企业级要求,那么考虑支持多种数据类型、以多种方式部署(本地、云和混合)并且能够处理灾难恢复并满足用户需求的企业应用程序是有意义的。
在实际落地过程中,选择合适的向量数据库是关键步骤。目前市场上主要有以下几类解决方案:
在选择时,建议根据数据量级、并发需求、预算以及团队技术栈进行综合评估。对于初创项目,开源方案配合容器化部署往往是性价比最高的选择;而对于大型企业,云托管服务能提供更高的稳定性和 SLA 保障。
将 RAG 系统投入生产环境时,除了数据库选型,还需关注以下工程实践:
向量数据库作为连接传统数据与大模型智能的桥梁,正在重塑企业级 AI 应用的构建方式。通过合理的架构设计和工具选型,企业可以有效释放数据价值,实现更精准、更智能的知识问答与决策支持。后续文章将继续探讨 RAG 系统的优化技巧与实战案例。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online