翻译自 Vector Databases: Long-Term Memory for Artificial Intelligence 。
向量数据库存储文本、视频或图像等数据,这些数据被转换为向量嵌入,供 AI 模型快速访问。
人工智能(例如ChatGPT)的作用类似于具有固有记忆的人去图书馆阅读每一本书。然而,当你问一个 AI 一个不在图书馆书中的问题时,它要么承认自己不知道,要么产生幻觉。
人工智能幻觉是指人工智能系统生成的输出可能看起来连贯或似是而非,但并非基于现实或准确信息。这些输出可以包括 AI 模型根据其训练生成但可能与现实世界的事实或逻辑不一致的文本、图像或其他形式的数据。
例如,我们可以使用生成式人工智能(如 Midjourney )来生成一张老人的照片。但是,提示(与类似 Stable Diffusion 等 AI 通信的方式)必须是模型能够理解的。例如,您可以要求 AI 创建一张年迈的男人的图片。在这种情况下,我使用了 Midjourney ,这是一种流行的图像生成式人工智能,来完成这项任务。我故意使用了一个可能会使其产生幻觉的示例。
Midjourney 不理解 over the hill 之类的委婉说法,因此它生成了一个男人的照片,他实际上是在山顶上。
你如何告诉AI“over the hill”这个词组以及其他它不熟悉的语言细节的含义呢?首先,你可以提供训练数据。具体做法是将这些数据转换为所谓的“嵌入”(embeddings),然后将它们导入到向量数据库中。
虽然这个例子可能有些牵强附会,但在许多其他情境中同样适用。例如,医疗和法律领域的行业专用术语可以从能够针对其特定术语和含义进行 AI 培训中受益。企业将希望向 AI 提供他们的数据,而不必引入公共模型。
向量据库的一个关键用例是大型语言模型,用于检索可在文本生成期间查询的特定领域或专有事实。因此,向量数据库对于构建专有大型语言模型的组织至关重要。
传统数据库,例如关系数据库(例如 MySQL、PostgreSQL、Oracle)和 NoSQL 数据库(例如 MongoDB、Cassandra),几十年来一直是业务数据管理的支柱。它们以表格、文档或键值对等结构化格式存储和组织数据,使使用标准编程语言查询和操作变得更加容易。
这些数据库擅长处理具有固定模式的结构化数据,但它们常常难以处理非结构化数据或高维数据,例如图像、音频和文本。此外,随着数据量和速度的增加,它们可能会面临性能瓶颈,从而导致响应时间变慢和可扩展性问题。
另一方面,向量数据库代表了数据存储和检索的范式转变。它们不依赖于结构化格式,而是将数据存储和索引为高维空间中的数学向量。这种称为“向量化”的方法允许更有效的相似性搜索和更好地处理复杂数据类型,例如图像、音频、视频和自然语言。
将向量数据库想象成一个巨大的仓库,将 AI 想象成熟练的仓库管理员。在这个仓库中,每个项目(数据)都存储在一个盒子(向量)中,整齐地组织在多维空间的货架上。仓库管理员 (AI) 知道每个盒子的确切位置,可以根据物品的相似性快速检索或比较物品,就像熟练的仓库管理员可以找到相似的组产品一样。
这些盒子代表不同类型的非结构化数据,例如文本、图像或音频,这些数据已被转换为结构化数字格式(向量)以便有效地存储和管理。仓库的组织和优化程度越高,仓库经理 (AI) 就可以更快、更准确地找到各种任务所需的物品,例如提出建议、识别模式或检测异常情况。
这个类比有助于传达这样的想法,即向量数据库是人工智能系统的重要基础,使它们能够以结构化和有组织的方式有效地管理、搜索和处理复杂数据。正如管理良好的仓库对于顺利的业务运营至关重要一样,向量数据库在 AI 驱动的应用程序和解决方案的成功中起着至关重要的作用。
向量数据库的主要优势在于它们能够执行近似最近邻 (ANN) 搜索,从而快速识别大型数据集中的相似项目。使用降维和索引算法等技术,向量数据库可以大规模执行这些搜索,提供闪电般快速的响应时间,并使其成为推荐系统、异常检测和自然语言处理等应用程序的理想选择。
嵌入式技术可以将复杂的数据(例如单词)转换为更简单的数值表示形式(称为向量)。这使得 AI 系统更容易理解和处理这些数据。概率分析可以帮助创建这些表示形式,方法是分析某些数据在一起出现的频率。
概率分析可以帮助量化两个数据之间的相似度,使得 AI 系统可以找到相关联的项目。基于概率分析的技术可以帮助 AI 系统在大型数据库中快速找到相似的数据点,而无需检查每个项目。概率分析可以帮助 AI 系统将相似的数据点分组,并降低数据的复杂性,使其更易于处理和分析。
虽然现在有越来越多的向量数据库,但是有几个因素促成了它们的流行。这些因素包括:在存储、索引和搜索高维向量时高效的性能;易于与现有的机器学习框架和库集成使用;在处理大规模、高维数据时具有可扩展性;提供多个后端和索引算法的灵活性;以及拥有活跃的社区支持,提供有价值的资源、教程和示例。
更受用户欢迎的向量数据库通常提供快速准确的最近邻搜索、聚类和相似度匹配,并且可以轻松部署在云基础设施或分布式计算系统上。根据用户的受欢迎程度和 Github 上的星星数,以下是一些最受欢迎的向量数据库:
- Pinecone :Pinecone 是一个基于云的向量数据库,旨在有效地存储、索引和搜索广泛的高维向量集合。 Pinecone 的主要功能包括实时索引和搜索、处理稀疏和密集向量以及支持精确和近似最近邻搜索。此外,Pinecone 可以轻松与其他机器学习框架和库集成,使其成为构建生产级 NLP 和计算机视觉应用程序的热门工具。
- Chroma :Chroma 是一个开源向量数据库,它提供了一种快速且可扩展的方式来存储和检索嵌入。 Chroma 被设计为轻量级且易于使用,具有简单的 API 并支持多个后端,包括 RocksDB 和 Faiss(Facebook AI 相似性搜索——一个允许开发人员快速搜索彼此相似的多媒体文档嵌入的库). Chroma 的独特功能包括对压缩和量化的内置支持,以及动态调整数据库大小以处理不断变化的工作负载的能力。由于其灵活性和易用性,Chroma 是研究和实验的热门选择。
- Weaviate:Weaviate 是一个开源向量数据库,旨在构建和部署 AI 驱动的应用程序。 Weaviate 的主要功能包括支持语义搜索和知识图谱,以及自动从文本数据中提取实体和关系的能力。 Weaviate 还包括对数据探索和可视化的内置支持。 Weaviate 是需要复杂语义搜索或知识图谱功能的应用程序的绝佳选择。
- Milvus :Milvus 是一个开源向量数据库,专为大规模机器学习应用而设计。 Milvus 针对基于 CPU 和 GPU 的系统进行了优化,支持精确和近似最近邻搜索。 Milvus 还包括一个内置的 RESTful API 并支持多种编程语言,包括 Python 和 Java。 Milvus 是构建需要实时相似性搜索的推荐引擎和搜索系统的热门选择。 Milvus 是 Linux 基金会人工智能和数据基金会的一部分,但主要开发者是 Zilliz。
- DeepLake:DeepLake 是一个基于云的向量数据库,专为机器学习应用而设计。 DeepLake 的独特功能包括对流数据的内置支持、实时索引和搜索,以及处理密集和稀疏向量的能力。 DeepLake 还提供了 RESTful API 和对多种编程语言的支持。对于需要实时索引和搜索大规模、高维数据的应用程序,DeepLake 是一个不错的选择。
- Qdrant :Qdrant 是一个开源向量数据库,专为实时分析和搜索而设计。 Qdrant 的独特功能包括对地理空间数据的内置支持以及执行地理空间查询的能力。 Qdrant 还支持精确和近似的最近邻搜索,包括一个 RESTful API 和对多种编程语言的支持。 Qdrant 是需要实时地理空间搜索和分析的应用程序的绝佳选择。
与 SQL 和 NoSQL 数据库的情况一样,向量数据库有许多不同的风格,可以解决各种用例。
人工智能应用依赖高效存储和检索高维数据来提供个性化推荐、识别视觉内容、分析文本和检测异常。向量数据库可以高效、准确地搜索和分析高维数据,这使它们对于开发强大、高效的人工智能系统至关重要。
在推荐系统中,向量数据库具有存储和推荐最符合用户兴趣和偏好的项目的关键功能。这些数据库通过将项目表示为向量来促进对相似项目的快速有效搜索。此功能允许人工智能系统提供个性化推荐,从而改善社交网络、流媒体服务和电子商务网站上的用户体验。
亚马逊使用的是一种常用的人工智能推荐系统。亚马逊使用协同过滤算法分析客户行为和偏好,为他们可能有兴趣购买的产品提供个性化推荐。
该系统会考虑过去的购买历史、搜索查询和客户购物车中的商品来提出建议。亚马逊的推荐系统还使用自然语言处理技术来分析产品描述和客户评论,以提供更准确和相关的推荐。
在图像和视频识别中,向量数据库将视觉内容存储为高维向量。这些数据库使 AI 模型能够有效地识别和理解图像或视频,找到相似性,并执行对象识别、人脸识别或图像分类任务。这在安全和监视、自动驾驶汽车和内容审核方面都有应用。
一种常用的由 AI 提供支持的图像和视频识别系统是 TensorFlow Object Detection API。这个由谷歌开发的开源框架允许用户训练自己的模型来执行对象检测任务,例如识别和定位图像和视频中的对象。
TensorFlow 对象检测 API 使用深度学习模型,例如流行的 Faster R-CNN 和 SSD 模型,以实现对象检测的高精度。它还为日常对象检测任务提供预训练模型,可以在新数据集上进行微调以提高性能。
向量数据库通过将有关单词和句子的信息存储和管理为向量,在 NLP 中发挥着关键作用。这些数据库使 AI 系统能够执行诸如搜索相关内容、分析一段文本的情感甚至生成类似人类的响应等任务。通过利用向量数据库的强大功能,NLP 模型可用于聊天机器人、情感分析或机器翻译等应用。
一种常用的 NLP 系统是自然语言工具包 (NLTK)。 NLTK 是一个用于构建 Python 程序以处理人类语言数据的综合平台。它为 50 多种语料库和词汇资源提供了易于使用的界面,并提供了一套用于分类、标记化、词干提取、标记、解析、语义推理等的文本处理库。研究人员和从业者在学术界和工业界广泛使用 NLTK,它是教授 NLP 概念和技术的热门选择。
向量数据库可以帮助检测各个领域的异常活动或行为,例如网络安全、欺诈检测或工业设备监控。这些数据库可以通过将数据表示为向量来快速识别偏离规范的模式。然后,与向量数据库集成的人工智能模型可以标记这些异常并触发警报或缓解措施,确保及时有效的响应。
Microsoft Azure Anomaly Detector 是一种基于云的服务,允许用户监控和分析时间序列数据以识别异常、尖峰和其他异常模式。 Azure 异常检测器使用季节性混合 ESD (S-H-ESD) 和奇异频谱分析 (SSA) 等高级 AI 算法,在数据中发现异常行为时自动检测并提醒用户。它还为开发人员提供了一个简单的 REST API,以便将服务有效地集成到他们的应用程序和工作流中。
向量数据库对于许多人工智能 (AI) 应用至关重要,包括推荐系统、图像和视频识别、自然语言处理 (NLP) 和异常检测。通过将数据存储和管理为高维向量,这些数据库可以高效、准确地搜索和分析大型数据集,从而增强用户体验、改进自动化并及时检测异常。在推荐系统领域,向量数据库允许快速识别与用户偏好最相关的项目。
同时,图像和视频识别可实现高效的物体和人脸识别。向量数据库通过存储和管理有关单词和句子的信息作为向量,在 NLP 中发挥着至关重要的作用。在异常检测中,它们可以快速识别异常模式或行为。总体而言,向量数据库对于跨各个领域开发强大而高效的人工智能系统至关重要。