使用 GPU 远程构建向量索引
3.0 版本引入
OpenSearch 支持使用 GPU 加速的远程索引构建服务来构建向量索引。使用 GPU 可显著缩短索引构建时间并降低成本。有关基准测试结果,请参阅这篇博客文章。
支持的配置
远程索引构建服务支持使用 hnsw
方法的 Faiss 索引和默认的 32 位浮点数 (FP32
) 向量。
先决条件
在配置远程索引构建设置之前,请确保满足以下先决条件。有关更新动态设置的更多信息,请参阅动态设置。
步骤 1:启用远程索引构建服务
通过配置以下设置,为集群和所选索引启用远程索引构建服务。
设置 | 静态/动态 | 默认值 | 描述 |
---|---|---|---|
knn.remote_index_build.enabled | 动态 | false | 为集群启用远程向量索引构建。 |
index.knn.remote_index_build.enabled | 动态 | true | 为索引启用远程索引构建。仅当 knn.remote_index_build.enabled 设置为 true 时才生效。 |
只有当集群级 knn.remote_index_build.enabled
设置和索引级 index.knn.remote_index_build.enabled
设置都设置为 true
时,索引的远程向量索引构建器才会被启用。
步骤 2:创建并注册远程向量仓库
远程向量仓库充当 OpenSearch 集群和远程构建服务之间的中间对象存储。集群将向量和文档 ID 上传到仓库。远程构建服务检索数据,在外部构建索引,并将完成的结果上传回仓库。
要创建和注册仓库,请按照注册仓库中的步骤操作。然后将 knn.remote_index_build.repository
动态设置设置为注册仓库的名称。
远程构建服务目前仅支持 Amazon Simple Storage Service (Amazon S3) 仓库。
步骤 3:设置远程向量索引构建器
通过将 knn.remote_index_build.service.endpoint
设置为正在运行的 远程向量索引构建器 实例,在 k-NN 设置中配置远程端点。有关设置远程服务的说明,请参阅用户指南。
配置远程索引构建设置
远程索引构建服务支持一些额外的可选设置。有关配置任何剩余远程索引构建设置的信息,请参阅远程索引构建设置。
使用远程索引构建服务
远程索引构建服务配置完成后,满足以下要求的任何段刷新和合并操作都将透明地使用 GPU 构建路径:
- 索引正在使用支持的配置之一。
- 段大小大于
index.knn.remote_index_build.size.min
且小于knn.remote_index_build.size.max
。
您可以通过调用 k-NN Stats API 并查看远程索引构建统计信息来监控远程索引构建任务。