首页 博客 人工智能与智能体 什么是向量数…
人工智能与智能体

什么是向量数据库?

向量数据库入门:从词向量到相似性搜索

理解非结构化数据的存储、检索与嵌入模型

向量(和词向量)—— 矢量数据库保存文档、图像和音频文件等信息,这些信息不适合传统数据库所期望的表格格式。相反,这些数据的存储、检索和管理是以向量的形式完成的。在数学术语中,向量是具有大小值和方向值的对象。

实际上,向量描述了两点之间相对于给定维数的关系。在词向量的上下文中,想想单词”男孩”与 X、Y 平面上的其他名词的关系,其中 X 是性别,Y 是年龄。

上面的向量量化了”男孩”与其他每个名词的关系。例如,从”男孩”到”女人”,与”男孩”到”孩子”的向量相比,我们看到的幅度要大得多,方向也不同。

这是有道理的,因为”女人”比”男孩”大得多,并且具有异性,而”孩子”可能与”男孩”具有相同的相对年龄,但是一个性别中立的名词。

在这种比较中,我们可以说”孩子”这个词相对于其他名词来说,与我们对”男孩”的查询最相似。这种相似性使我们能够在向量数据库中进行搜索。

搜索

在向量数据库中搜索的核心思想是,相似的项目将具有相似的向量。所谓”相似”,是指向量在向量空间中彼此接近。两个向量之间的距离可以使用各种方法测量,余弦相似度和欧几里得距离是最常见的两种。

让我们从 L2 范数或欧几里得距离开始,因为这是最直接、最容易理解的方法。你可能会从中学代数中认出欧几里得距离——它测量的是两点之间的”直线”距离。

在搜索中使用时,我们计算查询向量与数据库中给定数量的项目向量之间的欧几里得距离。与查询距离最小的向量被视为最相似的项。

相比之下,余弦相似度测量两个向量之间角度的余弦。简单地说,角度越小,查询向量与该特定项目越相似。

📌 余弦相似度示例:
如果查询向量和项目向量相同,则它们之间的角度将为 0°,余弦相似度分数将为 1。但是,如果没有相似性,您将看到接近 180° 的角度和接近 0 的相似性分数。
(“boy” == “boy”) → 1.0   (“boy” != “tennis”) → 接近 0

大多数向量数据库使用余弦相似度作为其默认检索函数,其中计算查询向量与给定数量的项向量之间的余弦相似度,以确定每个项与查询的相似程度。与查询具有最高余弦相似性分数的项被视为最相似的项。

向量数据库和关系数据库有什么区别?

数据表示和用例

关系数据库以行和列(表格格式)存储数据,每行表示一个实体,每列表示该实体的一个属性。另一方面,向量数据库将数据存储为向量——可以表示项目本质的数字序列。

这就是为什么它使它们适合存储和检索非传统数据源,如文档、图像和音频文件。

查询机制

关系数据库依赖于 SQL(结构化查询语言)进行查询。您可能会要求提供符合特定条件的数据(例如”余额小于 0 的所有帐户”)。在向量数据库中,将搜索向量与数据库中存储的向量进行比较,以仅查找最相似的向量。因此,您可以期望与向量数据库的库进行交互,而不是与 SQL 等整个语言进行交互。

什么是嵌入模型以及如何在矢量数据库中使用它们?

嵌入模型是将您的原始数据(pdf、mp3 等)转换为矢量嵌入的方法。这些嵌入的目标是以这样一种方式表示数据,即向量之间的几何距离是有意义的。换言之,原始数据空间中的相似项在嵌入向量空间中应该靠得很近,而不同的项应该相距很远。

一个常见的例子是自然语言处理中的词嵌入。单词被转换为向量,使得具有相似含义或在相似上下文中使用的单词在向量空间中靠得很近。例如,我们之前的”男孩”和”孩子”向量示例在这个空间中比”男孩”和”女人”的向量更接近。

您的矢量数据库可能有一个默认的嵌入模型,该模型已被抽象掉,因此您无需自己选择模型。但是,生成式 AI 领域正在迅速发展,您可能需要尝试使用不同的模型来尝试提高性能或搜索相关性。

什么是最好的开源向量数据库?

您应该始终根据特定组件的功能如何与项目要求保持一致来选择技术。如果要查找原型设计的起点,可能需要调查以下一些选项:

🔍 FAISS

Facebook AI 相似性搜索。擅长索引、搜索和聚类大量高维向量,尤其是在图像识别和语义文本搜索方面。在内存消耗和查询时间方面非常高效。

🐦 Milvus

擅长向量索引和查询,使用先进的算法在大型数据集中快速检索。与 PyTorch 和 TensorFlow 等框架很好地集成,应用于推荐系统、图像分析等。

🎨 Chroma

从头设计,与 LLM 应用程序集成,处理多种数据类型。对音频数据特别有效,适用于音乐推荐、音频搜索引擎等。

矢量数据库有哪些托管云服务?

☁️ Pinecone
以其用户友好的界面和专注于大规模机器学习应用程序而闻名,支持高维向量数据库,用于相似性搜索、推荐系统和语义搜索等用例,同时抽象出基础设施的责任。提供实时数据分析功能。

❄️ Snowflake Data Cloud (Cortex)
凭借 Snowflake Cortex,提供完全托管的 LLM 应用开发平台,包括向量嵌入和相似性搜索功能、Streamlit 集成,以及 Snowpark Container Services 用于部署自定义容器化工作负载。强调安全与治理。

综上所述

今天,我们了解了矢量数据库如何为存储文档、图像和音频等非表格数据提供独特的解决方案。我们探讨了余弦相似度和欧几里得距离这两个主要的相似性指标,以及向量数据库在数据表示和查询机制方面与关系数据库的区别。

我们还了解到嵌入模型在将原始数据转换为有意义的向量嵌入方面的重要性。我们回顾了 FAISS、Milvus 和 Chroma 等开源矢量数据库,以及 Pinecone 和 Snowflake Cortex 等托管云服务。

您应该对自己对这项技术的了解及其所能实现的目标充满信心,但您不必独自旅行。iModel的工程团队随时为您提供帮助!

🚀 探索 iModel 数据科学平台 · 向量检索与 AI 工作流 免费体验 →

❓ 向量数据库常见问题

向量数据库适合替代传统关系数据库吗?
不完全是。向量数据库专为非结构化数据(文本、图像、音频)的相似性检索而设计,而关系数据库擅长结构化数据的精确查询。两者通常互补使用。
余弦相似度和欧几里得距离哪个更好?
取决于场景。余弦相似度对向量的“方向”更敏感,适合文本等高维稀疏数据;欧几里得距离更注重“数值大小”,适合图像等连续特征。许多向量数据库提供多种距离度量供选择。
嵌入模型需要自己训练吗?
大多数情况下不需要。主流向量数据库和云服务都内置了成熟的预训练嵌入模型(如 OpenAI Embeddings、Sentence-BERT),您可以直接使用。对于特定领域数据,可进行微调。
iModel 在向量检索方面提供哪些能力?
iModel 数据科学平台内置了向量存储与相似性检索模块,支持多种嵌入模型接入,并提供可视化工作流,帮助您快速构建 RAG、推荐系统等应用。
📌 本文基于向量数据库的基础概念与主流工具(FAISS、Milvus、Chroma、Pinecone、Snowflake Cortex)进行科普,旨在帮助读者快速理解技术脉络。实际选型请结合项目需求与测试结果。

搜索文章

返回博客列表
iModel 专属客服
网页直接对话,无需微信
4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码