自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

騰訊云 ES:一站式 RAG 方案,開(kāi)啟智能搜索新時(shí)代

人工智能
本次分享將深入探討騰訊云 ES 在搜索領(lǐng)域的最新探索,詳細(xì)解析騰訊云 ES 的一站式 RAG 方案,并介紹圍繞該方案架構(gòu)落地所進(jìn)行的一系列內(nèi)核性能和穩(wěn)定性增強(qiáng)優(yōu)化措施。

在大型語(yǔ)言模型(LLM)引領(lǐng)的革命浪潮中,搜索與大模型的緊密結(jié)合已成為推動(dòng)知識(shí)進(jìn)步的關(guān)鍵要素。作為開(kāi)源搜索引擎排名第一的 Elasticsearch(ES),結(jié)合沉淀多年的文本搜索能力和強(qiáng)大的向量檢索能力實(shí)現(xiàn)混合搜索,使搜索變得更準(zhǔn)、更全、更智能。騰訊云 ES 多年來(lái)持續(xù)對(duì)開(kāi)源 ES 的性能、成本、穩(wěn)定性以及分布式架構(gòu)進(jìn)行深度增強(qiáng)優(yōu)化,并在海量規(guī)模的云業(yè)務(wù)中接受考驗(yàn)。騰訊云基于 ES 實(shí)現(xiàn)了一站式 RAG 解決方案,具備了 RAG 技術(shù)規(guī)?;涞啬芰Α1敬畏窒韺⑸钊胩接戲v訊云 ES 在搜索領(lǐng)域的最新探索,詳細(xì)解析騰訊云 ES 的一站式 RAG 方案,并介紹圍繞該方案架構(gòu)落地所進(jìn)行的一系列內(nèi)核性能和穩(wěn)定性增強(qiáng)優(yōu)化措施。

一、生活處處有搜索

1. 生活中的搜索

圖片

搜索技術(shù)與 RAG 緊密相連,因此在深入討論 RAG 之前,讓我們先來(lái)回顧一下生活中的搜索場(chǎng)景。在我們的日常生活中,搜索無(wú)處不在,包括網(wǎng)站目錄、視頻搜索、音頻搜索引擎等多種類型。

2. 搜索技術(shù)的演進(jìn)

圖片

現(xiàn)在,讓我們來(lái)審視一下搜索技術(shù)的發(fā)展軌跡。互聯(lián)網(wǎng)早期的信息量較少,簡(jiǎn)單的分類整理和人工查找即可滿足需求。然而,隨著互聯(lián)網(wǎng)信息的爆炸式增長(zhǎng),文本檢索技術(shù)應(yīng)運(yùn)而生,其核心是基于倒排索引的方法。這一技術(shù)能夠高效處理海量數(shù)據(jù)(如 PB 級(jí)數(shù)據(jù)),進(jìn)行精準(zhǔn)的文本檢索。然而,文本檢索的缺點(diǎn)在于缺乏語(yǔ)義理解能力。

為彌補(bǔ)這一不足,向量檢索技術(shù)開(kāi)始發(fā)展。向量檢索通過(guò)提取對(duì)象特征,將其表示為向量,利用這些向量實(shí)現(xiàn)語(yǔ)義層面的搜索。近年來(lái),隨著大語(yǔ)言模型(LLM)和神經(jīng)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,我們可以借助大模型對(duì)海量知識(shí)進(jìn)行搜索,并進(jìn)一步生成總結(jié)性答案。這不僅拓展了搜索的深度與廣度,也開(kāi)啟了生成式搜索的新時(shí)代。

3. 業(yè)界趨勢(shì):生成式搜索

圖片

讓我們比較一下傳統(tǒng)搜索與生成式搜索的區(qū)別。傳統(tǒng)搜索的核心工作機(jī)制是通過(guò)爬蟲(chóng)抓取網(wǎng)頁(yè),并將這些網(wǎng)頁(yè)按關(guān)鍵詞進(jìn)行排序展示。用戶在需要獲取知識(shí)時(shí),必須逐一閱讀和分析這些網(wǎng)頁(yè),最終歸納出所需的信息。這種模式雖然能夠提供豐富的數(shù)據(jù)來(lái)源,但學(xué)習(xí)效率較低,耗費(fèi)大量時(shí)間和精力。

相比之下,生成式搜索依托大模型的強(qiáng)大總結(jié)能力,能夠?qū)λ阉鞯降闹R(shí)進(jìn)行快速歸納整理,直接生成結(jié)構(gòu)化的答案或總結(jié)內(nèi)容。這種方式顯著提高了學(xué)習(xí)效率,因此成為當(dāng)前非常主流的學(xué)習(xí)方式。然而,生成式搜索也面臨一些問(wèn)題,我們將在后續(xù)章節(jié)中展開(kāi)討論。

二、初識(shí)檢索模型

接下來(lái),讓我們一同回顧檢索模型的發(fā)展歷程。

1. 分詞算法與倒排索引

圖片

首先來(lái)了解兩項(xiàng)關(guān)鍵技術(shù):分詞算法和倒排索引。分詞技術(shù)的核心是將連續(xù)的文本切割成單獨(dú)的單詞或詞組。目前,分詞技術(shù)主要分為三個(gè)類別:

  • 基于詞典的分詞算法:這類算法依賴于預(yù)先定義的詞典,通過(guò)匹配詞典中的詞條來(lái)識(shí)別和分割文本中的單詞。
  • 基于概率的分詞算法:這種算法不僅僅依賴詞典,還結(jié)合了統(tǒng)計(jì)概率方法,以確定文本中單詞的分界。
  • 基于機(jī)器學(xué)習(xí)的分詞算法:這類算法使用機(jī)器學(xué)習(xí)技術(shù),通過(guò)訓(xùn)練數(shù)據(jù)學(xué)習(xí)分詞規(guī)則,以實(shí)現(xiàn)更準(zhǔn)確的文本分割。

完成分詞后,我們可以構(gòu)建一個(gè)從單詞到文本的映射關(guān)系,這被稱為倒排索引。倒排索引是一種索引結(jié)構(gòu),它允許我們快速根據(jù)關(guān)鍵詞定位到包含這些關(guān)鍵詞的文檔,從而實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的高效檢索。這種索引機(jī)制是現(xiàn)代搜索引擎能夠快速響應(yīng)用戶查詢的關(guān)鍵技術(shù)之一。

2. 經(jīng)典檢索模型

圖片

接下來(lái)介紹經(jīng)典的檢索模型。在此列舉四種最基礎(chǔ)的模型,首先是布爾檢索模型。這種模型基于布爾邏輯來(lái)組合關(guān)鍵詞,其返回結(jié)果是滿足特定布爾表達(dá)式的文檔集合。布爾檢索模型的優(yōu)點(diǎn)在于結(jié)構(gòu)簡(jiǎn)單且查詢精確,但同時(shí)也存在一些缺點(diǎn),如缺乏靈活性,不提供結(jié)果排序功能,且對(duì)用戶的查詢能力要求較高,需要用戶能夠準(zhǔn)確表達(dá)他們的查詢需求。

繼布爾檢索模型之后,概率空間模型應(yīng)運(yùn)而生。概率空間模型基于概率論,尤其是貝葉斯理論,它通過(guò)利用文檔集合中的統(tǒng)計(jì)信息來(lái)估算文檔滿足用戶查詢的概率。這種模型的優(yōu)點(diǎn)在于,它提供了概率解釋,可以根據(jù)文檔與查詢之間的相關(guān)性概率進(jìn)行排序。然而,它也存在一些缺點(diǎn),包括參數(shù)選擇和模型調(diào)整過(guò)程較為復(fù)雜,且在面對(duì)缺乏足夠統(tǒng)計(jì)信息的小型文檔集合時(shí),其性能可能不盡如人意。

接下來(lái),詳細(xì)介紹 TF-IDF 權(quán)重模型和向量空間模型。TF-IDF 模型主要基于詞頻(Term Frequency)和逆文檔頻率(Inverse Document Frequency)來(lái)評(píng)估一個(gè)詞在文檔中的重要性。這種技術(shù)目前被廣泛應(yīng)用于文檔檢索和文本挖掘領(lǐng)域。盡管其核心仍然是基于關(guān)鍵詞的檢索,但它的優(yōu)勢(shì)在于能夠評(píng)估詞語(yǔ)在文檔集合中的重要性。

向量空間模型則基于向量檢索,它將文本轉(zhuǎn)換為向量空間中的點(diǎn),通過(guò)計(jì)算向量之間的距離或相似度來(lái)進(jìn)行檢索。這種模型的主要優(yōu)勢(shì)在于能夠進(jìn)行語(yǔ)義檢索,因?yàn)樗紤]了詞項(xiàng)之間的相對(duì)關(guān)系和上下文。然而,它的缺點(diǎn)在于高維空間可能導(dǎo)致計(jì)算成本較高。此外,由于我們目前描述向量的特征維度有限,最多達(dá)到4096維,因此結(jié)果的準(zhǔn)確性可能不如基于文本的檢索方法高。這意味著在處理高維數(shù)據(jù)時(shí),向量空間模型可能會(huì)遇到性能瓶頸,且在準(zhǔn)確性上可能有所妥協(xié)。

3. 全文檢索

圖片

接下來(lái)介紹的是全文檢索。全文檢索結(jié)合了前面介紹的概率空間模型和 TF-IDF 模型,通過(guò)分詞、倒排索引以及貝葉斯算法等技術(shù)來(lái)統(tǒng)計(jì)詞語(yǔ)與文檔的相關(guān)性,進(jìn)而找到包含特定關(guān)鍵詞或短語(yǔ)的文檔。以 TF-IDF 為例,TF 指的是詞條在文檔中出現(xiàn)的頻率,即詞頻;IDF 則是詞條在所有文檔中出現(xiàn)的逆頻率,它是通過(guò)取詞條出現(xiàn)次數(shù)的倒數(shù)再取對(duì)數(shù)得到的。總體而言,一個(gè)詞語(yǔ)在一篇文章中出現(xiàn)的次數(shù)越多,同時(shí)在所有文檔中出現(xiàn)的頻率越低,它就越能代表該文檔。這種檢索方式相較于傳統(tǒng)的關(guān)鍵詞文本檢索,具有評(píng)分和評(píng)估相關(guān)性的功能,因此其精準(zhǔn)性得到了顯著提升,并且能夠應(yīng)對(duì)關(guān)鍵詞的缺失。然而,它的局限性在于仍然基于文本,缺乏較好的語(yǔ)義理解能力。例如,“計(jì)算機(jī)”和“電腦”在語(yǔ)義上是相同的,但在全文檢索中仍然被視為兩個(gè)獨(dú)立的詞。

4. 向量檢索

圖片

向量檢索,也稱為近似檢索或語(yǔ)義檢索,它通過(guò)將文檔和查詢表示為向量空間中的向量,并利用這些向量之間的相似度來(lái)檢索出與查詢最相關(guān)的文檔。這種檢索方式的優(yōu)點(diǎn)在于其良好的語(yǔ)義理解能力。然而,由于描述向量時(shí)特征維度的限制,其精準(zhǔn)性可能存在不足。此外,向量檢索無(wú)法有效應(yīng)對(duì)關(guān)鍵詞檢索,且難以表達(dá)文檔的額外屬性。這些局限性表明,盡管向量檢索在語(yǔ)義層面有所突破,但在精確性和功能性方面仍有改進(jìn)的空間。

三、從 Lucene 到 ES

接下來(lái),將進(jìn)入今天的主題——Elasticsearch(ES)。

圖片

首先來(lái)介紹一下 Lucene。Lucene 是 Apache 軟件基金會(huì)下的一個(gè)開(kāi)源全文檢索引擎工具包。它為軟件開(kāi)發(fā)人員提供了一個(gè)簡(jiǎn)單易用的類庫(kù),以便在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能。

Lucene 基于倒排索引,提供了一系列的文本處理和搜索功能,包括分詞、停用詞處理、評(píng)分排序、高亮顯示以及近實(shí)時(shí)搜索等。此外,Lucene 還提供了豐富的查詢方式,例如范圍查詢、前綴匹配、模糊匹配和布爾查詢等,這些功能使得它在全文檢索領(lǐng)域非常強(qiáng)大和靈活。通過(guò)這些高級(jí)搜索特性,Lucene 能夠滿足各種復(fù)雜的搜索需求,為用戶提供快速而準(zhǔn)確的搜索結(jié)果?;旧显跇I(yè)界只要提全文檢索,Lucene 就是第一選擇。

圖片

盡管 Lucene 是一個(gè)非常強(qiáng)大的全文檢索庫(kù),但它是為單機(jī)環(huán)境設(shè)計(jì)的。為了解決大規(guī)模數(shù)據(jù)和分布式環(huán)境的需求,Elasticsearch 應(yīng)運(yùn)而生。Elasticsearch(簡(jiǎn)稱 ES)是一個(gè)開(kāi)源的、基于 Lucene 的分布式全文檢索和數(shù)據(jù)分析引擎。它能夠處理海量數(shù)據(jù),并提供實(shí)時(shí)的檢索和統(tǒng)計(jì)分析功能。Elasticsearch 的設(shè)計(jì)使其成為處理大數(shù)據(jù)場(chǎng)景的理想選擇,尤其是在需要快速響應(yīng)和高吞吐量的環(huán)境中。

Elasticsearch 的社區(qū)非常龐大,全球有超過(guò) 10 萬(wàn)的社區(qū)參與者,其中在中國(guó)就有 1 萬(wàn)。這個(gè)數(shù)字體現(xiàn)了 Elasticsearch 在全球范圍內(nèi)的廣泛受歡迎和應(yīng)用。此外,Elasticsearch 的下載量達(dá)到了 3.5 億次,在全球搜索引擎的排名中,Elasticsearch 位居第一,在全球數(shù)據(jù)庫(kù)的排名中位列第七。這些排名數(shù)據(jù)源自 DB-Engines,這是一個(gè)廣受認(rèn)可的數(shù)據(jù)庫(kù)管理系統(tǒng)排名網(wǎng)站。其排名依據(jù)涵蓋多個(gè)維度,包括社區(qū)活躍度、下載量、專業(yè)出版物中的提及次數(shù)等,從而為數(shù)據(jù)庫(kù)管理系統(tǒng)的流行度和影響力提供了權(quán)威的參考。Elasticsearch 在這些排名中的卓越表現(xiàn),進(jìn)一步彰顯了其在全文檢索和數(shù)據(jù)分析領(lǐng)域的重要地位。

當(dāng)前 Elasticsearch 提供了一個(gè) ELK 套件。Elasticsearch 作為 ELK 棧的中心,主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和分析。ELK 棧包括以下三個(gè)主要組件:

  • Elasticsearch:負(fù)責(zé)存儲(chǔ)、搜索和分析數(shù)據(jù)。它是一個(gè)強(qiáng)大的搜索引擎,能夠處理大量數(shù)據(jù),并提供快速的數(shù)據(jù)檢索能力。
  • Kibana:負(fù)責(zé)數(shù)據(jù)的可視化展示。Kibana 允許用戶通過(guò)圖表、地圖和儀表板等形式直觀地查看和理解 Elasticsearch 中的數(shù)據(jù)。
  • Logstash:負(fù)責(zé)數(shù)據(jù)采集和處理。Logstash 是一個(gè)服務(wù)器端數(shù)據(jù)處理管道,可以同時(shí)從多個(gè)來(lái)源采集數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù),然后將數(shù)據(jù)發(fā)送到 Elasticsearch。

有時(shí),ELK 棧也會(huì)包括 Beats,這是一個(gè)輕量級(jí)的數(shù)據(jù)采集器,用于向 Elasticsearch 或 Logstash 發(fā)送數(shù)據(jù)。Beats 有多種類型,每種類型都針對(duì)特定的數(shù)據(jù)類型或使用場(chǎng)景進(jìn)行了優(yōu)化。

ELK 棧提供了一個(gè)完整的解決方案,從數(shù)據(jù)采集、處理到存儲(chǔ)和可視化,使得用戶能夠輕松地從大量數(shù)據(jù)中提取有價(jià)值的信息。這個(gè)棧因其靈活性、可擴(kuò)展性和易用性而受到許多企業(yè)和開(kāi)發(fā)者的青睞。

Elasticsearch 一直是日志場(chǎng)景中的首選解決方案,因?yàn)樗軌蛱峁└咝阅艿暮A繑?shù)據(jù)全文檢索。同時(shí),Elasticsearch 提供了商業(yè)套件 X-Pack,該套件增強(qiáng)了 Elasticsearch 的功能,包括數(shù)據(jù)安全、告警、監(jiān)控、報(bào)表、圖查詢以及機(jī)器學(xué)習(xí)等高級(jí)功能。這些功能使得 Elasticsearch 不僅能夠處理和檢索數(shù)據(jù),還能夠提供更深層次的數(shù)據(jù)洞察和安全保障。

四、大模型與 RAG

接下來(lái)探討大模型與 RAG(Retrieval Augmented Generation)。

圖片

大模型主要分為兩類:

  • 決策式大模型:這類模型主要根據(jù)數(shù)據(jù)輸入進(jìn)行決策,其規(guī)模相對(duì)較小,主要應(yīng)用于人臉識(shí)別、推薦系統(tǒng)、風(fēng)控系統(tǒng)等場(chǎng)景。它們學(xué)習(xí)數(shù)據(jù)中的條件概率分布,用于分類、預(yù)測(cè)和決策任務(wù)。
  • 生成式大模型:這類模型學(xué)習(xí)數(shù)據(jù)中的聯(lián)合概率分布,用于生成新的數(shù)據(jù)實(shí)例,如文本、圖像或音頻。它們通常具有較大的規(guī)模,因?yàn)樯尚聝?nèi)容需要深入洞察數(shù)據(jù)。生成式大模型通常擁有上億甚至上萬(wàn)億的參數(shù),主要應(yīng)用于智能問(wèn)答、智能客服、智能寫(xiě)作等場(chǎng)景。

隨著混元 GPT、通義千問(wèn)等大型模型的相繼問(wèn)世,這些先進(jìn)的人工智能技術(shù)如今已在全球范圍內(nèi)引發(fā)廣泛關(guān)注與熱議。在此背景下,我們迫切期望能夠?qū)⑦@些大模型技術(shù)引入實(shí)際生產(chǎn)環(huán)節(jié),以期推動(dòng)產(chǎn)業(yè)升級(jí)與創(chuàng)新發(fā)展。

圖片

盡管大模型在人工智能領(lǐng)域取得了顯著的進(jìn)展,但它們也面臨著一些挑戰(zhàn)。首先,大模型的訓(xùn)練數(shù)據(jù)是靜態(tài)的,這意味著它們?cè)谟?xùn)練完成后無(wú)法實(shí)時(shí)更新,無(wú)法納入訓(xùn)練之后發(fā)生的新信息。因此,大模型在面對(duì)后續(xù)出現(xiàn)的事件和信息時(shí),可能會(huì)表現(xiàn)出認(rèn)知上的滯后性,從而導(dǎo)致其知識(shí)體系逐漸過(guò)時(shí)。

其次,大模型通常擁有上億甚至上萬(wàn)億的參數(shù),這使得每次更新都需要大量的計(jì)算資源,尤其是高性能顯卡。因此,新信息的引入對(duì)于已經(jīng)學(xué)習(xí)了海量數(shù)據(jù)的模型來(lái)說(shuō),短期內(nèi)的少量數(shù)據(jù)基本上無(wú)法產(chǎn)生足夠的信號(hào)來(lái)影響其輸出,這使得模型更新成本極高。

此外,許多企業(yè)的私域知識(shí)庫(kù)不會(huì)暴露到公網(wǎng),而大模型大多基于公網(wǎng)數(shù)據(jù)進(jìn)行訓(xùn)練。這導(dǎo)致大模型對(duì)私域知識(shí)庫(kù)的表現(xiàn)能力較差,限制了其在企業(yè)生產(chǎn)中的應(yīng)用。

鑒于上述問(wèn)題,RAG(Retrieval-Augmented Generation)技術(shù)應(yīng)運(yùn)而生。RAG 技術(shù)通過(guò)結(jié)合檢索和生成的方法,能夠更好地處理和利用私域知識(shí)庫(kù),從而提升大模型在企業(yè)生產(chǎn)中的應(yīng)用效果。

圖片

RAG 技術(shù),即檢索增強(qiáng)生成技術(shù),是一種通過(guò)檢索外部知識(shí)庫(kù)來(lái)提升大模型生成效果的技術(shù)方案。該技術(shù)在大模型基礎(chǔ)上,通過(guò)對(duì)本地知識(shí)庫(kù)進(jìn)行檢索,以增強(qiáng)大模型輸出的準(zhǔn)確性和相關(guān)性。

圖片

RAG 技術(shù)主要應(yīng)用于知識(shí)問(wèn)答、智能客服、專家系統(tǒng)等場(chǎng)景,其工作流程主要包括以下五個(gè)步驟:

①發(fā)起問(wèn)題:用戶提出問(wèn)題,RAG 系統(tǒng)首先對(duì)問(wèn)題進(jìn)行處理,包括改寫(xiě)、擴(kuò)寫(xiě)或優(yōu)化,并將其轉(zhuǎn)換為向量形式,以便于后續(xù)處理。

②搜索文檔:在 RAG 系統(tǒng)的知識(shí)庫(kù)中進(jìn)行檢索,尋找與問(wèn)題相關(guān)的文檔或信息片段。

③Prompt 組裝:將檢索到的結(jié)果與原始問(wèn)題進(jìn)行整合,形成一個(gè) prompt 提示,該提示將作為輸入發(fā)送到大模型。

④模型生成:大模型根據(jù) prompt 生成答案,這一步驟依賴于模型的預(yù)訓(xùn)練知識(shí)和檢索到的外部信息。

⑤答案返回:生成的答案經(jīng)過(guò)格式處理后,返回給用戶,完成整個(gè)問(wèn)答流程。

這一流程展示了 RAG 技術(shù)如何通過(guò)結(jié)合檢索和生成的方法,提升大模型在特定場(chǎng)景下的應(yīng)用效果。

五、一站式向量檢索與 RAG 方案

下面通過(guò)一個(gè)具體的落地案例來(lái)進(jìn)一步探討 RAG 技術(shù)的應(yīng)用。

圖片

以 Langchain 為代表的眾多公開(kāi) RAG 解決方案,傾向于采用純向量檢索方式。正如前文所述,純向量檢索的優(yōu)點(diǎn)在于流程簡(jiǎn)單、語(yǔ)義理解能力強(qiáng),但其缺點(diǎn)是精準(zhǔn)性較差,因?yàn)槠湟蕾囉谙嗨贫葯z索,難以處理關(guān)鍵詞,且無(wú)法表達(dá)文檔的額外屬性。

相比之下,基于倒排索引的全文檢索雖然精準(zhǔn)度高,但語(yǔ)義理解能力較弱。因此,騰訊 ES 在 RAG 領(lǐng)域提出了一種基于混合檢索的一站式解決方案,即結(jié)合向量檢索和文本檢索的多路召回方式,以充分發(fā)揮兩者的優(yōu)勢(shì),取長(zhǎng)補(bǔ)短。

該方案的先進(jìn)性體現(xiàn)在以下幾個(gè)方面:首先,全文檢索基于 Lucene 的 BM25 評(píng)分算法,這是在 TF-IDF 基礎(chǔ)上的一次升級(jí),增加了與問(wèn)題相關(guān)性的評(píng)分。同時(shí),引入了多語(yǔ)言分詞,包括中文、日文、韓文、拼音等,并設(shè)計(jì)了 QQ 分詞,內(nèi)含百萬(wàn)級(jí)中文詞匯,基本覆蓋了絕大多數(shù)的中文場(chǎng)景,分詞效果顯著。

圖片

其次,向量檢索基于原生 HNSW 算法,并在此基礎(chǔ)上自研構(gòu)建了高性能、高召回率的向量索引。經(jīng)過(guò)驗(yàn)證,我們的多路召回方案在召回率上相對(duì)于純向量檢索和文本檢索有大幅提升,最高達(dá)到了 95%,基本滿足了大部分商用場(chǎng)景和 ToB/ToC 場(chǎng)景的召回率要求。因此,我們的方案已被混元收錄為 RAG 多路召回的標(biāo)準(zhǔn)解決方案,并在公司內(nèi)外部支持了 WXG、PCG、TEG 等大型在線知識(shí)庫(kù)的 RAG 項(xiàng)目。

接下來(lái)將詳細(xì)介紹在大型項(xiàng)目中遇到的一些挑戰(zhàn)。自年初開(kāi)始,我們接手了內(nèi)部的一個(gè)大型在線知識(shí)庫(kù)項(xiàng)目,該項(xiàng)目涉及海量書(shū)籍構(gòu)成的百億級(jí)向量檢索數(shù)據(jù)規(guī)模,且要求檢索延遲在百毫秒以內(nèi)。原生 ES 基于 HNSW 算法,這是一種主流的基于圖結(jié)構(gòu)的向量近似搜索算法,其優(yōu)點(diǎn)在于召回率和性能都較高,同等召回率下性能可達(dá) Faiss 的 20 倍。然而,其缺點(diǎn)在于純內(nèi)存操作,資源消耗極高。在百億知識(shí)庫(kù)的場(chǎng)景下,資源使用幾乎無(wú)法滿足,預(yù)估可能需要五六百臺(tái)機(jī)器,這是一個(gè)巨大的規(guī)模。

為了實(shí)現(xiàn)降本增效,我們通過(guò)對(duì) ES 進(jìn)行深度改造,核心原理是進(jìn)程內(nèi)存與系統(tǒng) MMAP 文件映射的動(dòng)態(tài)結(jié)合。具體流程如下:當(dāng)數(shù)據(jù)寫(xiě)入內(nèi)存時(shí),首先在內(nèi)存中構(gòu)建上層向量索引和倒排索引,然后將細(xì)粒度的向量數(shù)據(jù)和字段信息進(jìn)行持久化,編碼存放到磁盤上,再通過(guò)預(yù)加載 Preload 到 MMap FS,在 MMap FS 中進(jìn)行快速檢索。通過(guò)這種方式,大幅降低了 HNSW 的內(nèi)存資源消耗。同時(shí),通過(guò)高效的文件編碼、MMAP 文件的動(dòng)態(tài)管理以及向量的標(biāo)量化,提升了檢索性能。

這樣做的目的是:

  • 當(dāng)進(jìn)程內(nèi)存充足時(shí),當(dāng)純內(nèi)存向量&倒排索引檢索庫(kù)使用,以保證最佳的性能;
  • 當(dāng)進(jìn)程不足以存放全部索引時(shí),可以利用 MMapFS 來(lái)做內(nèi)存的壓縮跟熱索引的訪問(wèn)加速;
  • 當(dāng)進(jìn)程 + MMapFS 文件系統(tǒng)都存放不下全部向量索引時(shí),此時(shí)自動(dòng)降級(jí)為磁盤向量檢索算法。

這種深度改造的架構(gòu)突破了傳統(tǒng)的 HNSW 算法受內(nèi)存資源的限制,只需要原本的 1/10 ~ 1/20 左右的內(nèi)存就可以將向量索引全部加載進(jìn)內(nèi)存。向量規(guī)模越大,實(shí)際上可壓縮節(jié)省的內(nèi)存就越多。同時(shí)我們通過(guò)高效的文件編碼、MMapFS 文件的動(dòng)態(tài)管理,向量的 int/byte 量化,依然保持了基本無(wú)損的寫(xiě)入跟查詢性能。不足之處在于首次讀取時(shí)預(yù)加載到 MMapFS 有一個(gè)過(guò)程,但可以通過(guò)主動(dòng)觸發(fā) PreLoad 來(lái)加速這個(gè)過(guò)程。

經(jīng)過(guò)驗(yàn)證,我們的方案在內(nèi)存資源消耗上降低了 80%,在同等資源情況下,性能提升了 5 到 10 倍。相對(duì)于開(kāi)源 ES 版本,騰訊 ES 能夠?qū)崿F(xiàn) 10 倍的性能提升,達(dá)到了業(yè)界領(lǐng)先水平。

圖片

隨后,我們將資源優(yōu)化部分回饋到開(kāi)源 ES 社區(qū)和 Lucene 社區(qū),得到了社區(qū)的高度認(rèn)可和廣泛宣傳。這不僅提升了我們的技術(shù)影響力,還收到了 Elasticsearch 創(chuàng)始人的感謝信。未來(lái),我們將在 AI 時(shí)代繼續(xù)與開(kāi)源 ES 社區(qū)保持緊密合作,共同推動(dòng)技術(shù)的進(jìn)步與發(fā)展。

圖片

為了更好地服務(wù)于更多客戶,我們與中國(guó)信通院云計(jì)算大數(shù)據(jù)研究所聯(lián)合40余家企業(yè)的 70 多位專家,共同編制完成了 RAG 技術(shù)標(biāo)準(zhǔn)。騰訊 ES 作為國(guó)內(nèi)公有云首個(gè)從自然語(yǔ)言到向量生成、存儲(chǔ)、檢索并以大模型集成端到端的一站式平臺(tái),騰訊云作為核心參與企業(yè),也是首個(gè)通過(guò) RAG 權(quán)威認(rèn)證的標(biāo)準(zhǔn)企業(yè)。該標(biāo)準(zhǔn)主要包含五個(gè)能力域:知識(shí)庫(kù)構(gòu)建能力、知識(shí)檢索能力、內(nèi)容生成能力、質(zhì)量評(píng)估能力和平臺(tái)能力。

圖片

接下來(lái),我們將介紹騰訊云 ES 的功能,并探討其與業(yè)界現(xiàn)有數(shù)據(jù)庫(kù)的區(qū)別。目前,業(yè)界已有許多相關(guān)數(shù)據(jù)庫(kù),如 Milvus 和 Chroma 等向量數(shù)據(jù)庫(kù),以及 MySQL 和 PostgreSQL 等傳統(tǒng)數(shù)據(jù)庫(kù),它們也集成了向量檢索功能。然而,騰訊云 ES 主要為 RAG 應(yīng)用提供了豐富的功能,超越了傳統(tǒng)向量數(shù)據(jù)庫(kù)和其他數(shù)據(jù)庫(kù)的解決方案范圍。

我們?cè)诖鎯?chǔ)、搜索和生成向量的基礎(chǔ)上,還提供了一個(gè)開(kāi)箱即用的訓(xùn)練模型,并支持混合搜索,即基于文本和向量的檢索。用戶可以靈活選擇嵌入模型,并享受過(guò)濾、切片、聚合、自動(dòng)補(bǔ)全、搜索分析、文檔級(jí)安全以及本地云混合等功能。

圖片

用戶在使用騰訊 ES 時(shí),還可以選擇我們提供的自有優(yōu)化模型 ELSER,這是一個(gè)基于稀疏模型的優(yōu)化方案。此外,ES 還內(nèi)置了微軟的 Multilingual-e5 模型,用戶也可以上傳自己微調(diào)訓(xùn)練好的 Transformer Bert 模型到 ES 中進(jìn)行部署。同時(shí),用戶還可以調(diào)用 OpenAI 和 Hugging Face 上的模型接口,進(jìn)行數(shù)據(jù)的向量化處理。

圖片

在結(jié)果重排方面,ES 提供了一種倒數(shù)融合排序算法,該算法主要根據(jù)每個(gè)結(jié)果在結(jié)果集中的排序位置,而不是基于相關(guān)性分?jǐn)?shù)。這種方式的好處在于,不需要進(jìn)行歸一化調(diào)整,就能實(shí)現(xiàn)相對(duì)較好的排序效果。用戶可以減少對(duì)相關(guān)性的細(xì)微調(diào)整,從而大大提高便利性。

圖片

ES 的混合搜索功能并非簡(jiǎn)單地將文本搜索和向量搜索拼湊在一起。在底層引擎方面,不僅提供了文本索引、向量索引和數(shù)值索引,還在查詢分析理解方面提供了分詞、同義詞詞庫(kù)、詞權(quán)重調(diào)整、文本分類、命名實(shí)體識(shí)別等功能。在多路召回方面,可以對(duì)每個(gè)查詢的文本相關(guān)性、相似度和類目相關(guān)性進(jìn)行微調(diào)。對(duì)于多路召回的結(jié)果,進(jìn)行混合打分,并提供了 RF 算法和 LTR(Learning to Rank)模型,用于結(jié)果的重排序。

圖片

ES 還提供了一個(gè)專有的機(jī)器學(xué)習(xí)節(jié)點(diǎn),用戶可以使用這些專有機(jī)器學(xué)習(xí)節(jié)點(diǎn)來(lái)上傳、管理和部署向量模型,一站式完成向量生成和檢索,從而有效提升向量推理能力。同時(shí),這些節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)隔離,保障了在線業(yè)務(wù)的穩(wěn)定性。

圖片

為了滿足微信、QQ 等海量數(shù)據(jù)推理的需求,ES 與公司自研的紫霄 AI 芯片相結(jié)合。由于原生 ES 基于 CPU 推理,目前不支持 GPU,因此我們采用了自研 AI 芯片紫霄的最新 V2 版本。相對(duì)于社區(qū) ES,原生 ES 的性能提升了 18 倍。我們提供了一站式解決方案,用戶只需輸入一條命令,即可完成從向量生成、向量檢索到混合檢索,直至輸出結(jié)果的全流程操作。

六、案例實(shí)踐

接下來(lái)將詳細(xì)介紹一個(gè)具體的應(yīng)用案例。

圖片

該平臺(tái)提供了海量數(shù)字書(shū)籍閱讀服務(wù),并最近推出了一個(gè)新功能——AI 問(wèn)書(shū)。AI 問(wèn)書(shū)主要提供書(shū)籍內(nèi)容的智能檢索,用戶在閱讀過(guò)程中遇到不理解的內(nèi)容時(shí),可以通過(guò) AI 問(wèn)書(shū)功能在當(dāng)前書(shū)籍中搜索相關(guān)答案,而不是依賴于混元等大模型。這是因?yàn)榇竽P涂赡軣o(wú)法根據(jù)特定書(shū)籍的內(nèi)容給出準(zhǔn)確回答,而 AI 問(wèn)書(shū)則基于 RAG 技術(shù),能夠根據(jù)書(shū)籍的語(yǔ)義嘗試回答用戶的問(wèn)題。舉個(gè)例子,用戶在 AI 問(wèn)書(shū)中輸入“馬克思”,系統(tǒng)會(huì)輸出馬克思在某本書(shū)中的詳細(xì)資料,并引用相關(guān)書(shū)籍。此外,系統(tǒng)還會(huì)根據(jù)用戶的問(wèn)題進(jìn)行拓展,提供更多相關(guān)信息。

圖片

這個(gè)知識(shí)庫(kù)平臺(tái)最初并未使用騰訊云 ES,因此遇到了以下技術(shù)挑戰(zhàn):

  • 整體數(shù)據(jù)超 10 億級(jí)向量規(guī)模,存儲(chǔ)成本高。早期評(píng)估的非 ES 方案,為了滿足毫秒級(jí)查詢,需要緩存全部數(shù)據(jù)到內(nèi)存中,則 30 億 768 維的向量,需要超過(guò) 400 臺(tái) 64G 機(jī)器,運(yùn)營(yíng)成本百萬(wàn)級(jí)。
  • 運(yùn)維成本高:除了全文檢索,同時(shí)還需部署向量化服務(wù),在外部進(jìn)行向量化后,寫(xiě)入到向量數(shù)據(jù)庫(kù),同時(shí)向量數(shù)據(jù)庫(kù)不存儲(chǔ)原始文本信息,還需要額外存放到全文數(shù)據(jù)庫(kù),跟文本的索引信息,相當(dāng)于需要同時(shí)四套系統(tǒng)。
  • 開(kāi)發(fā)成本高:調(diào)試召回過(guò)程中,需要在外部進(jìn)行向量化后,從向量數(shù)據(jù)庫(kù)召回,然后再用召回 id 訪問(wèn)正排獲取原始文本。相當(dāng)于每一次召回調(diào)試需要 3 次操作,跨越 4 個(gè)系統(tǒng)。
  • 穩(wěn)定性要求高:在線讀書(shū)平臺(tái)超億級(jí)用戶,穩(wěn)定性要求 5 個(gè) 9 以上。
  • 查詢性能要求高:高并發(fā)場(chǎng)景下查詢延遲需要毫秒級(jí)返回,數(shù)億量級(jí)數(shù)據(jù)全鏈路多路召回需控制在 100ms 以內(nèi)。

圖片

在與業(yè)務(wù)溝通后,我們采用了如下方案,首先,他們將微調(diào)好的模型上傳到騰訊 ES 的機(jī)器學(xué)習(xí)節(jié)點(diǎn),然后將書(shū)籍進(jìn)行入庫(kù)。入庫(kù)過(guò)程中,文本首先會(huì)進(jìn)行分詞、分段和語(yǔ)義切分,然后輸入到機(jī)器學(xué)習(xí)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)的向量化。同時(shí),數(shù)據(jù)還會(huì)進(jìn)行基于 Lucene 的分詞,分詞完成后進(jìn)行文本檢索,向量化完成后進(jìn)行向量檢索。在 ES 中,用戶只需一條命令即可完成文本檢索和向量檢索。搜索到的結(jié)果與問(wèn)題相結(jié)合,拼成 Prompt 提示后發(fā)送到 LLM 大模型生成答案。這種方式大幅降低了成本,并使運(yùn)維變得非常方便。

圖片

騰訊云 ES 提供了一站式的 RAG 方案,具體而言,AI 問(wèn)書(shū)在實(shí)現(xiàn)過(guò)程中,主要應(yīng)用了以下能力:

  • 知識(shí)向量化:通過(guò)上傳自定義的 embedding 模型到騰訊云 ES 提供的機(jī)器學(xué)習(xí)節(jié)點(diǎn)中,實(shí)現(xiàn)書(shū)籍內(nèi)容與搜索詞的向量化(embedding)。
  • 混合搜索:騰訊云 ES 提供了全文檢索與向量檢索能力,只需要簡(jiǎn)單的一條查詢語(yǔ)句,即可從 ES 中實(shí)現(xiàn)混合搜索與多路召回。
  • 與大模型集成:騰訊云 ES 支持通過(guò) API 與混元大模型進(jìn)行集成,深度打通混元一站式,從 ES 召回的數(shù)據(jù),可與 Prompt 一起送進(jìn)到大模型中進(jìn)行生成式整合,最終完成智能問(wèn)答。
  • Kibana 調(diào)試:作為與 ES 天然集成 Web 頁(yè)面,Kibana 提供了豐富的可視化能力,能幫助開(kāi)發(fā)運(yùn)維人員快速進(jìn)行召回調(diào)試,并在 Kibana 上完成模型的部署與管理。
  • 安全高可用:騰訊云 ES 自研全鏈路熔斷限流方案,同時(shí)支持多副本、多可用區(qū)部署,能夠有效保障在線業(yè)務(wù)穩(wěn)定性。

目前騰訊 ES 已在官網(wǎng)上公開(kāi)售賣,近期將推出 RAG 一站式服務(wù)的 AI 搜索,幫助用戶直接使用一整套方案。歡迎大家試用騰訊 ES,感謝大家的關(guān)注。

七、Q&A

Q:在做文本檢索時(shí)會(huì)使用既有向量又有關(guān)鍵詞的混合檢索,混合檢索會(huì)得到多種類型的結(jié)果,請(qǐng)問(wèn)如何對(duì)這些結(jié)果進(jìn)行重排序來(lái)選出其中高價(jià)值的結(jié)果。

A:對(duì)于多路召回的結(jié)果第一塊是一個(gè)前面介紹過(guò)的倒數(shù)排序的融合,它主要對(duì)多路的結(jié)果進(jìn)行融合,例如這個(gè)例子中有兩路結(jié)果,基于每一路的排名結(jié)果對(duì)最終結(jié)果進(jìn)行融合。另一種是重排模型(Reranker),例如利用 LLM 大模型提供的功能對(duì)結(jié)果進(jìn)行重排。

責(zé)任編輯:姜華 來(lái)源: DataFunTalk
相關(guān)推薦

2015-04-19 16:36:10

騰訊云

2016-11-02 22:13:21

戴爾

2015-12-15 17:33:57

戴爾云計(jì)算

2024-08-19 09:05:00

Seata分布式事務(wù)

2019-05-29 14:12:02

騰訊To B計(jì)費(fèi)

2017-05-04 21:30:32

前端異常監(jiān)控捕獲方案

2017-11-28 13:53:18

2023-05-26 08:37:04

All in ECPES數(shù)據(jù)

2023-10-26 06:59:58

FinOps云原生

2014-08-01 16:49:41

2010-05-06 16:02:26

2020-08-25 15:07:49

騰訊云KPL王者榮耀

2018-07-26 20:22:23

京東云智能教育

2015-07-01 15:03:21

SpeedyCloud

2016-09-21 11:00:33

騰訊云海云捷迅云服務(wù)

2020-10-21 16:01:51

戴爾

2015-07-30 16:03:13

騰訊云

2013-10-24 17:35:01

云網(wǎng)絡(luò)H3C電子政務(wù)

2013-10-20 13:30:07

華為一站式BYOD敏捷辦公
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)