内容提要
Amazon DynamoDB正式推出向量搜索功能,支持将向量嵌入与操作数据共同存储,无需复制到独立向量数据库。该功能提供毫秒级延迟、高召回率,可扩展至数万亿向量,支持最多4096维度及多种距离函数。用户可通过控制台或API创建向量索引并运行相似性搜索,适用于语义检索、推荐系统等场景,已在所有商业AWS区域可用。
延伸解读
架构简化与成本考量
DynamoDB 原生向量搜索的最大价值在于免去数据复制和同步管道。以往需要将数据导出到专用向量数据库,并维护两套系统的一致性,这会带来额外的运维开销、数据迁移和许可成本。现在向量与操作数据共享同一无服务器基础设施和按请求付费模式,有助于降低总体拥有成本,尤其适合已有 DynamoDB 使用场景的团队。
索引设计要点
创建向量索引时需注意几个关键选择:维度数必须与嵌入模型输出一致;距离函数应匹配训练模型时所用的函数,以获得最佳准确性;分区键可控制数据分布,建议用于高吞吐量的大型数据集;内联筛选仅支持精确匹配,不支持范围条件。合理设计这些参数直接影响搜索性能和结果质量。
适用场景与限制
该功能适用于语义检索、推荐系统、异常检测等场景,尤其适合已有 DynamoDB 数据且希望快速添加相似性搜索的应用。但需注意,向量搜索的召回率虽高,仍受限于嵌入模型的质量;筛选条件仅支持精确匹配,可能限制复杂查询;且当前仅支持最多 4096 维,对于更高维度的嵌入可能不适用。
Q&A
Amazon DynamoDB 的向量搜索功能是什么?
Amazon DynamoDB 的向量搜索功能允许用户将向量嵌入与操作数据一起存储在 DynamoDB 中,并直接对这些数据运行相似性搜索,无需将数据复制到单独的向量数据库。该功能提供毫秒级延迟、高召回率,可扩展至数万亿向量,支持最多4096维度及多种距离函数。
DynamoDB 向量搜索支持哪些距离函数?
DynamoDB 向量搜索支持欧氏距离、余弦距离和点积距离函数。选择哪个函数取决于应用场景:欧氏距离适用于向量大小有意义的情况,余弦距离适用于文本语义相似性比较,点积适用于方向和大小都重要的场景。通常建议选择与训练嵌入模型时所用函数相匹配的距离函数。
如何在 DynamoDB 中创建向量索引?
在 DynamoDB 控制台中,打开目标表,选择“索引”选项卡,点击“创建向量索引”。填写索引名称、向量属性(存储嵌入的属性)、维度数量(与嵌入模型输出匹配)、距离函数(如余弦),并可选指定分区键和筛选属性。分区键用于控制索引分布,筛选属性用于查询时缩小范围。创建后等待索引状态变为活动。
DynamoDB 向量搜索的查询过程是怎样的?
使用与生成嵌入相同的模型,从自然语言查询生成查询向量。在控制台或通过 SearchVectors API,指定向量索引、查询向量、返回结果数量(最多100)和可选筛选条件。DynamoDB 会返回按相似度排序的结果,并附带相关操作属性。相似度得分含义取决于距离函数:余弦和欧氏距离得分越低越相似,点积得分越高越相似。
DynamoDB 向量搜索的适用场景有哪些?
适用于需要语义检索的应用程序,例如代理内存、检索增强生成(RAG)、推荐引擎、个性化体验、异常检测等。特别适合已有 DynamoDB 操作数据、希望添加相似性搜索而无需管理单独向量数据库和同步管道的场景。
DynamoDB 向量搜索的可用区域和定价如何?
该功能已在所有商业 AWS 区域正式推出,包括 AWS GovCloud(美国)区域。定价遵循 DynamoDB 按请求付费模式,具体细节可参考 Amazon DynamoDB 定价页面。