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作為一個活躍的開源項目,其在語義檢索技術方面的創新和優化,提供了一個高效、準確、可擴展的搜索平臺。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39104.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39104.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39104.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pythonnet能導入clr,但無法引入System模塊?

【pythonnet詳解】—— Python 和 .NET 互操作的庫_pythonnet 詳細使用-CSDN博客 Python中動態調用C#的dll動態鏈接庫中方法_python 如何調用c# dll-CSDN博客 需求&#xff1a;Python調用并傳List<float>類型參數給.Net 起初&#xff1a;直接 # 創建一個Python浮點數…

【Altium】如何處理PCB上所有焊盤被誤蓋油

【更多軟件使用問題請點擊億道電子官方網站】 1、 文檔目標 解決焊盤被誤蓋油的操作 2、 問題場景 所有焊盤都可以設置為蓋油或不蓋油&#xff0c;由于焊盤需要用來焊接元器件&#xff0c;所以都不會設置蓋油。由于誤操作或者創建封裝時設置錯誤&#xff0c;造成一定數量的焊盤…

“論單元測試方法及應用”寫作框架,軟考高級論文,系統架構設計師論文

論文真題 1、概要敘述你參與管理和開發的軟件項目,以吸你所擔的主要工作。 2、結給你參與管理和開發的軟件項目&#xff0c;簡要敘述單元測試中靜態測試和動態測試方法的基本內容。 3、結給你慘與管理和研發的軟件項目,體闡述在玩測試過程中,如何確定白盒測試的覆蓋標準,及如…

IT行業:現狀、未來與無限可能

隨著技術的不斷進步&#xff0c;IT行業已成為推動全球經濟和社會發展的關鍵力量。從云計算、大數據、人工智能到物聯網、5G通信和區塊鏈&#xff0c;這些技術正在重塑我們的生活和工作方式。作為當今全球經濟和社會發展的核心驅動力&#xff0c;IT行業正經歷著前所未有的變革與…

Hadoop權威指南-讀書筆記-01-初識Hadoop

Hadoop權威指南-讀書筆記 記錄一下讀這本書的時候覺得有意思或者重要的點~ 第一章—初識Hadoop Tips&#xff1a; 這個引例很有哲理嘻嘻&#x1f604;&#xff0c;道出了分布式的靈魂。 1.1 數據&#xff01;數據&#xff01; 這一小節主要介紹了進入大數據時代&#xff0c;面…

方正小標宋簡體、仿宋GB2312、楷體GB2312字體

文章目錄 下載地址所有的文件wps使用方正小標宋簡體、仿宋GB2312、楷體GB2312 字體用途方正小標宋簡體仿宋GB2312楷體GB2312 下載地址 【金山文檔 | WPS云文檔】 方正小標宋簡體、仿宋GB2312、楷體GB2312 https://kdocs.cn/l/cksgHDLneqDk 所有的文件 wps使用 方正小標宋簡體…

監聽 web 容器內的網絡請求

需求 iOS 項目中 wkwebview 實現的 web 容器&#xff0c;需要監聽 web 容器內的所有網絡請求 實現 在 iOS 項目中使用 WKWebView 實現的 Web 容器&#xff0c;監聽 Web 容器內的網絡請求是一個常見需求。可以通過實現 WKURLSchemeHandler 協議來處理自定義的 URL scheme&#…

IoTDB Committer+Ratis PMC Member:“兩全其美”的秘訣是?

IoTDB & Ratis 雙向深耕&#xff01; 還記得一年前我們采訪過擁有 IoTDB 核心研發 Ratis Committer “雙重身份”的社區成員宋子陽嗎&#xff1f;&#xff08;點此閱讀&#xff09; 我們高興地發現&#xff0c;一年后&#xff0c;他在兩個項目都更進一步&#xff0c;已成為…

Vue 結合 Element-UI ,管理系統快速生成指南(一)

前言 Element UI 作為一個基于 Vue.js 的 UI 組件庫,提供了豐富的界面元素和交互組件,大大提高了開發效率。結合這兩大前端技術棧,開發者能夠快速搭建出一個功能強大、界面優雅的管理系統。 由于管理系統實現流程還是相對較多&#xff0c;所以分幾篇文章進行講解 本章主要先…

TCP單進程循環服務器程序與單進程客戶端程序

實驗目的 理解并掌握以下內容: 網絡進程標識(即套接字地址)在Linux中的數據結構與地址轉換函數。網絡字節序與主機字節序的定義、轉換以及相關函數在網絡編程中的應用。數據結構內存對齊的基本規則,以及基于數據結構構建PDU的基本方法。TCP單進程循環服務器與單進程客戶端的…

電影交流平臺小程序的設計

管理員賬戶功能包括&#xff1a;系統首頁&#xff0c;個人中心&#xff0c;電影類型管理&#xff0c;留言反饋管理&#xff0c;電影中心管理&#xff0c;系統管理 微信端賬號功能包括&#xff1a;系統首頁&#xff0c;電影中心&#xff0c;留言反饋 開發系統&#xff1a;Window…

kvm虛擬機啟用console登錄

kvm虛擬機console登錄&#xff0c;就是執行 virsh console 的時候&#xff0c;宿主機可以控制虛擬機。 一、centos7的kvm虛擬機開啟console登錄&#xff08;在虛擬中操作&#xff09; 1、備份文件 [roothadoop51 ~]# cp /etc/grub2.cfg /etc/grub2.cfg_back 2、用下面命令可…

Git 命令學習之推送本地項目到 Gitee 托管

引言 在軟件開發中&#xff0c;版本控制是不可或缺的一環。Git 作為目前最流行的分布式版本控制系統&#xff0c;廣泛應用于各種項目中。而 Gitee&#xff08;原名碼云&#xff09;作為國內知名的代碼托管平臺&#xff0c;為開發者提供了穩定、安全的代碼托管服務。下面將詳細…

mysql mgr集群斷電重啟

一、前言 mysql mgr集群所有節點都斷電重啟時&#xff0c;就會面臨一個問題&#xff0c;應該怎么重新構建mgr集群 二、操作 查詢所有節點的master狀態 show master status; 查看同步狀態&#xff0c;可以通過uuid知道是通過哪個節點進行同步的數據 查看所有節點的uuid&#x…

【工具推薦】Clink

文章目錄 Clink介紹Clink安裝刪除版權信息 Clink介紹 Clink 是一個工具&#xff0c;它將 GNU Readline 庫的強大命令行編輯功能與 Windows 原生的 cmd.exe 命令提示符結合在一起。Readline 是 Bash shell 中眾所周知的庫&#xff0c;Bash 是許多 Linux 發行版的標準 shell。通…

基于C語言+控制臺的學生信息管理系統

博主介紹&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C編程語言&#xff0c;同時也熟練掌握微信小程序和Android等技術&#xff0c;能夠為大家提供全方位的技術支持和交流。 我有豐富的成品Java、Python、C#畢設項目經驗&#xff0c;能夠為學生提供各類…

macOS如何查看終端的shell類型

在macOS中&#xff0c;可以通過幾種方式來查看終端&#xff08;Terminal&#xff09;的shell類型。 使用echo命令 打開終端&#xff0c;輸入以下命令&#xff1a; echo $SHELL這將顯示當前使用的shell&#xff0c;例如 /bin/bash 或 /bin/zsh。 查看ps1環境變量 在終端輸入…

大廠面試經典高階SQL題--次日留存率

為什么寫這么一篇文章呢&#xff0c;因為在之前的基金公司面試&#xff0c;1/50的錄取幾率&#xff0c;很榮幸自己可以打敗這么多候選人&#xff0c;被上海著名某基金公司錄取。有一大半人卡在了筆試環節&#xff0c;就說我自個廠商招的一群小伙伴&#xff0c;在辦公室做題的時…

備份SQL Server數據庫并還原到另一臺服務器

我可以將SQL Server數據庫備份到另一臺服務器嗎&#xff1f; 有時您可能希望將 SQL數據庫從一臺服務器復制到另一臺服務器&#xff0c;或者將計算機復制到計算機。可能的場景包括測試、檢查一致性、從崩潰的機器恢復數據庫、在不同的機器上處理同一個項目等。 是的&#xff0c…

【嵌入式】探索嵌入式世界:在ARM上構建俄羅斯方塊游戲的奇妙之旅

文章目錄 前言&#xff1a;1. 簡介2. 總體設計思路及功能描述2.1 設計思路2.2 功能描述2.3 程序流程圖 3. 各部分程序功能及詳細說明3.1 游戲界面函數3.1.1 游戲界面中的圖片顯示3.1.2 游戲開始界面3.1.3 游戲主界面3.1.4 游戲結束廣告界面3.1.5 游戲界面中的觸摸反饋3.1.6 游戲…