本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
GPU-acceleration 用于向量索引
GPU-acceleration 帮助您更快、更高效地构建大规模矢量数据库。您可以在新的或现有的 OpenSearch 域和 OpenSearch 无服务器集合上启用此功能。此功能用于减少 GPU-acceleration 将数据索引到矢量索引所需的时间。
使用 GPU-acceleration,您可以将矢量索引速度提高多达 10 倍,而索引成本仅为索引成本的四分之一。
先决条件
GPU-acceleration 支持运行 OpenSearch 版本3.1或更高版本的 OpenSearch 域以及 OpenSearch 无服务器集合。有关更多信息,请参阅升级 Amazon OpenSearch Service 域UpdateDomainConfig、和 UpdateCollection API。
工作原理
矢量索引需要大量的计算资源来构建数据结构,例如分层可导航小世界 (HNSW) 图。当您在域名或集合 GPU-acceleration 上启用时, OpenSearch 会自动检测加速索引构建的机会,并将索引构建卸载到 GPU 实例。 OpenSearch 服务代表您管理 GPU 实例,并在需要时将其分配给您的域名或集合。这意味着您无需管理利用率或为空闲时间付费。
您只需为通过计算单位 (OCU)-矢量加速进行有用的处理付费。每个矢量加速 OCU 由大约 8 GiB 的 CPU 内存、2 个 vCPU 和 6 GiB 的 GPU 内存组合而成。有关更多信息,请参阅 GPU 加速定价。
要为您的域名或集合启用 GPU 加速,请参阅启用 GPU-acceleration。
GPU 加速定价
AWS 当 OpenSearch 发现有机会加速域名或集合的索引构建工作负载时,会向您收费。每个矢量加速 OCU 由大约 8 GiB 的 CPU 内存、2 个 vCPU 和 6 GiB 的 GPU 内存组合而成。
AWS 按二级粒度对 OCU 开具账单。在您的账户对账单中,您将看到一个用于计算的条目 OCU-hours。
例如,当你使用 GPU-acceleration 一小时创建索引时,使用 2 个 vCPU 和 1 GiB 的 GPU 内存,将按照 1 个 OCU 计费。如果您在使用时使用 9 GiB 的 CPU 内存 GPU-acceleration,则需要支付 2 个 OCU 的费用。
OpenSearch Serverless 根据支持您的馆藏所需的计算能力和存储空间以 1 OCU 为增量添加额外的 OCU。您可以为自己的账户配置 OCU 的最大数量,以控制成本。
注意
任何时间配置的 OCU 数量可能不同,而且不准确。随着时间的推移, OpenSearch Serverless使用的 OpenSearch 算法将继续改进,以更好地最大限度地减少系统使用量。
有关完整定价详情,请参阅亚马逊 OpenSearch 服务定价
GPU-acceleration 和写入操作
GPU-acceleration 当矢量摄取率 (MB/sec) 在一定范围内时 OpenSearch激活。在 OpenSearch 域上,您可以通过index.knn.remote_index_build.size.min和灵活index.knn.remote_index_build.size.max。例如,如果较低范围的默认值为 50 MB,则在刷新间隔之间写入 15,000 个维度为 768 的全精度矢量将在 GPU-acceleration 默认情况下触发。
使用以下 API 操作写入数据:
GPU-acceleration 可通过自动和手动
支持的索引配置
Faiss
不支持以下配置 GPU-acceleration:
支持 AWS 区域
GPU-acceleration 可在以下版本中找到 AWS 区域:
美国东部(弗吉尼亚州北部)
美国东部(俄亥俄州)
美国西部(俄勒冈州)
亚太地区(悉尼)
亚太地区(东京)
亚太地区(孟买)
欧洲地区(爱尔兰)
欧洲地区(法兰克福)
欧洲地区(斯德哥尔摩)
欧洲(西班牙)
最佳实践
遵循以下最佳实践,最大限度地发挥矢量 GPU-acceleration 搜索工作负载的优势:
-
增加索引客户端 -要在索引构建期间充分利用 GPU,请增加向中摄取数据的索引客户端的数量。 OpenSearch这样可以更好地并行化和利用 GPU 资源。
-
调整近似阈值 -更改
index.knn.advanced.approximate_threshold设置以确保不会生成较小的区段索引,从而提高整体摄取速度。10,000 的值是一个很好的起点。对于集合,必须明确指定此设置的值。 -
优化分片大小 -尝试创建至少有 100 万个文档的分区。文档数量少于此数量的分片可能无法从中 GPU-acceleration获得总体好处。