向量索引中的数据摄取花费了太多时间

问题描述 投票:0回答:1

版本(相关 - OpenSearch): 2.11

问题: 我们正在使用 m5.large.search 单节点集群,我们在应用程序中使用正常的关键字搜索,但现在我们想使用向量搜索来提高效率,为此,我为以下字段创建了一个摄取管道:我想要矢量化,我们有大约 8 个字段需要矢量化,当我尝试在这个索引中提取数据时,它花费了太多时间,通常当我们在普通索引中提取数据时,发送大约需要 20-40 秒1300-1400 个文档,但是当我尝试在向量索引中提取相同的数据时,它花费了太多时间,大约 15-20 分钟

任何人都可以建议这是什么原因造成的,是由于嵌入还是我需要考虑的其他原因。如果创建向量的策略存在问题,请告诉我。

所以基本上我们的用例是,我们希望为用户提供一种设施,他们可以以提示格式进行查询,并基于此我们将向他们返回与其查询相关的数据。为此,我们正在做的是,我们将所需的字段转换为向量,然后在这些向量中搜索提示,这样做是否正确,请告诉我,因为我对此很陌生。

amazon-web-services elasticsearch analytics opensearch
1个回答
0
投票

我为我工作的公司建立了相同的系统。这里的延迟可能有多种不同的原因。

  1. 向量化字段可能需要大量计算,尤其是在使用复杂的嵌入或模型时。为了解决这个问题,我设置了另一个 EC2 服务器,并在 Django 项目的 RAM 中保持矢量模型打开,以防止每次请求时都重新加载模型。
  2. 检查您的摄取管道并确保其针对矢量数据进行了良好优化。考虑批处理。
  3. 验证您的向量场索引配置是否正确。我使用 k-NN 向量类型:
   "title_vector" => [
                        "type" => "knn_vector",
                        "dimension" => 768,
                        "method" => [
                            "name" => "hnsw",
                            "space_type" => "l2",
                            "engine" => "nmslib",
                            "parameters" => [
                                "ef_construction" => 128,
                                "m" => 24
                            ]
                        ]
                    ],
© www.soinside.com 2019 - 2024. All rights reserved.