亚马逊AWS官方博客

Amazon OpenSearch 助力高效 RAG 系统落地

随着生成式 AI 的快速发展,检索增强生成(Retrieval Augmented Generation,RAG)已成为构建高质量 AI 应用的关键技术。RAG 通过将大型语言模型(LLM)与外部知识库相结合,有效解决了 LLM 的幻觉问题,提高了回答的准确性和可靠性。

在众多RAG解决方案中,知识库作为核心组件至关重要。Amazon OpenSearch凭借其卓越的全文检索能力、语义搜索支持和高度可扩展的分布式架构,已成为企业构建高性能RAG知识库的首选技术平台,能够有效应对海量数据检索的挑战。

本文将深入探讨 Amazon OpenSearch 在 RAG 场景中的独特优势,并结合 Amazon Bedrock 生态系统,展示如何构建快速构建可扩展的 RAG 应用。我们还将介绍 Amazon OpenSearch 的 Serverless 版本的特性,以及如何使用 Serverless 架构进一步简化 RAG 解决方案的部署和管理。

RAG常规流程

RAG 工作流程主要包含五个关键步骤:

  1. 数据准备(Data Preparation)
    1. 将外部知识库中的文档、表格或其他数据进行预处理,转成适合构建知识库的格式,如文本、稠密/稀疏向量表示。
    2. 通过ETL(提取Extract、转换Transform、加载Load)过程清洗和整理数据,也可能会涉及到文档切分,并对每个数据块进行处理(例如向量化、分词、稀疏索引化等),存储到知识库中(例如Amazon OpenSearch),方便后续快速检索
  2. 检索(Retrieval)
    1. 用户输入查询后,系统将查询进行处理,例如查询改写、分词、转为向量表示等
    2. 检索器使用检索索技术(例如文本检索、向量检索等)从向量数据库中找到与查询最相关的文档片段或数据块。
    3. 检索不仅依赖关键词匹配,还采用语义级别的匹配,确保对复杂或模糊查询也能找到准确的支持信息
  3. 增强(Augmentation)
    1. 将检索到的相关文档片段与用户查询结合,形成增强的提示(prompt)。
    2. 这个增强的提示通常通过模板或特定格式组织,确保生成模型能够充分利用检索信息,提供更丰富且上下文相关的输入
  4. 生成(Generation)
    1. 生成模型(如Claude、GPT等系列的大型语言模型)接收增强后的提示,生成自然语言回答。
    2. 生成的内容不仅语言流畅,还基于外部知识库的信息,保证回答的准确性和权威性。
  5. 多轮交互与反馈(可选)
    1. 在对话系统中,RAG支持多轮交互,每轮的查询和生成结果可以作为下一轮的输入。
    2. 系统根据用户反馈不断优化检索和生成策略,提升回答质量和用户体验

Amazon OpenSearch 作为一个功能全面的搜索和分析引擎,为构建 RAG知识库提供了全面的支持。它不仅支持传统的全文搜索,还提供了稠密与稀疏向量搜索能力,使其成为构建 RAG 应用的理想选择。

Amazon OpenSearch RAG 中的核心优势

1. 大的向量检索能力

Amazon OpenSearch 提供强大的 ANN(Approximate Nearest Neighbor,近似最近邻)检索能力,这得益于其深度集成的 KNN 插件。该插件支持多种先进的ANN算法实现,包括 HNSW(Hierarchical Navigable Small World)、IVF(Inverted File),以及 Faiss、NMSLIB 和 Lucene 等高效搜索库。这些算法和库提供了不同的优化路径,使得用户可以根据具体的应用场景精细调整参数配置,以达到检索速度与准确率之间的最优平衡。

利用 `method` 参数配置项,开发者可以精确指定所使用的算法类型(例如 HNSW 或 IVF)、向量空间度量标准(如 L2 范数、内积、余弦相似性等),以及特定引擎的具体参数设置。这种灵活性确保了不同应用场景下对性能和效果的不同需求都能得到满足。对于希望深入了解 Amazon OpenSearch 中 KNN/ANN 功能及其参数配置的用户,官方文档[1]提供了详尽的技术说明和指导。

在向量检索能力方面,Amazon OpenSearch 展现出了卓越的性能与高度可扩展的架构,能够高效支持从数百万到数十亿级别甚至百亿级的向量数据快速检索。这种灵活的扩展性使其能够适应从小规模实验到大规模生产环境的各种应用场景。根据 Amazon 官方发布的测试数据[2],在使用行业广泛认可的 BIGANN 数据集(包含 10 亿个 128 维向量)进行的实验中,OpenSearch 在保证召回率达到 99% 的前提下,展现出极为优异的响应延迟表现:p50 延迟仅为 23.1 毫秒,p90 延迟为 27.1 毫秒,p99 延迟也仅上升至 32.2 毫秒。

这样的低延迟、高召回率的表现,充分体现了 Amazon OpenSearch 在向量检索领域的强大技术实力。无论是推荐系统、图像检索、语义搜索,还是其他对实时性和准确度有较高要求的 AI 应用场景,OpenSearch 都能够提供稳定、可靠且高效的底层支撑,足以应对绝大多数对性能敏感的业务需求。

2. 向量量化技术降低成本

随着向量数据规模的迅速增长,尤其是在数据量达到千万甚至亿级别以上的场景中,传统基于内存的近似最近邻(ANN)算法(如 HNSW)在性能方面面临挑战:由于所有向量必须常驻内存,系统的内存消耗迅速攀升,导致向量检索的硬件成本和扩展难度显著增加。

为了解决这一问题,Amazon OpenSearch 在向量检索场景中引入了量化(Quantization)技术。通过对高维浮点向量进行压缩,OpenSearch 能在显著降低存储和计算资源消耗的同时,保持较高的检索准确率和响应速度。

其中,Binary Quantization(BQ,二进制量化) 是 OpenSearch 提供的一种高效向量压缩方案,特别适用于如 LLM Agent Memory 构建、语义搜索、推荐系统等大规模向量检索应用。BQ 技术将原始的高维浮点向量压缩为低位二进制表示,支持将每个向量维度编码为 1、2 或 4 位,分别对应约 32 倍、16 倍和 8 倍的压缩率,从而大幅度降低内存占用。此外,BQ 在 OpenSearch 中的训练与索引构建过程是自动完成的,用户无需单独进行预处理或模型训练,这大大简化了向量检索系统的开发和运维流程。
尽管量化压缩本质上会带来一定的精度损失,但 OpenSearch 在实现 BQ 功能时,提供了灵活的参数配置,使用户可以在召回率、准确率与系统成本之间进行有效权衡。在实际生产环境中,OpenSearch 能够在资源利用率与检索效果之间实现平衡,满足各类企业级应用的性能需求。

在过去某客户测试案例中,面对亿级规模向量数据集,OpenSearch 采用 HNSW 算法结合 Binary Quantization 技术,在保持 1500 QPS 高并发的同时,P50、P90、P99 均在百毫秒内。与未使用量化的系统相比,整体成本降低约 50%,这充分证明了 BQ 技术在高性能、低成本向量检索中的实用价值。

在应用 BQ 量化时,有如下经验可以分享:

  1. shard 数量并不是越多越好,基于总体数据量,预估每个 shard 数据量,30GB左右是一个比较合适的值
  2. 首批数据写入后,做 force merge,提升后续的检索效果
  3. 使用最新版本的7g 实例系列(例如 c7g)
  4. 在需要高 QPS 的情况下,使用 C系列机器

3. 混合搜索:语义和关键词搜索

在 RAG 场景下,混合检索 + 重排序的流程已经几乎是一个业内标准,用来提升知识召回效果。混合检索结合了关键词搜索(如 BM25)和语义搜索(如向量检索)的优点,弥补了各自的不足,从而提高了检索的准确性和效率。关键词搜索在精确匹配方面表现出色,适用于特定术语的检索;而语义搜索基于数据语义进行搜索,对拼写错误和同义词具有一定的鲁棒性,能够捕捉到更广泛的上下文信息。通过将这两种搜索方式融合,可以显著提升检索结果的相关性和多样性。

在混合检索得到多个相关结果后,如何从中选择最相关、最有价值的信息进行生成,是另一个需要解决的问题。这时,重排序模型(Rerank模型)就发挥了重要作用。重排序模型通过对不同检索模型返回的文档片段列表和用户问题语义匹配度进行重新排序,改进检索返回的结果。它计算用户问题与检索召回的每一个候选文档之间的相关性分数,并返回按照相关性排序的文档列表。这样,模型在生成过程中就可以优先选择高质量的信息,从而提高生成结果的准确性和可靠性。常见的重排序模型包括 Cohere Rerank、BGE-Reranker 等。这些模型可以在单路或多路的召回结果中挑选出和问题最接近的文档,进一步提升生成答案的精确度。

在构建混合搜索(如向量检索 + 关键词检索)系统时,通常需要解决以下两个关键问题:

  1. 查询向量化处理复杂:用户输入通常为自然语言文本,这就要求系统既要对文本进行分词处理以支持关键词检索,又要通过嵌入模型将其向量化以支持语义检索。这一过程涉及模型加载与推理,增加了系统的处理复杂度。
  2. 相关性分数尺度不一致:关键词检索(如 BM25)和语义检索(如向量匹配)返回的相关性分数处于不同的评分体系中,直接融合可能导致评分失衡。因此,必须对它们进行标准化处理,将结果统一到可比较的评分尺度。

Amazon OpenSearch 的一大优势在于,其原生支持混合检索,能够轻松集成语义搜索与关键词搜索。它不仅支持灵活对接外部嵌入模型,还提供了内置机制(如搜索管道和标准化处理器)用于调整不同检索通路的权重和相关性分数的统一,大幅简化了混合搜索系统的构建与优化过程。

3.1. 集成嵌入模型

在向量数据库中,无论是文本的写入还是检索,都需要先将文本转换为对应的向量表示。因此,向量化模型的部署是实现语义检索的关键步骤。在亚马逊云平台上,主要有两种方式可以实现向量化模型的集成:

  1. 使用 Amazon Bedrock 提供的内置向量化模型:Amazon Bedrock 支持多种主流的向量化模型,例如 Cohere 和 Amazon Titan(稠密向量模型)。通过直接调用 Bedrock 提供的 API,即可实现文本的向量化处理,无需自行部署模型。
  2. 通过 Amazon SageMaker 部署自定义向量化模型:支持将如 bge-m3 等开源嵌入模型部署到 SageMaker 平台,部署后即可通过 SageMaker Endpoint 实现模型的调用和推理,适用于需要定制或优化模型的场景。

对于上述两种方式,Amazon OpenSearch 都提供了统一的对接能力:可以将这两类模型的推理服务抽象为一个“连接器”(Connector)进行调用。在 OpenSearch 中,通过连接器可以直接调用模型进行文本嵌入推理,并结合工作流自动化机制,将推理结果写入索引或用于实时的向量检索,从而实现端到端的语义索引流程。

整个配置过程支持图形化操作,部署简单、流程清晰。具体的配置步骤和使用示例,可参考文档 [4]。

3.2. hybrid检索

在 Amazon OpenSearch 中,实现混合检索(例如将关键词检索与向量检索相结合)非常简便,可以通过配置 OpenSearch 的自动化搜索工作流来完成。其中,第一步通常是配置一个包含归一化处理器(Normalization Processor)的搜索管道(Search Pipeline),其主要目的是对来自不同检索通路(如 BM25 和向量搜索)的相关性分数进行标准化处理。

由于关键词搜索与语义搜索返回的分值通常处于不同的尺度,若不进行归一化处理,融合后的排序可能会严重偏向某一路结果。通过归一化处理器,可以将多路查询结果的分数映射到统一的数值范围(如 [0, 1]),从而确保后续的结果融合更加合理和可控。

PUT /_search/pipeline/nlp-search-pipeline
{
  "description": "Post processor for hybrid search",
  "phase_results_processors": [
    {
      "normalization-processor": {
        "normalization": {
          "technique": "min_max"
        },
        "combination": {
          "technique": "arithmetic_mean",
          "parameters": {
            "weights": [
              0.3,
              0.7
            ]
          }
        }
      }
    }
  ]
}
  • normalization.technique:可选值包括 min-max、l2 用于标准化分数。
  • combination.technique:可选值包括 arithmetic_mean、geometric_mean、harmonic_mean 等,用于组合分数。

您还可以为每个查询子句设置权重,以调整其对最终评分的影响。

在配置好模型连接器和搜索管道后,即可直接运行混合检索:

GET /my-nlp-index/_search?search_pipeline=nlp-search-pipeline
{
  "_source": {
    "exclude": [
      "passage_embedding"
    ]
  },
  "query": {
    "hybrid": {
      "queries": [
        {
          "match": {
            "passage_text": {
              "query": "Hi world"
            }
          }
        },
        {
          "neural": {
            "passage_embedding": {
              "query_text": "Hi world",
              "model_id": "aVeif4oB5Vm0Tdw8zYO2",
              "k": 5
            }
          }
        }
      ]
    }
  }
}

可以看到,应用侧只需获取用户的文本输入,后续的关键词检索与语义检索即可在 Amazon OpenSearch 内部自动完成。整个过程无需额外开发复杂的检索逻辑,大幅降低了混合检索的实施成本与技术门槛。

4. 丰富的过滤能力

在基于 RAG 的应用中,具备基于元数据进行过滤与聚合的能力至关重要。通过元数据过滤,可以在向量搜索前显著缩小搜索空间,排除与用户查询意图无关的内容,从而提升生成结果的精度和相关性。

在实际应用中,结合元数据的检索是非常常见的需求。例如,在一个多用户共享的知识库系统中,不同用户只能访问和查询各自上传或被授权的数据内容,这就需要基于“用户 ID”或“组织标识”等元数据字段进行过滤,确保不同用户根据其权限仅访问其有权查看的数据,满足企业在数据安全和合规性方面的要求。同样,在某些特定的知识问答或问诊类场景中,仅需要检索与某个专业领域相关的文档,此时基于领域标签、文档来源等元数据进行预过滤,可以大幅减少无效数据的干扰。

在过滤维度方面,元数据过滤可以应用于多个常见维度。时间过滤允许系统仅在某个时间区间内进行文档搜索,比如只检索“2023 年第一季度”的数据;类别过滤可以限制检索范围在特定的产品线、项目组或业务单元内,避免跨部门数据混淆;来源过滤则帮助系统优先选择来自权威数据源的内容,比如会议纪要、技术手册、API 文档等。通过这些结构化过滤手段,可以在原始向量相似度排序基础上进一步精炼结果,提升整体系统的输出质量与稳定性。

对于一些复杂查询场景,尤其是在用户采用自然语言表达意图时,人工手动构造元数据过滤条件不仅繁琐,而且容易出现歧义或遗漏。为此,目前也有方案是结合大语言模型的能力,实现自动从用户输入中提取出与元数据相关的结构化查询条件。这种“智能元数据过滤”模式极大提升了检索过程的灵活性与适应性。例如,用户输入“展示 2022 年发布的 Project A 的相关文档”,系统可以自动解析出两个关键过滤字段:时间为 2022 年,项目为 Project A,并据此执行精准的文档向量检索,显著提升返回结果的针对性和命中率。

Amazon OpenSearch 提供了强大的元数据过滤能力,使得用户可以通过时间、类别、来源等元数据维度精准控制检索范围,有效提高系统整体的检索质量。它主要提供 3 种过滤方法[5]:

  1. 高效 k-NN 过滤(Efficient k-NN Filtering):自 OpenSearch 2.9 起,支持在向量检索过程中同时应用过滤条件,避免了传统的预过滤或后过滤方式可能导致的结果数量不足或性能下降的问题。这种方法确保在满足过滤条件的文档中返回准确的 k 个最近邻结果
  2. 布尔后过滤(Boolean Post-Filtering):此方法在向量检索后应用过滤条件,适用于过滤条件不太严格的场景。但在过滤条件较严格时,可能导致返回的结果少于预期的 k 个
  3. 评分脚本过滤(Scoring Script Filtering):此方法先对文档集应用过滤条件,然后在过滤后的子集上执行精确的 k-NN 检索。适用于对精度要求高的场景,但在处理大型数据集时可能面临高延迟和扩展性问题。

需要注意的是,即使在大规模向量检索的应用场景中,也并非所有情况下都必须采用近似最近邻(ANN)检索。在某些特定场景下,预过滤(pre-filter)结合精确 k-NN 检索的方式,相较于 ANN 更具优势,既能降低资源成本,又能实现更高的召回率。
这类场景的典型特征是:尽管全局向量池的规模非常大(如千万级甚至上亿条向量),但在应用元数据过滤条件后,实际参与向量检索的数据子集相对较小(通常在几千到几万条之间)。在这种情况下,如果仍使用全局 ANN 索引(如 HNSW)并将其完全加载至内存以实现低延迟查询,将带来较高的内存开销。而采用 pre-filter + 精确 k-NN 的检索模式,则无需构建和维护大型 ANN 索引,显著降低了内存消耗。此外,在过滤后的数据集较小的情况下,即使采用暴力计算方式进行精确 k-NN 也不会产生明显的计算负担。这种方式既能确保检索结果的完整性(即 100% 召回),又避免了 ANN 引入的近似误差,对于对召回率要求较高的场景尤为适用。

在使用 Amazon OpenSearch 进行向量检索的实际客户案例中,已有多个项目选择了 pre-filter + 精确 k-NN 的方案。例如,在某个基于摄像头采集的画面进行向量检索的场景中,系统总共维护着约 1400 万条向量。尽管向量总量庞大,但每次检索前都会通过“设备 ID”以及其他业务相关字段进行预过滤,最终参与计算的向量规模通常仅为 3000 至 4000 条。在这种条件下,采用精确 k-NN 而非 ANN,不仅大幅降低了系统资源占用,同时还能确保检索的召回率达到 100%,实现了更高的性价比。

5. 稀疏向量检索能力

稀疏向量检索(Sparse Vector Search)是一种结合了传统关键词匹配和神经网络语义理解的检索方法。它并非简单地替代关键词或稠密向量检索,而是是为了解决传统关键词检索和稠密向量检索各自的局限性,提升搜索的语义理解能力,同时兼顾计算效率和响应速度,在特定场景下提供更优的解决方案。或作为混合检索策略的一部分,与其他方法协同工作。

为什么需要稀疏向量检索?我们从目前关键词检索和稠密向量检索存在的挑战,以及稀疏向量如何解决的角度来看:

  • 关键词检索:传统关键词检索(基于倒排索引的词法搜索)依赖词汇匹配,难以处理词汇不匹配、同义词、多义词等语义问题,导致相关性不足。稀疏向量检索通过神经网络模型(如 SPLADE)将文本编码为高维稀疏向量,每个维度对应一个词或子词,并赋予权重。这种表示方式不仅保留了关键词的重要性,还引入了语义扩展能力,能够识别与查询相关的同义词或相关词汇,从而提高召回率。
  • 稠密向量检索:稠密向量检索(Dense Vector Search)通过高维向量捕捉语义,但计算和存储开销较大,尤其在海量数据和高维度下,延迟和成本显著增加。Sparse Search 通过稀疏向量表示(只包含少量非零项及其权重),显著减少计算量和内存占用,同时保持较好的语义相关性。 这使得稀疏向量检索在处理大规模数据集时具有较高的效率,尤其适用于资源受限的环境。

所以,稀疏向量检索是一种介于关键词检索和稠密向量检索之间的创新技术,旨在提升语义理解和检索效率。它既不是单纯替代关键词检索,也不是单纯替代稠密向量检索,而是作为两者的有效补充,帮助构建更高效、更准确的搜索系统。

Amazon OpenSearch 自 2.11 版本起引入了神经稀疏检索(Neural Sparse Search)功能,为语义搜索提供了一种高效、低资源消耗的替代方案。稀疏向量检索结合了传统倒排索引的高性能和神经网络模型的语义理解能力,特别适用于对召回率、可解释性和成本控制有较高要求的场景。在这个过程中,文本首先通过稀疏编码模型(如 OpenSearch 提供的预训练模型)转换为稀疏向量,即由非零权重的 token:weight 键值对组成的向量。这些向量被索引到 Lucene 的倒排索引中,利用 FeatureField 存储结构。查询时,输入文本同样被编码为稀疏向量,并通过倒排索引进行匹配和打分,从而实现语义级的检索[6]。

目前 Amazon OpenSearch 支持两种稀疏检索模式:

  • Doc-only 模式:仅在索引阶段对文档进行语义扩展,查询阶段不进行扩展。该模式延迟低,性能接近传统 BM25 检索,适用于对响应速度要求高的场景
  • Bi-encoder 模式:在索引和查询阶段均进行语义扩展,能够更全面地捕捉查询意图,提高检索相关性,但相应地计算开销和延迟也更高

在 Amazon OpenSearch 中使用稀疏向量检索的操作非常简便,其配置流程与第 3.1 节所介绍的步骤基本一致。根据官方发布的测试结果[7],稀疏与稠密向量结合的混合检索方法在整体检索效果上优于传统 BM25 与稠密向量的组合。然而,需要特别注意的是,稀疏向量检索的性能高度依赖于所使用的稀疏编码器(Sparse Encoder)模型的质量。如果模型在扩展词汇上的语义相关性较弱,将直接影响最终的召回能力。

此外,由于大多数稀疏编码器是在通用语料上进行预训练的,在面对特定垂直领域中的专业术语时,其召回效果可能甚至不如传统的关键词匹配。这意味着在特定业务场景中,是否适合使用稀疏检索仍需结合实际数据进行评估。必要时,可能还需对稀疏编码器进行微调,以优化其在目标领域中的检索效果。

Amazon OpenSearch Serverless

除了传统的集群部署模式,Amazon OpenSearch 还提供了 Serverless 模式,具备无需运维、自动弹性扩缩的优势,为向量存储与检索提供了一种高效便捷的解决方案。OpenSearch Serverless 是专为生成式人工智能(Generative AI)和检索增强生成(RAG)应用设计的无服务器向量数据库,具备高性能、可扩展的向量检索能力,能够在毫秒级延迟内完成搜索,适用于语义搜索、推荐系统、聊天机器人等多种智能应用场景。

其核心优势在于完全托管的无服务器架构,用户无需预置、配置或管理底层集群资源。系统会根据实际负载自动完成资源的扩展与回收,在访问模式或应用需求波动时,依然能够保持高吞吐率和低延迟响应。同时,OpenSearch Serverless 与 Amazon S3 深度集成,具备与 S3 相同级别的数据持久性,确保数据的高可用与强一致性。

在 RAG 应用中,OpenSearch Serverless 支持向量检索与文本关键词检索的无缝融合,进一步提升语义相关性的匹配效果。它内置与传统集群模式一致的近似最近邻(ANN)算法,例如 HNSW(分层可导航小世界图),可在大规模向量数据集上实现快速、准确的相似性搜索。借助与 Amazon Bedrock 的原生双向集成,OpenSearch Serverless 可与如 Amazon Titan Embeddings 等基础模型无缝协作,简化嵌入生成、检索调用等 RAG 工作流开发流程。

在安全方面,OpenSearch Serverless 原生集成 AWS Identity and Access Management(IAM),支持细粒度的权限控制,同时支持通过 AWS Key Management Service(KMS)进行数据加密,确保数据在传输与存储过程中的完整性与机密性。

目前,OpenSearch Serverless 已在多个实际客户场景中得到落地应用。例如 riskCanvas——一款基于 SaaS 的金融犯罪合规解决方案产品,充分利用大数据、自动化与机器学习等先进技术,帮助客户提升合规效率与业务智能化水平。riskCanvas 通过与 OpenSearch Serverless 向量引擎集成,结合 AWS 生成式 AI 能力,将客户操作数据转化为可搜索、可理解的语义向量,为金融领域的风控和合规提供了强大的支持[8]。

Amazon OpenSearch Amazon AI 服务

Amazon OpenSearch 与 Amazon Bedrock 的深度集成为企业级 RAG(Retrieval-Augmented Generation)应用构建提供了端到端的完整解决方案。Amazon Bedrock 让开发者可以轻松接入多种主流基础模型,而 Amazon OpenSearch 则提供了高性能、可扩展的向量检索能力。这种强强联合,使企业能够更高效地构建并部署高质量的生成式 AI 应用,加速智能化转型。

例如在前文第 3.1 节所介绍的嵌入集成流程中,Amazon OpenSearch 与 Amazon Bedrock 之间的集成极为简便,仅需几行代码即可实现向量生成与检索的完整闭环。开发者可以使用 Amazon Bedrock 提供的嵌入模型(如 Amazon Titan Embeddings)将文档和用户查询编码为向量,然后将这些向量存入 Amazon OpenSearch,进一步实现高效语义检索。

此外,对于部分简单的业务场景,也可以借助 Amazon OpenSearch 本身的机器学习能力与 Amazon AI 服务中的模型能力,快速搭建 RAG 应用。例如,利用 OpenSearch 内置的 Retrieval-Augmented Generation Processor(RAG 处理器),结合部署在 Amazon SageMaker 上的 DeepSeek 模型和嵌入模型,即可快速构建语义增强的问答系统[9]。更进一步,Amazon Bedrock Knowledge Bases 还支持通过控制台“一键集成”到 Amazon OpenSearch,无需编写复杂代码即可完成 RAG 流程配置,提供极致简洁的托管化使用体验[10]。

这一整套生态系统的协同工作,不仅显著降低了构建 RAG 应用的门槛,还在性能、灵活性与可维护性方面为企业用户带来可观的优势。无论是面向终端客户的智能问答系统,还是企业内部的知识库检索应用,OpenSearch 与 Bedrock 的协同都为生成式 AI 的落地提供了坚实技术支撑。

OpenSeach 与开源生态

除了广泛应用于亚马逊内部系统以及亚马逊云服务客户构建的企业级应用中,OpenSearch 作为向量数据库的能力也被开源社区和第三方开发者认可,已在多个主流项目中得到实际应用。例如 Mem0、Dify 和 LangChain 等项目,均在生产环境中采用 OpenSearch 来满足对高性能语义检索和横向扩展能力的需求。

Mem0 是一个专注于构建记忆系统的框架,支持多种向量数据库作为后端存储,其中就包括 OpenSearch。通过抽象统一的接口和模块化工厂模式,Mem0 允许开发者灵活地选择最适合当前场景的向量存储引擎,并在配置中自定义集合名称、节点地址、端口号、向量维度等参数,从而实现快速集成与部署。

LangChain 则将 OpenSearch 深度集成进其语言模型应用开发框架中,利用 OpenSearch 支持近似最近邻(k-NN)搜索和语义检索的能力,配合 LangChain 提供的文档加载、文本切分与嵌入生成模块,开发者能够快速构建出高效的检索增强生成(RAG)系统,实现自然语言理解与响应的智能化。

Dify 作为一个开源的 LLMOps 平台,也支持将 OpenSearch 作为向量存储后端,适配多种部署环境,包括本地开发、私有化部署和云原生架构,使其在性能、灵活性和可维护性方面均具备良好的扩展潜力。这些项目的实践表明,OpenSearch 在构建大规模、低延迟、可水平扩展的语义检索系统中表现出色,已经成为生产级向量数据库解决方案的重要选项之一。

总结

可以看到,Amazon OpenSearch 凭借其全面的搜索能力、灵活的向量检索机制、原生混合搜索支持以及强大的元数据过滤功能,为构建企业级 RAG(检索增强生成)系统提供了坚实的技术基础。从底层的 KNN 插件与量化优化,到与 Amazon Bedrock、SageMaker 等服务的深度集成,再到 Serverless 架构下的简化部署,Amazon OpenSearch 在性能、扩展性与易用性方面展现出卓越优势。无论是面向大规模向量数据检索、高并发响应,还是满足复杂多样的企业级检索需求,Amazon OpenSearch 都能提供稳定、高效且具成本效益的解决方案,是打造高质量 RAG 应用的首选平台。

参考文档

[1] OpenSearch KNN Search Methods and engines
[2] Choose the k-NN algorithm for your billion-scale use case with OpenSearch
[3] 基于大语言模型知识问答应用落地实践 – 知识召回调优(下)
[4] OpenSearch 基于 ML Commons 插件实现自动 embedding
[5] OpenSearch KNN Filtering data
[6] A deep dive into faster semantic sparse retrieval in OpenSearch 2.12
[7] Integrate sparse and dense vectors to enhance knowledge retrieval in RAG using Amazon OpenSearch Service
[8] Amazon OpenSearch Service as a Vector Database
[9] 基于 Amazon OpenSearch Service 与 DeepSeek 构建知识库问答应用
[10] Knowledge Bases now delivers fully managed RAG experience in Amazon Bedrock

本篇作者

汤市建

亚马逊云科技资深数据分析与AI解决方案架构师,负责客户大数据与AI解决方案的咨询与架构设计。

李元博

亚马逊云科技 AI/ML GenAI 解决方案架构师,专注于 AI/ML 特别是 GenAI 场景落地的端到端架构设计和业务优化。在互联网行业工作多年,在用户画像、精细化运营、推荐系统、大数据处理方面有丰富的实战经验。

黄霄

亚马逊云科技数据分析解决方案架构师,专注于大数据解决方案架构设计,具有多年大数据领域开发和架构设计经验。