

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 矢量数据库选项
<a name="vector-db-options"></a>

AWS 提供各种矢量数据库解决方案，以支持生成式 AI 应用中的不同用例和要求。这些选项可以大致分为单独的数据库服务和托管服务产品，每种服务都有不同的特征和优势。对于希望在保持最佳性能、可扩展性和成本效益的同时有效实施矢量搜索功能的组织来说，了解这些选项至关重要。

有关矢量数据库解决方案的更多信息，请参阅以下各节：
+ [单个矢量数据库选项](#individual-dbs)
+ [托管服务选项](#managed-db)
+ [选择正确的矢量数据库](#choosing-database)

## 单个矢量数据库选项
<a name="individual-dbs"></a>

[上的单个矢量数据库选项 AWS 包括[亚马逊 Kendra、亚马逊 OpenSearch ](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html)[服务](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html)、带有 pgvector 的 Post [greSQL 的[亚马逊 RDS、亚马逊 MemoryD](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) B、亚马逊 D [ocumentDB、亚马](https://docs.aws.amazon.com/documentdb/latest/developerguide/what-is.html)逊 Nept](https://docs.aws.amazon.com/memorydb/latest/devguide/what-is-memorydb.html) une Analytics 和 A [ma](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/what-is-neptune-analytics.html) zon S3 Vector。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)（pgvector 是一个开源扩展，它增加了存储和搜索 ML 生成的矢量嵌入的功能。） 这些解决方案提供了不同的矢量搜索方法，允许组织根据其现有基础架构、技术要求和特定[用例](use-cases.md)进行选择。

### Amazon Kendra
<a name="kendra"></a>

Amazon Kendra 是一项企业级智能搜索服务，它使用自然语言处理和高级机器学习算法，从您的数据中返回搜索问题的具体答案。Amazon Kendra 简化了搜索功能的实现，使其成为生成式 AI 应用程序的有效后端解决方案。

Amazon Kendra 的其他主要功能包括：
+ 与 [40 多个数据源](https://aws.amazon.com/kendra/connectors/)的原生连接
+ 内置数据准备功能
+ 无需深厚的技术专业知识即可快速设置

亚马逊 Kendra 的好处包括以下几点
+ 自动数据处理（分块、摄取、检索）
+ 强大的自定义选项：
  + [分面搜索](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html)
  + [搜索分析](https://docs.aws.amazon.com/kendra/latest/dg/search-analytics.html)
  + [调整搜索相关性](https://docs.aws.amazon.com/kendra/latest/dg/tuning.html)
+ 通过以下方式进行简单的编程访问 [适用于 Python (Boto3) 的 AWS SDK](https://docs.aws.amazon.com/kendra/latest/dg/gs-python.html)

有关更多信息，请参阅亚马逊 Kendra 文档中的[亚马逊 Kendra 的好处](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html#what-is-benefits)。

### 亚马逊 OpenSearch 服务
<a name="opensearch-service"></a>

Amazon OpenSearch Service 是一项托管服务，可帮助您在中部署、操作和扩展 OpenSearch 服务集群 AWS Cloud。

 OpenSearch 服务的核心功能包括以下内容：
+ 开源搜索和分析引擎
+ 分布式架构
+ 实时数据处理

使用 OpenSearch 服务的一些优势包括：
+ 横向可扩展性
+ RESTful API 支持
+ 处理结构化和非结构化数据
+ 实时数据分析
+ 适用于各种部署规模

有关更多信息，请参阅[ OpenSearch 服务文档中的 Amazon OpenSearch 服务的功能](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html#what-is-features)。

### 带有 pgvector 的 Amazon RDS for PostgreSQL
<a name="rds"></a>

带有 pgvector 的 Amazon RDS for PostgreSQL 将托管关系数据库服务[与](https://github.com/pgvector/pgvector) PostgreSQL AWS 的矢量处理扩展插件相结合。这种组合使组织能够在维护 Amazon RDS 的同时存储和查询高维向量。该解决方案特别适用于需要实时矢量操作而无需管理数据库基础设施开销的生成式 AI 应用程序。

带有 pgvector 的 Amazon RDS for PostgreSQL 的主要优势包括：
+ 高可用性
+ 自动失效转移
+ 性价比高 (pay-per-use)
+ 内置监控
+ 实时矢量数据集成

有关更多信息，请参阅 Amazon RDS 文档[中的 Amazon RDS 的优势](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)。

### Amazon DocumentDB
<a name="documentdb"></a>

亚马逊 DocumentDB（兼容 MongoDB）是一个文档数据库，在 5.0 及更高版本中提供原生矢量搜索功能。它将基于 JSON 的文档存储的灵活性与矢量搜索相结合，支持分层可导航小世界 (HNSW) 和 Inverted File Flat () 索引方法。IVFFlat

Amazon DocumentDB 的核心功能包括以下内容：
+ 存储和索引最多 2,000 个维度的向量（不使用索引最多可达 16,000 个维度）
+ 向量相似度搜索的毫秒响应时间
+ Support 支持欧几里得、余弦和点积距离度量
+ 与现有兼容 MongoDB 的应用程序无缝集成

在以下情况下使用 Amazon DocumentDB：
+ 适用于已经在使用 M APIs ongoDB 且需要矢量搜索功能的应用程序
+ 适用于需要灵活的文档数据结构和语义搜索的用例
+ 适用于既需要传统文档查询又需要向量相似度搜索的场景
+ 适用于提供产品推荐、个性化、聊天助手和欺诈检测的应用程序

有关更多信息，请参阅亚马逊 Document [DB 文档中的向量搜索亚马逊](https://docs.aws.amazon.com/documentdb/latest/developerguide/vector-search.html) DocumentDB。

### Amazon MemoryDB
<a name="memorydb"></a>

Amazon MemoryDB 是一款与 Redis 兼容的内存数据库，其矢量搜索性能是目前流行的矢量数据库中最快的。 AWS它提供亚毫秒级的查询延迟和多可用区域的持久性。

MemoryDB 的核心功能包括以下内容：
+ 将应用程序数据和数百万个向量存储在单个数据库中
+ 个位数毫秒的查询和更新响应时间
+ 以最快的性能实现最高的召回率 AWS
+ Support 每个向量最多支持 32,768 个维度
+ 实时语义搜索和缓存功能

在以下情况下使用 MemoryDB：
+ 适用于需要超低延迟（低于 10 毫秒）的实时应用程序
+ 适用于每天处理数百万个请求的高吞吐量工作负载
+ 适用于实时推荐引擎、语义缓存和异常检测等用例
+ 适用于同时需要内存数据存储和矢量搜索功能的应用程序

有关更多信息，请参阅 MemoryDB 文档中的[矢量搜索](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search.html)。

### Amazon Neptune Analytics
<a name="neptune"></a>

Amazon Neptune Analytics 是一款提供原生矢量搜索功能的图形分析引擎，非常适合图形检索增强生成 (GraphRag) 用例。它将向量相似度搜索与图遍历和算法相结合。

Neptune Analytics 的核心功能包括以下内容：
+ 在几秒钟内分析数百亿个关系
+ 将矢量搜索与图形算法（路径查找、群落检测、中心性）相结合
+ 支持具有拓扑知识的 GraphRag 应用程序
+ 比现有图形分析解决方案快 80 倍
+ 与 Amazon Bedrock 集成，实现完全托管 GraphRag

在以下情况下使用 Neptune Analytics：
+ 适用于需要带有矢量嵌入的知识图的 GraphRag 应用程序
+ 适用于需要遍历复杂关系以及向量相似度的用例
+ 适用于需要通过关系上下文进行可解释的 AI 响应的应用程序
+ 适用于客户 360 度视图、欺诈检测网络和知识发现等场景

有关更多信息，请参阅[亚马逊 Neptune Analytics 文档](https://docs.aws.amazon.com/neptune-analytics/latest/userguide/what-is-neptune-analytics.html)。

### Amazon S3 Vectors
<a name="s3-vectors"></a>

Amazon S3 Vectors 是第一个 AWS 具有原生矢量存储和查询功能的云对象存储。它为需要大规模规模的人工智能应用程序提供专门构建的、经过成本优化的矢量存储。

Amazon S3 Vectors 的核心功能包括以下内容：
+ 每个索引最多可存储 20 亿个向量，每个向量桶最多支持 10,000 个索引
+ 低于 100 毫秒的查询延迟，针对长期存储和不频繁访问模式进行了优化
+ 与专业矢量数据库相比，向量运算的成本最多可降低 90%
+ 无服务器架构，具有自动扩展功能和 99.999999999%（11 9 秒）的耐久性

在以下情况下使用 Amazon S3 矢量图：
+ 适用于需要以最低成本存储数十亿个向量的应用程序
+ 适用于允许亚秒级查询延迟（100 毫秒或更长）而不是低于 10 毫秒的工作负载
+ 用于长期保存载体和存档用例
+ 适用于检索模式不频繁的 RAG 应用程序
+ 适用于优先考虑存储经济性而不是超低延迟的组织

Amazon S3 Vectors 与亚马逊 Bedrock 知识库原生集成，在分层架构中与亚马逊 OpenSearch 服务配合得很好。您可以将 Amazon S3 矢量用于冷存储，也可以使用 OpenSearch 服务进行热查询。

有关更多信息，请参阅 [Amazon S3 文档中的使用 S3 向量和矢量存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)。

## 托管服务选项
<a name="managed-db"></a>

Amazon Bedrock 知识库代表了实现矢量数据库的 AWS 完全托管方法。该服务在存储选项方面的灵活性，再加上其自动化管理功能，对于希望在不管理复杂基础架构的情况下实施RAG的组织来说特别有价值。

借助 Amazon Bedrock 知识库，您可以创建、维护和查询知识库，从而使用 RAG 增强基础模型。该服务通过管理整个数据摄取、矢量化和检索管道，简化了实施 RAG 的复杂过程。

Amazon Bedrock 知识库的主要优势包括：
+ 简化了数据处理
  + 自动数据摄取和分块
  + 内置从多种文件格式提取文本
  + 托管向量嵌入生成
  + 自动提取元数据并编制索引
+ 简化了 RAG 的实现
  + 预先配置的检索策略
  + 自动优化上下文窗口
  + 内置相关性调整
  + 开箱即用的语义搜索功能
+ 安全和治理
  + 集成 AWS Identity and Access Management (IAM) 控件
  + 静态和传输中的数据加密
  + VPC 支持
  + 使用审核日志 AWS CloudTrail

Amazon Bedrock 知识库支持多种[矢量存储选项](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html)，包括：
+ 带有 pgvector 的亚马逊 Aurora PostgreSQL
+ Amazon Neptune Analytics
+ Amazon EMR Serverless
+ Amazon S3 Vectors
+ Pinecone
+ Redis 企业云

此托管服务可处理自动数据摄取、矢量化和检索。这简化了 RAG 的实现。

有关每个支持的矢量存储的详细信息，请参阅 [Amazon Bedrock 知识库文档](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html)。

## 选择正确的矢量数据库
<a name="choosing-database"></a>

根据以下关键决策因素选择您的矢量数据库：
+ **如果你需要具有矢量搜索功能的 MongoDB 兼容文档数据库**，请选择 Amazon DocumentDB。当您的应用程序使用 M APIs ongoDB 并且您想在不管理单独的向量基础设施的情况下添加语义搜索功能时，这是理想的选择。
+ **如果您需要超低延迟的实时应用程序**，请选择 Amazon MemoryDB。这提供了最快的矢量搜索性能，响应 AWS 时间为亚毫秒。它非常适合实时推荐引擎和高吞吐量应用程序。
+ **如果您需要通过矢量搜索进行基于图表的知识表达**，请选择 Amazon Neptune Analytics。这最适合需要遍历复杂关系并在向量搜索的同时执行基于图形的查询的 GraphRag 应用程序，从而提供可解释的 AI 响应。
+ **如果你需要将关系查询与向量搜索相结合，请选择带有 pgvect** or 的 Amazon Aurora PostgreSQL。当您的应用程序需要在同一个数据库中同时进行传统 SQL 操作和向量相似度搜索时，此选项非常理想。
+ **如果您需要延迟低于 10 毫秒的高吞吐量查询**，请选择 Ama OpenSearch zon 服务。它擅长处理高频查询和实时应用程序，并包括最近的 GPU 加速改进。
+ **如果您需要经济高效地存储数十亿个向量**，请选择 Amazon S3 矢量图。此选项最多可节省 90% 的成本，非常适合具有不频繁检索模式（查询间隔几分钟到几小时）且可容忍低于 100 毫秒延迟的应用程序。
+ **如果您需要在进行矢量搜索的同时进行全文搜索**，请选择 Amazon OpenSearch 服务。此选项在单个平台上将强大的全文搜索功能与矢量搜索相结合。