OpenSearch的演进与语义检索技术革新

周末听了一场关于Open Search的技术分析,整理如下,供大家参考。OpenSearch,作为ElasticSearch的一个分支,不仅继承了其强大的搜索和分析能力,更在开源社区的驱动下,不断演进和创新。本文将介绍OpenSearch的最新进展,特别是其在语义检索技术方面的突破。

OpenSearch简介

OpenSearch是一个开源的搜索与分析套件,起源于ElasticSearch 7.10.2版本,坚持Apache-2.0开源协议,以开源优先和社区驱动为原则。OpenSearch项目不仅提供了强大的搜索功能,还包括了DataPrepper、Dashboard等组件,广泛应用于搜索、可观测性、安全分析、数据可视化和机器学习等领域。

向量搜索引擎从原始向量做写入、查询,OpenSearch做了很多运行速度、压缩量化方面的优化。到NeuralSearch语义搜索引擎,做的易用性升级,纯文本端到端的写入查询,做了其他的功能优化,比如Hybrid query.多模态、文本切分、rerank。现在:稀疏编码的语义搜索引擎,knn之外又多了一种选择,各自具备自己的优势,适配不同的应用场景
在这里插入图片描述

OpenSearch社区

OpenSearch的社区活跃度极高,拥有超过5亿的总下载量,版本更新频繁,合作伙伴和外部贡献者众多。在SlackWorkspace和OpenSearchForum上,有超过7000名成员参与讨论,月浏览量达到30万以上。这种活跃的社区氛围为OpenSearch的持续发展和创新提供了坚实的基础。

OpenSearch使用场景

OpenSearch平台的优势在于其检索功能的沉淀、分布式架构、安全性和数据分析能力。特别是k-NN索引的横向扩展能力,可以在集群中任意扩展数据节点,支持高达16K维度的向量,满足大规模数据集的搜索需求。

1.结合OpenSearch丰富的检索功能,与OpenSearch DSL结合完成复杂的查询过程

  • a. 比如加入复杂的过滤条件;
  • b. 与其他查询结合,e.g.BM25

2.基于OpenSearch分布式平台,高可靠性、高扩展性、高性能,平台确保分布式查询和写入 的负载均衡。
3.安全性:基于OpenSearch的安全插件,实现api级别鉴权,多用户访问控制,安全审计日志
4.数据分析:OpenSearch dashboards拥有丰富的数据可视化工具,数据进行可视化分析。dashboards上的搜索比较工具进行可视化的搜索效果比较,进行case
研究分析

使用场景:
在这里插入图片描述

OpenSearch向量数据库

在深度学习时代,万物皆可Embedding,无论是图像、文本、视频还是音乐,都可以通过向量化的方式进行高效的索引和检索。OpenSearch通过k-NN插件,实现了向量引擎的适配,支持NMSLiB、Faiss、Lucene等多种向量库,以及HNSW和IVF等索引结构,为用户提供了强大的向量搜索能力。
在这里插入图片描述

k-NN插件

OpenSearch支持Exact k-NN和Approximate k-NN (ANN)搜索,以及基于遍历和基于图的过滤方式。Exact k-NN适合前置过滤,而ANN适合后置过滤。OpenSearch还能够在搜索时进行过滤,打通了Lucene、JNI和向量引擎,智能决定k-NN类型,权衡代价与精度。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

数据评测:性能与召回率的平衡

在1亿数据集的评测中,OpenSearch展现出了稳定支持10亿数据的能力,以及优秀的召回率和低延迟。例如,在r5.12xlarge实例上,p90查询延迟仅为16.9毫秒,召回率达到0.99。这表明OpenSearch在处理大规模数据集时,能够保持良好的性能和高准确度。
在这里插入图片描述

端到端的文本语义检索

对于期望实现语义检索的用户,OpenSearch提供了neural-search插件,这是一个端到端的API,支持文本写入和检索。通过ingestion processor和neural query builder,用户可以轻松实现文本的语义检索。

在这里插入图片描述

ml-commons插件:模型全流程托管

ml-commons插件为语义检索提供了强大的支持,实现了模型的全流程托管,包括一键部署、节点级部署、负载均衡和GPU支持。此外,它还支持远程连接到SageMaker、Bedrock、Cohere、OpenAI等服务,以及通过AgentFramework连接大模型,助力RAG。

OpenSearch提供了可视化查询比较工具,允许用户使用相同的搜索测试不同的查询,比较结果的差异。这有助于用户更好地理解不同查询方式的效果,优化搜索策略。

k-NN算法中的性能取舍

在k-NN算法中,性能和召回率往往需要权衡。例如,HNSW算法虽然召回率高达99%,但延时和内存占用相对较高;而IVF+PQ算法虽然召回率较低,但延时和内存占用更优。OpenSearch通过智能选择算法,帮助用户在性能和精度之间找到最佳平衡。
在这里插入图片描述

稀疏编码:鱼和熊掌兼得

稀疏编码(neural sparse)是一种既能保证高相关性,又能节省存储空间、保证速度的语义检索方法。通过深度学习模型,稀疏编码能够将文档和查询转换为稀疏向量,实现高效的语义匹配。
在这里插入图片描述

稀疏编码的鲁棒性

稀疏编码在真实数据服从训练数据分布时表现出色,模型能够使用稀疏准确的向量表征,产出精确的结果。即使在支持论据不足的情况下,稀疏编码也能保持较高的搜索相关性。
在这里插入图片描述

稀疏编码语义检索的计算方法

稀疏编码通过点积计算查询和文档之间的分数,结合权重和语义模型,实现高效的语义匹配。
在这里插入图片描述

稀疏编码与Lucene的结合

OpenSearch将稀疏编码与Lucene结合,构建了倒排索引和FeatureField,实现了高效的检索。
在这里插入图片描述

Doc-only模式:极致速度

OpenSearch的Doc-only模式通过减少模型推理和索引遍历,实现了极致的搜索速度,同时保持了较高的搜索精度。
在这里插入图片描述

稀疏编码性能测试结果

OpenSearch的稀疏编码模型在性能测试中表现出色,无论是搜索精度还是速度,都远超传统的BM25模型。

在这里插入图片描述
在这里插入图片描述

稀疏编码资源消耗

稀疏编码模型在资源消耗方面也具有优势,索引大小和峰值内存占用都远低于稠密索引模型。
在这里插入图片描述

稀疏编码持续优化

OpenSearch团队持续优化稀疏编码模型,通过预训练和知识蒸馏,减小模型尺寸,提高搜索精度,降低ingestion代价。
在这里插入图片描述

集成多路召回

OpenSearch还支持集成多路召回,通过BM25与k-NN的集成,以及更复杂的查询组合,进一步提升搜索精度。
在这里插入图片描述


结语

OpenSearch作为一个活跃的开源项目,其在语义检索技术方面的创新和优化,提供了一个高效、准确、可扩展的搜索平台。

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技之歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值