精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘! 精華

發(fā)布于 2025-4-11 00:00
瀏覽
0收藏

在人工智能(AI)領(lǐng)域,長(zhǎng)上下文生成與檢索(RAG) 已成為提升自然語(yǔ)言處理(NLP)模型性能的關(guān)鍵技術(shù)之一。隨著數(shù)據(jù)規(guī)模與應(yīng)用場(chǎng)景的不斷擴(kuò)展,如何高效地處理海量上下文信息,成為研究與應(yīng)用的熱點(diǎn)話題。本文將深入探討OpenAI最新發(fā)布的O1-preview和O1-mini模型在長(zhǎng)上下文RAG任務(wù)中的表現(xiàn),比較其與行業(yè)內(nèi)其他SOTA(State-of-the-Art)模型如GPT-4o和Google Gemini 1.5的性能差異,并提供實(shí)用的優(yōu)化建議,助力開(kāi)發(fā)者在構(gòu)建LLM(大型語(yǔ)言模型)應(yīng)用時(shí)實(shí)現(xiàn)更高效、更精準(zhǔn)的性能表現(xiàn)。

引言:長(zhǎng)上下文RAG的重要性

在現(xiàn)代AI應(yīng)用中,大型語(yǔ)言模型(LLM) 已廣泛應(yīng)用于文本生成、問(wèn)答系統(tǒng)、內(nèi)容總結(jié)等多個(gè)領(lǐng)域。然而,隨著應(yīng)用場(chǎng)景的復(fù)雜性和數(shù)據(jù)量的急劇增加,傳統(tǒng)的短上下文處理能力已難以滿足需求。長(zhǎng)上下文RAG(Retrieve and Generate) 技術(shù)通過(guò)在生成過(guò)程中引入檢索機(jī)制,使模型能夠處理更大規(guī)模的上下文信息,從而顯著提升了回答的準(zhǔn)確性與相關(guān)性。

【CodeMoss】集成13個(gè)種AI模型(GPT4、o1等)、支持Open API調(diào)用、自定義助手、文件上傳等強(qiáng)大功能,助您提升工作效率! >>> - CodeMoss & ChatGPT-AI中文版

>>> https://pc.aihao123.cn/index.html#/page/login?invite=1141439&fromChannel=CodeMoss_1212RAG

OpenAI O1模型概述

OpenAI的O1模型 是最新發(fā)布的SOTA模型之一,分為O1-preview 和O1-mini 兩個(gè)版本。O1模型在2023年10月發(fā)布后,憑借其卓越的長(zhǎng)上下文處理能力,迅速在行業(yè)內(nèi)嶄露頭角。與之前的GPT-4o模型相比,O1模型在多個(gè)長(zhǎng)上下文RAG基準(zhǔn)測(cè)試中表現(xiàn)更為出色,尤其是在處理超過(guò)百萬(wàn)級(jí)詞元的超長(zhǎng)文本時(shí)展現(xiàn)出了顯著優(yōu)勢(shì)。

O1-mini 版本在性能上幾乎與GPT-4o持平,而O1-preview 則在一些特定任務(wù)中超越了GPT-4o,顯示出其強(qiáng)大的泛化能力和適應(yīng)性。這兩款模型不僅在標(biāo)準(zhǔn)數(shù)據(jù)集上的表現(xiàn)優(yōu)異,還在諸如Databricks DocsQA和FinanceBench等內(nèi)部數(shù)據(jù)集上展現(xiàn)了卓越的性能。

O1模型在長(zhǎng)上下文RAG基準(zhǔn)測(cè)試中的表現(xiàn)

為了全面評(píng)估O1模型在長(zhǎng)上下文RAG任務(wù)中的性能,我們將其在多個(gè)數(shù)據(jù)集上的表現(xiàn)進(jìn)行詳盡分析,包括Databricks DocsQAFinanceBench 和 **Natural Questions (NQ)**。

在Databricks DocsQA數(shù)據(jù)集上的表現(xiàn)

Databricks DocsQA 是一個(gè)內(nèi)部數(shù)據(jù)集,專注于文檔問(wèn)答任務(wù),涵蓋了技術(shù)文檔的復(fù)雜結(jié)構(gòu)與多樣化內(nèi)容。在此數(shù)據(jù)集上,O1-preview和O1-mini模型在所有上下文長(zhǎng)度下的表現(xiàn)顯著優(yōu)于GPT-4o和Google Gemini模型。具體而言:

  • O1-preview模型在2k至200萬(wàn)詞元的上下文長(zhǎng)度范圍內(nèi),回答的正確性和相關(guān)性均穩(wěn)步提升,尤其在長(zhǎng)上下文下表現(xiàn)尤為突出。
  • O1-mini版本在處理超長(zhǎng)上下文時(shí),準(zhǔn)確率接近GPT-4o,但在某些任務(wù)中超越了GPT-4o,顯示出其高效的上下文處理能力。

圖2.1展示了不同模型在Databricks DocsQA數(shù)據(jù)集上的RAG性能對(duì)比,可以明顯看出O1模型的優(yōu)勢(shì)。

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

在FinanceBench數(shù)據(jù)集上的表現(xiàn)

FinanceBench 數(shù)據(jù)集專注于金融領(lǐng)域的問(wèn)答任務(wù),涉及大量專業(yè)術(shù)語(yǔ)與復(fù)雜的金融邏輯。在此數(shù)據(jù)集上,O1模型同樣表現(xiàn)優(yōu)異:

  • O1-previewO1-mini在所有上下文長(zhǎng)度下,尤其是在8k及以上,準(zhǔn)確率均顯著高于GPT-4o和Gemini模型。
  • 尤其是在16k甚至更長(zhǎng)的上下文長(zhǎng)度下,O1模型能夠保持較高的回答質(zhì)量,展示出其在處理金融數(shù)據(jù)復(fù)雜性方面的優(yōu)勢(shì)。

圖2.2展示了O1模型在FinanceBench數(shù)據(jù)集上的長(zhǎng)上下文RAG性能,進(jìn)一步驗(yàn)證了其卓越表現(xiàn)。

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

在Natural Questions (NQ)數(shù)據(jù)集上的表現(xiàn)

Natural Questions (NQ) 是一個(gè)標(biāo)準(zhǔn)的學(xué)術(shù)基準(zhǔn)測(cè)試數(shù)據(jù)集,涵蓋了廣泛的常識(shí)性問(wèn)題。在NQ數(shù)據(jù)集上,O1模型的表現(xiàn)總體優(yōu)異,但在短上下文長(zhǎng)度(2k詞元)下存在一定的性能下降:

  • 在短篇幅上下文中,如果檢索到的文檔中信息不足,O1模型傾向于回答“信息不可用”,而無(wú)法基于自身知識(shí)進(jìn)行補(bǔ)充回答。
  • 盡管如此,在更長(zhǎng)的上下文環(huán)境下,O1模型依然保持了較高的回答正確性,接近甚至超越了GPT-4o。

這種在短上下文下的性能下降主要源于檢索文檔的相關(guān)性不足,導(dǎo)致模型無(wú)法充分發(fā)揮其生成能力。

與Google Gemini 1.5模型的對(duì)比

Google Gemini 1.5 模型是目前市場(chǎng)上另一款領(lǐng)先的長(zhǎng)上下文RAG模型,擁有Pro 和Flash 兩個(gè)版本。在多個(gè)基準(zhǔn)測(cè)試中,Gemini 1.5展示出了其獨(dú)特的優(yōu)勢(shì),尤其是在處理超長(zhǎng)上下文時(shí)的穩(wěn)定性。

Gemini 1.5在超長(zhǎng)上下文下的穩(wěn)定性

盡管在128k詞元以下的整體答案正確性低于O1和GPT-4o模型,Gemini 1.5 在處理高達(dá)200萬(wàn)詞元的超長(zhǎng)上下文時(shí),表現(xiàn)出了驚人的穩(wěn)定性。具體表現(xiàn)如下:

  • 一致性:在超長(zhǎng)上下文下,Gemini 1.5模型能維持一致的回答質(zhì)量,而不會(huì)像其他模型那樣在上下文長(zhǎng)度增加時(shí)出現(xiàn)性能波動(dòng)。
  • 資源優(yōu)化:盡管處理超長(zhǎng)文本可能帶來(lái)較高的計(jì)算成本,Gemini 1.5通過(guò)優(yōu)化算法,有效控制了資源消耗,使其在長(zhǎng)文檔處理上具有成本效益。

圖2.1展示了Gemini 1.5在NQ數(shù)據(jù)集上的長(zhǎng)上下文RAG性能,顯示其在大規(guī)模文本處理中依然能夠保持高水平的回答正確性。

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

成本與開(kāi)發(fā)便捷性的權(quán)衡

對(duì)于開(kāi)發(fā)者而言,選擇合適的模型不僅要考慮性能,還需權(quán)衡成本與開(kāi)發(fā)便捷性。Gemini 1.5在長(zhǎng)上下文處理上的優(yōu)勢(shì)意味著在某些應(yīng)用場(chǎng)景下,可以跳過(guò)傳統(tǒng)的檢索步驟,直接將整個(gè)數(shù)據(jù)集輸入模型進(jìn)行處理。然而,這種做法可能帶來(lái)較高的計(jì)算成本與資源消耗,但為開(kāi)發(fā)人員提供了更簡(jiǎn)化的開(kāi)發(fā)體驗(yàn),適合對(duì)開(kāi)發(fā)效率有較高要求的項(xiàng)目。

通過(guò)對(duì)比分析,我們可以得出:

  • O1模型在中短上下文下表現(xiàn)優(yōu)異,適合需要高準(zhǔn)確性和相關(guān)性的應(yīng)用場(chǎng)景。
  • Gemini 1.5則更適合處理超長(zhǎng)上下文且對(duì)成本有一定容忍度的項(xiàng)目,提供了一種簡(jiǎn)化的RAG工作流方案。

LLM在長(zhǎng)上下文RAG中的失敗模式分析

盡管大型語(yǔ)言模型在長(zhǎng)上下文RAG任務(wù)中展現(xiàn)了強(qiáng)大的能力,但在實(shí)際應(yīng)用中,仍然存在多種失敗模式。理解這些失敗模式有助于開(kāi)發(fā)者在構(gòu)建應(yīng)用時(shí)采取相應(yīng)的優(yōu)化措施,提升系統(tǒng)的整體性能與穩(wěn)定性。

OpenAI O1-preview與O1-mini的失敗模式

在對(duì)O1模型的失敗案例進(jìn)行分析時(shí),我們發(fā)現(xiàn)其主要失誤類別包括:

  1. 重復(fù)內(nèi)容(repeated_content):模型生成回答時(shí)出現(xiàn)重復(fù)的無(wú)意義詞組或字符,影響回答的可讀性與信息量。
  2. 隨機(jī)內(nèi)容(random_content):生成的回答與上下文內(nèi)容無(wú)關(guān),缺乏邏輯性和語(yǔ)法合理性。
  3. 未遵循指令(fail_follow_inst):未按照問(wèn)題要求生成回答,如在要求基于上下文回答時(shí),模型嘗試進(jìn)行總結(jié)。
  4. 空響應(yīng)(empty_resp):模型未生成任何回答,返回空字符串。
  5. 錯(cuò)誤答案(wrong_answer):盡管遵循了指令,模型提供了錯(cuò)誤的答案。
  6. 拒絕回答(refusal):模型因不確定性或其他原因拒絕回答問(wèn)題。
  7. 因API過(guò)濾導(dǎo)致的任務(wù)失敗:由于安全過(guò)濾規(guī)則,模型未生成回答。

O1-preview 和O1-mini 在處理不同上下文長(zhǎng)度時(shí),特別是在推理步驟的詞元長(zhǎng)度不可預(yù)測(cè)時(shí),可能會(huì)因上下文過(guò)長(zhǎng)而返回空響應(yīng)。此外,在NQ數(shù)據(jù)集中,短上下文下的性能下降表現(xiàn)為模型簡(jiǎn)單地回答“信息不可用”,即便在一些情況下存在支持回答的oracle文檔,模型仍未能提供正確答案。

下面兩個(gè)圖分別展示了O1-preview在Databricks DocsQA和NQ數(shù)據(jù)集上的失敗分析,可以看出不同數(shù)據(jù)集和上下文長(zhǎng)度對(duì)模型表現(xiàn)的影響。

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

Google Gemini 1.5 Pro與Flash的失敗模式

Gemini 1.5 模型的失敗模式分析顯示,其主要問(wèn)題在于:

  1. 主題敏感性:生成API對(duì)提示內(nèi)容的主題高度敏感,尤其在NQ基準(zhǔn)測(cè)試中,由于提示內(nèi)容被過(guò)濾,導(dǎo)致了大量任務(wù)失敗。
  2. 拒絕回答:在FinanceBench數(shù)據(jù)集中,模型經(jīng)常因?yàn)闄z索不到相關(guān)信息而拒絕回答,尤其在短上下文(2k詞元)下,96.2%的“拒絕”情況發(fā)生在缺失oracle文檔時(shí)。
  3. BlockedPromptException錯(cuò)誤:由于提示內(nèi)容被API過(guò)濾,導(dǎo)致生成任務(wù)失敗,這類錯(cuò)誤在NQ基準(zhǔn)測(cè)試中較為普遍。

圖3.3至圖3.5展示了Gemini 1.5 Pro在不同數(shù)據(jù)集上的失敗模式分布,可以明顯看出在不同上下文長(zhǎng)度和數(shù)據(jù)集環(huán)境下,模型表現(xiàn)出的特有問(wèn)題。

優(yōu)化長(zhǎng)上下文RAG性能的策略

針對(duì)上述模型的表現(xiàn)與失敗模式,開(kāi)發(fā)者可以采取以下策略優(yōu)化長(zhǎng)上下文RAG的性能,提升應(yīng)用的整體效果。

選擇合適的模型與上下文長(zhǎng)度

根據(jù)具體應(yīng)用需求選擇最合適的模型與上下文長(zhǎng)度,是提升RAG性能的第一步。

  • 中短上下文應(yīng)用:對(duì)于需要高準(zhǔn)確性和相關(guān)性的應(yīng)用,如技術(shù)文檔問(wèn)答、金融報(bào)告分析,推薦使用OpenAI O1-previewO1-mini,在2k至16k詞元的上下文長(zhǎng)度下表現(xiàn)優(yōu)異。
  • 超長(zhǎng)上下文應(yīng)用:對(duì)于需要處理超過(guò)200萬(wàn)詞元的超長(zhǎng)文本,如大型文檔解析、綜合報(bào)告生成,Google Gemini 1.5是更合適的選擇,其在超長(zhǎng)上下文下保持了相對(duì)穩(wěn)定的性能。【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

改進(jìn)檢索步驟以提升性能

檢索步驟在RAG流程中扮演著至關(guān)重要的角色,改進(jìn)檢索算法和策略,可以有效提升模型的回答質(zhì)量。

  • 增強(qiáng)檢索相關(guān)性:通過(guò)優(yōu)化檢索算法,確保檢索到的文檔與問(wèn)題高度相關(guān),減少模型生成隨機(jī)或錯(cuò)誤回答的概率。
  • 動(dòng)態(tài)上下文調(diào)整:根據(jù)問(wèn)題的復(fù)雜性和上下文的相關(guān)性,動(dòng)態(tài)調(diào)整輸入的上下文長(zhǎng)度,確保模型在不同任務(wù)中都能獲得足夠的信息支持。【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

處理模型的失敗模式

針對(duì)模型在不同場(chǎng)景下的失敗模式,采取相應(yīng)的預(yù)防和修正措施,能夠顯著提高系統(tǒng)的穩(wěn)定性和用戶體驗(yàn)。

  • 內(nèi)容過(guò)濾與指令優(yōu)化:在設(shè)計(jì)提示內(nèi)容時(shí),避免觸發(fā)模型的拒絕回答機(jī)制,采用更加明確和具體的指令,減少因安全過(guò)濾導(dǎo)致的任務(wù)失敗。
  • 多模型協(xié)同:結(jié)合多種模型的優(yōu)勢(shì),采用多模型協(xié)同策略,如在短上下文下優(yōu)先使用O1模型,在超長(zhǎng)上下文下切換至Gemini模型,最大化每種模型的優(yōu)點(diǎn)。
  • 錯(cuò)誤監(jiān)控與反饋機(jī)制:建立完善的錯(cuò)誤監(jiān)控系統(tǒng),實(shí)時(shí)檢測(cè)并記錄模型的失敗情況,采用反饋機(jī)制不斷優(yōu)化提示內(nèi)容和模型選擇策略。

結(jié)論:未來(lái)的發(fā)展與展望

隨著AI技術(shù)的不斷進(jìn)步,長(zhǎng)上下文RAG在各種應(yīng)用場(chǎng)景中的重要性日益凸顯。OpenAI O1模型 的發(fā)布,展示了其在處理長(zhǎng)上下文任務(wù)上的強(qiáng)大能力,超越了之前的GPT-4o模型,為行業(yè)樹(shù)立了新的標(biāo)桿。同時(shí),Google Gemini 1.5 在超長(zhǎng)上下文處理上的獨(dú)特優(yōu)勢(shì),也為開(kāi)發(fā)者提供了更多選擇,特別是在需要處理海量文本數(shù)據(jù)的應(yīng)用中,Gemini 1.5 的優(yōu)勢(shì)尤為明顯。

RAG作為一種減少模型幻覺(jué)(Model Hallucination)并提升模型在私域知識(shí)分析與回答能力的高效方法,受到了廣泛關(guān)注。然而,RAG的成功實(shí)施依賴于知識(shí)召回的準(zhǔn)確性,這直接影響到大語(yǔ)言模型(LLM)的表現(xiàn)。那么,RAG究竟是如何工作的?在實(shí)現(xiàn)過(guò)程中,哪些技術(shù)手段能夠確保知識(shí)召回的精準(zhǔn)性?本文將帶你深入了解這些問(wèn)題,尤其是混合檢索技術(shù)在其中扮演的關(guān)鍵角色。

單一檢索的局限性:為何僅靠關(guān)鍵詞檢索不夠?

在眾多檢索方法中,關(guān)鍵詞檢索無(wú)疑是最常用的一種。它通過(guò)匹配用戶輸入的關(guān)鍵詞與文檔中的關(guān)鍵詞來(lái)返回相關(guān)結(jié)果。然而,關(guān)鍵詞檢索存在明顯的局限性,這些問(wèn)題在實(shí)際應(yīng)用中往往難以忽視。

語(yǔ)義缺失:詞語(yǔ)之間的深層聯(lián)系被忽略

關(guān)鍵詞檢索的最大缺陷之一就是無(wú)法理解詞語(yǔ)之間的語(yǔ)義關(guān)系。舉個(gè)例子,當(dāng)用戶搜索“狗”時(shí),系統(tǒng)可能無(wú)法識(shí)別“犬”與“狗”是同義詞,導(dǎo)致相關(guān)文檔被遺漏。這種語(yǔ)義上的缺失,使得關(guān)鍵詞檢索在處理同義詞或近義詞時(shí)表現(xiàn)不佳。

多義詞問(wèn)題:一詞多義帶來(lái)的困擾

另一個(gè)常見(jiàn)問(wèn)題是多義詞的處理。例如,“蘋果”既可以指水果,也可以指科技公司。如果用戶搜索“蘋果”,系統(tǒng)無(wú)法確定用戶的具體意圖,從而可能返回不相關(guān)的結(jié)果。這種情況下,關(guān)鍵詞檢索的效果大打折扣。

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

實(shí)例分析:?jiǎn)我粰z索的不足

讓我們通過(guò)一個(gè)具體的例子來(lái)更好地理解單一檢索的局限性。假設(shè)我們有以下代碼,通過(guò)關(guān)鍵詞匹配在兩個(gè)文本中尋找最相關(guān)的內(nèi)容:

def main():
    """
    主函數(shù),用于測(cè)試和演示
    """
    text1 = '把商品發(fā)到商鋪'
    text2 = '我想將商品掛到商鋪'
    text3 = '我想找商鋪問(wèn)下商品'

    # calculate_tfidf_similarity: 通過(guò)兩個(gè)文本TF-IDF相似度計(jì)算相似度
    tfidf_similarities2 = calculate_tfidf_similarity(text1, text2)
    tfidf_similarities3 = calculate_tfidf_similarity(text1, text3)

    print(f"\n匹配句子1得分:{tfidf_similarities2[0]} \n\n匹配句子2得分: {tfidf_similarities3[0]} \n\n")

運(yùn)行結(jié)果如下:

匹配句子1得分:0.8164965809277259 

匹配句子2得分:0.8164965809277259

可以看到,盡管text1與text2在語(yǔ)義上更為匹配,但由于關(guān)鍵詞“商品”和“閑魚”在三個(gè)句子中均有出現(xiàn),導(dǎo)致兩個(gè)句子的得分相同。這說(shuō)明,單純依賴關(guān)鍵詞匹配,無(wú)法有效區(qū)分哪些文檔更符合用戶需求。

混合檢索:打破單一檢索的束縛

為了克服單一檢索的局限性,混合檢索應(yīng)運(yùn)而生。混合檢索(Hybrid Retrieval)結(jié)合了多種檢索方法的優(yōu)勢(shì),旨在提升檢索結(jié)果的質(zhì)量和多樣性。通過(guò)將關(guān)鍵詞檢索與語(yǔ)義檢索相結(jié)合,混合檢索能夠更精準(zhǔn)地滿足用戶需求,提供更全面的檢索結(jié)果。

什么是混合檢索?

混合檢索是一種綜合運(yùn)用多種檢索技術(shù)的策略。它不僅依賴于傳統(tǒng)的關(guān)鍵詞匹配,還結(jié)合了語(yǔ)義理解和上下文分析等先進(jìn)技術(shù)。通過(guò)這種方式,混合檢索能夠在保持關(guān)鍵詞檢索高效性的同時(shí),彌補(bǔ)其在語(yǔ)義理解上的不足,從而實(shí)現(xiàn)更高的召回準(zhǔn)確性。

實(shí)現(xiàn)混合檢索的步驟

接下來(lái),我們將通過(guò)代碼示例,詳細(xì)拆解混合檢索的實(shí)現(xiàn)過(guò)程。

def main():
    """
    主函數(shù),用于測(cè)試和演示
    """
    text1 = '把商品發(fā)到商鋪'
    text2 = '我想將商品掛到商鋪'
    text3 = '我想找商鋪問(wèn)下商品'

    # 通過(guò)兩個(gè)文本TF-IDF相似度計(jì)算相似度
    tfidf_similarities2 = calculate_tfidf_similarity(text1, text2)
    tfidf_similarities3 = calculate_tfidf_similarity(text1, text3)

    # 通過(guò)兩個(gè)文本的嵌入相似度計(jì)算相似度
    embedding_similarities2 = calculate_similarity(text1, text2)
    embedding_similarities3 = calculate_similarity(text1, text3) 

    print(f"\n\n語(yǔ)義搜索句子1 {embedding_similarities2[0]} \n\n語(yǔ)義搜索句子2: {embedding_similarities3[0]}")

運(yùn)行結(jié)果:

語(yǔ)義搜索句子1 ('我想將商品掛到閑魚', 0.8553742925917707) 

語(yǔ)義搜索句子2: ('我想找閑魚問(wèn)下商品', 0.6846143988983046)

從結(jié)果中可以看出,語(yǔ)義檢索在區(qū)分句子相關(guān)性方面表現(xiàn)出色,能夠更準(zhǔn)確地識(shí)別出與用戶需求更為契合的句子。

【人工智能】AI如何精準(zhǔn)匹配RAG知識(shí)庫(kù)?揭秘混合檢索的奧秘!-AI.x社區(qū)

加權(quán)計(jì)算

為了進(jìn)一步提升檢索的準(zhǔn)確性,我們可以將關(guān)鍵詞檢索和語(yǔ)義檢索的得分進(jìn)行加權(quán)計(jì)算。這樣,用戶可以根據(jù)自身需求,調(diào)整關(guān)鍵詞檢索與語(yǔ)義檢索的權(quán)重,從而獲得最優(yōu)的檢索結(jié)果。

def main():
    """
    主函數(shù),用于測(cè)試和演示
    """
    text1 = '把商品發(fā)到商鋪'
    text2 = '我想將商品掛到商鋪'
    text3 = '我想找商鋪問(wèn)下商品'

    # 通過(guò)兩個(gè)文本TF-IDF相似度計(jì)算相似度
    tfidf_similarities2 = calculate_tfidf_similarity(text1, text2)
    tfidf_similarities3 = calculate_tfidf_similarity(text1, text3)

    embedding_similarities2 = calculate_similarity(text1, text2)
    embedding_similarities3 = calculate_similarity(text1, text3) 
    
    Semantic_Proportio = 0.8
    Word_Proportion = 0.2

    # 根據(jù)傳進(jìn)來(lái)的權(quán)重計(jì)算最終得分
    final_score2 = calculate_final_score(embedding_similarities2[0][1], tfidf_similarities2[0], Semantic_Proportio, Word_Proportion)
    final_score3 = calculate_final_score(embedding_similarities3[0][1], tfidf_similarities3[0], Semantic_Proportio, Word_Proportion)

    print(f"最終語(yǔ)句1得分: {final_score2} \n\n最終語(yǔ)句2得分: {final_score3}")

運(yùn)行結(jié)果:

最終語(yǔ)句1得分: 0.8475987502589617 

最終語(yǔ)句2得分: 0.7109908353041888

通過(guò)混合檢索,系統(tǒng)能夠更精準(zhǔn)地識(shí)別出最符合用戶需求的句子,大幅提升了檢索結(jié)果的質(zhì)量和準(zhǔn)確性。

完整代碼展示

為了幫助大家更好地理解混合檢索的實(shí)現(xiàn),以下是完整的代碼示例。請(qǐng)注意,運(yùn)行代碼前需將??dashscope??的API key替換為你自己的有效key。

import dashscope
from http import HTTPStatus
import numpy as np
import jieba
from jieba.analyse import extract_tags
import math

# 初始化dashscope,替換qwen的api key
dashscope.api_key = 'sk-xxxx'

def embed_text(text):
    """
    使用dashscope API獲取文本的嵌入向量
    :param text: 輸入的文本
    :return: 文本的嵌入向量,如果失敗則返回None
    """
    resp = dashscope.TextEmbedding.call(
        model=dashscope.TextEmbedding.Models.text_embedding_v2,
        input=text)
    if resp.status_code == HTTPStatus.OK:
        return resp.output['embeddings'][0]['embedding']
    else:
        print(f"Failed to get embedding: {resp.status_code}")
        returnNone

def cosine_similarity(vec1, vec2):
    """
    計(jì)算兩個(gè)向量之間的余弦相似度
    :param vec1: 第一個(gè)向量
    :param vec2: 第二個(gè)向量
    :return: 余弦相似度
    """
    dot_product = np.dot(vec1, vec2)
    norm_vec1 = np.linalg.norm(vec1)
    norm_vec2 = np.linalg.norm(vec2)
    return dot_product / (norm_vec1 * norm_vec2)

def calculate_similarity(text1, text2):
    """
    計(jì)算兩個(gè)文本之間的相似度
    :param text1: 第一個(gè)文本
    :param text2: 第二個(gè)文本,可以包含多個(gè)句子,用逗號(hào)分隔
    :return: 每個(gè)句子的相似度列表,格式為 (句子, 相似度)
    """
    embedding1 = embed_text(text1)
    if embedding1 isNone:
        return []

    similarities = []
    sentences = [sentence.strip() for sentence in text2.split(',') if sentence.strip()]

    for sentence in sentences:
        embedding2 = embed_text(sentence)
        if embedding2 isNone:
            continue
        similarity = cosine_similarity(embedding1, embedding2)
        similarities.append((sentence, similarity))

    return similarities

def extract_keywords(text):
    """
    提取文本中的關(guān)鍵詞
    :param text: 輸入的文本
    :return: 關(guān)鍵詞列表
    """
    return extract_tags(text)

def cosine_similarity_tfidf(vec1, vec2):
    """
    計(jì)算兩個(gè)TF-IDF向量之間的余弦相似度
    :param vec1: 第一個(gè)TF-IDF向量
    :param vec2: 第二個(gè)TF-IDF向量
    :return: 余弦相似度
    """
    intersection = set(vec1.keys()) & set(vec2.keys())
    numerator = sum(vec1[x] * vec2[x] for x in intersection)
    sum1 = sum(vec1[x] ** 2for x in vec1)
    sum2 = sum(vec2[x] ** 2for x in vec2)
    denominator = math.sqrt(sum1) * math.sqrt(sum2)
    return numerator / denominator if denominator else0.0

def calculate_tfidf_similarity(text, text2):
    """
    計(jì)算兩個(gè)文本之間的TF-IDF相似度
    :param text: 第一個(gè)文本
    :param text2: 第二個(gè)文本,可以包含多個(gè)文檔,用豎線分隔
    :return: 每個(gè)文檔的TF-IDF相似度列表
    """
    documents = [doc for doc in text2.split('|') if doc.strip()]
    query_keywords = extract_keywords(text)
    documents_keywords = [extract_keywords(doc) for doc in documents]

    query_keyword_counts = {kw: query_keywords.count(kw) for kw in set(query_keywords)}
    total_documents = len(documents)
    all_keywords = set(kw for doc in documents_keywords for kw in doc)
    keyword_idf = {kw: math.log((1 + total_documents) / (1 + sum(1for doc in documents_keywords if kw in doc))) + 1for kw in all_keywords}

    query_tfidf = {kw: count * keyword_idf.get(kw, 0) for kw, count in query_keyword_counts.items()}
    documents_tfidf = [{kw: doc.count(kw) * keyword_idf.get(kw, 0) for kw in set(doc)} for doc in documents_keywords]

    return [cosine_similarity_tfidf(query_tfidf, doc_tfidf) for doc_tfidf in documents_tfidf]

def calculate_final_score(embedding_similarity, tfidf_similarity, w1=0.5, w2=0.5):
    """
    計(jì)算最終得分,結(jié)合語(yǔ)義相似度和TF-IDF相似度
    :param embedding_similarity: 語(yǔ)義相似度
    :param tfidf_similarity: TF-IDF相似度
    :param w1: 語(yǔ)義相似度的權(quán)重
    :param w2: TF-IDF相似度的權(quán)重
    :return: 最終得分
    """
    return w1 * embedding_similarity + w2 * tfidf_similarity

def main():
    """
    主函數(shù),用于測(cè)試和演示
    """
    text1 = '把商品發(fā)到商鋪'
    text2 = '我想將商品掛到商鋪'
    text3 = '我想找商鋪問(wèn)下商品'

    tfidf_similarities2 = calculate_tfidf_similarity(text1, text2)
    tfidf_similarities3 = calculate_tfidf_similarity(text1, text3)

    embedding_similarities2 = calculate_similarity(text1, text2)
    embedding_similarities3 = calculate_similarity(text1, text3)

    Semantic_Proportio = 0.8
    Word_Proportion = 0.2

    final_score2 = calculate_final_score(embedding_similarities2[0][1], tfidf_similarities2[0], Semantic_Proportio, Word_Proportion)
    final_score3 = calculate_final_score(embedding_similarities3[0][1], tfidf_similarities3[0], Semantic_Proportio, Word_Proportion)

    print(f"最終語(yǔ)句1得分: {final_score2} \n\n最終語(yǔ)句2得分: {final_score3}")

if __name__ == '__main__':
    main()

通過(guò)上述代碼,開(kāi)發(fā)者可以輕松實(shí)現(xiàn)混合檢索功能,結(jié)合關(guān)鍵詞與語(yǔ)義檢索的優(yōu)勢(shì),提升知識(shí)庫(kù)匹配的精準(zhǔn)度。

總結(jié)

混合檢索技術(shù)通過(guò)整合關(guān)鍵詞檢索與語(yǔ)義檢索的優(yōu)勢(shì),實(shí)現(xiàn)了多維度的知識(shí)召回,顯著提高了檢索結(jié)果的準(zhǔn)確性和全面性。

希望本文的分享能夠?yàn)槟阍赗AG知識(shí)庫(kù)的構(gòu)建與優(yōu)化過(guò)程中提供有價(jià)值的參考與啟示。

本文轉(zhuǎn)載自??愛(ài)學(xué)習(xí)的蝌蚪??,作者:hpstream

已于2025-4-11 10:55:33修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
无遮挡的视频在线观看| 奴色虐av一区二区三区| 日韩免费成人| 亚洲成在线观看| 欧美精彩一区二区三区| 一级全黄少妇性色生活片| 中文字幕一区二区三区欧美日韩| 日韩一区二区不卡| 无码人妻精品一区二区三区在线| 国产福利在线观看| 成人性色生活片| 国产国语videosex另类| 永久免费看黄网站| 久操精品在线| 日韩一级高清毛片| 国产成人无码av在线播放dvd| 国产精品va在线观看视色| 91在线精品秘密一区二区| 国产精品久久久久久网站| 欧美三级在线免费观看| 欧美人与牛zoz0性行为| 日韩视频免费直播| 国产理论在线播放| 韩国精品一区| 亚洲欧美综合在线精品| 欧美精品亚洲精品| 亚洲AV无码国产精品午夜字幕 | 亚洲精品美女久久7777777| 亚洲精品国产片| 久久99精品国产麻豆不卡| 91成人福利在线| 欧美日韩成人免费观看| 热久久天天拍国产| 亚洲人成人99网站| 亚洲av成人精品一区二区三区| 日本在线一区二区| 色狠狠色噜噜噜综合网| 成年人看的毛片| wwwav在线| 中文字幕在线播放不卡一区| 蜜桃传媒视频麻豆一区| 欧美 日韩 国产 精品| 国产在线一区二区| 成人夜晚看av| 一级欧美一级日韩| 免费成人av在线播放| 国产不卡av在线免费观看| 日本三级视频在线| 黑丝一区二区三区| 欧美国产乱视频| 欧美成人精品激情在线视频| 久久精品青草| 久久精品99久久香蕉国产色戒| 国产精成人品免费观看| 国产一区二区三区四区| 亚洲深夜福利视频| av永久免费观看| 精品免费视频| 中文字幕久久久| 中文字幕精品亚洲| 久久一区91| 欧美日韩国产在线看| 日本欧美黄色片| 中文在线中文资源| 色视频成人在线观看免| 日本人视频jizz页码69| 欧美精品一区在线| www.国产麻豆| 岛国av在线一区| 国产精品一级久久久| 可以免费观看的毛片| 国产99精品在线观看| 国产精品久久久久久久免费大片| 亚洲国产日韩在线观看| av电影一区二区| 鲁鲁狠狠狠7777一区二区| 黄色在线网站| 国产精品不卡在线| 亚洲精品天堂成人片av在线播放 | 国产精品50p| 亚洲成人av观看| 欧美日韩高清影院| 久久久久无码精品| 久久久伦理片| 一色桃子一区二区| 国内偷拍精品视频| 一本色道88久久加勒比精品| 国产成人精品久久久| 91黄色在线视频| 国产成人精品一区二区三区四区 | 99999精品| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 中文字幕精品网| 午夜69成人做爰视频| 亚洲一区国产一区| 国产精品热视频| 国产香蕉在线观看| 欧美韩日一区二区三区| 精品嫩模一区二区三区| 午夜影院在线观看国产主播| 欧美色图第一页| 在线播放av网址| 成人av二区| 97精品欧美一区二区三区| 国产精品成人久久久| 国产成人aaaa| 日韩欧美手机在线| www视频在线观看| 欧美日韩国产一区| 精品无码在线视频| 欧美88av| 国产精品扒开腿做爽爽爽视频 | 国产一区二区精品久久| 精品欧美国产| 直接在线观看的三级网址| 在线视频一区二区三| 亚洲图片制服诱惑| 国产精成人品免费观看| 欧美日韩一区自拍| 国产精品久久久久久久久久久新郎| 99国产精品久久久久99打野战| 99精品久久只有精品| 97超碰免费观看| 写真福利精品福利在线观看| 精品国免费一区二区三区| 阿v天堂2014| 在线午夜精品| 国产66精品久久久久999小说| yw193.com尤物在线| 性感美女极品91精品| www激情五月| 色小子综合网| 日韩美女视频免费在线观看| 亚洲精品97久久中文字幕| 17c精品麻豆一区二区免费| 日韩一级片播放| 卡通动漫国产精品| 久久久欧美一区二区| 国产免费一区二区三区免费视频| 国产网红主播福利一区二区| 日本十八禁视频无遮挡| 99精品国产高清一区二区麻豆| 色av吧综合网| 99成人精品视频| 久久久天堂av| 999精品网站| 久久成人高清| 国产精品h片在线播放| 欧美精品少妇| 日韩欧美黄色动漫| 精品无码在线视频| 欧美中文日韩| 欧洲久久久久久| 欧美色网在线| 一区二区三区视频在线| 亚洲免费视频二区| 中文字幕在线免费不卡| 亚洲天堂伊人网| 66视频精品| 亚洲综合一区二区不卡| 污片在线免费观看| 精品少妇一区二区三区在线视频| 欧美日韩精品亚洲精品| 国产不卡在线一区| 可以看毛片的网址| 羞羞答答一区二区| 国产精品久久久久久久久免费 | 亚洲怡红院av| 亚洲欧美综合色| 国产人妖在线观看| 99在线|亚洲一区二区| 免费在线观看91| 香蕉成人影院| 欧美福利在线观看| 偷拍25位美女撒尿视频在线观看| 色婷婷久久综合| 青娱乐国产视频| 精品一区二区三区久久| 伊人再见免费在线观看高清版 | www在线观看黄色| 亚洲欧美日韩国产中文| 久久久久久av无码免费看大片| 国产精品人成在线观看免费| 欧美一级小视频| 亚洲精选91| 色99中文字幕| 欧美精品三级在线| 日本不卡高字幕在线2019| 免费av网站在线看| 精品盗摄一区二区三区| 伊人久久久久久久久久久久 | 亚洲国产小视频| 中文字幕 视频一区| 一区二区三区鲁丝不卡| 亚洲一级中文字幕| 国产精品原创巨作av| 欧美 国产 日本| 午夜欧美在线| 欧美精品一区三区在线观看| 亚洲免费资源| 5566日本婷婷色中文字幕97| 老司机精品影院| 日韩电影中文字幕在线观看| 在线中文字幕网站| 午夜亚洲福利老司机| 日韩在线观看免| 久久综合中文字幕| 色偷偷中文字幕| 日日摸夜夜添夜夜添精品视频| 精品一区二区三区毛片| jiujiure精品视频播放| 精品国产_亚洲人成在线| 四虎在线精品| 日本伊人精品一区二区三区介绍| 超碰超碰在线| 在线观看日韩视频| 三级av在线| 精品久久久久av影院| 亚洲天堂中文网| 色婷婷久久久亚洲一区二区三区| 久久久久久久九九九九| 一区精品在线播放| 亚洲精品国产91| 99热这里都是精品| www.com日本| 精品一区二区三区欧美| 黄色一级二级三级| 国产精品永久| 国产精品网站免费| 亚洲一级网站| 大陆极品少妇内射aaaaaa| 国产精品麻豆久久| 亚洲一二三区精品| 免费毛片在线不卡| 久久综合给合久久狠狠色| 一区二区三区四区高清视频 | 久久夜色精品国产亚洲aⅴ| 国产资源在线观看| 亚洲免费电影在线观看| 深爱五月激情五月| 亚洲高清久久久久久| 亚洲成人久久精品| 欧美成人aa大片| 亚洲国产精品欧美久久| 欧美不卡一区二区三区四区| 精品毛片一区二区三区| 日韩欧美资源站| 国产成人毛毛毛片| 日韩欧美中文字幕制服| 不卡视频在线播放| 日韩免费观看高清完整版在线观看| 国产裸体无遮挡| 欧美一区二区三区电影| 国产日韩精品suv| 这里只有精品视频在线观看| 国产精品久久久久久久久久久久久久久久 | 日韩精品日韩在线观看| 爽爽视频在线观看| 亚洲欧美成人一区二区在线电影| 日韩国产福利| 国产亚洲视频在线观看| 最新国产在线观看| 毛片精品免费在线观看| 久久不射影院| 777777777亚洲妇女| 最新欧美电影| 91牛牛免费视频| 91精品尤物| 激情五月综合色婷婷一区二区| 嫩草影视亚洲| 一区二区在线中文字幕电影视频| 国产精品99在线观看| 超薄肉色丝袜足j调教99| 欧美三级免费| 日本在线xxx| 奇米精品一区二区三区四区| 国产无色aaa| 福利视频网站一区二区三区| 中文字幕av观看| 中文字幕欧美三区| 久久久久久久国产精品毛片| 欧美色xxxx| 一区二区的视频| 精品人在线二区三区| 完全免费av在线播放| 色婷婷777777仙踪林| 国产日韩欧美一区| 亚洲综合av在线播放| 成人一级片在线观看| 老熟妇一区二区| 亚洲精品伦理在线| 国产精品第5页| 在线播放亚洲一区| 欧洲亚洲精品视频| 免费av一区二区| 成人小电影网站| 亚洲综合在线做性| 一区二区美女| 国产91沈先生在线播放| 丝袜美腿高跟呻吟高潮一区| 无套白嫩进入乌克兰美女| 91蜜桃视频在线| 极品颜值美女露脸啪啪| 日本高清不卡视频| www.色日本| 色天天综合狠狠色| 精精国产xxxx视频在线播放| 成人两性免费视频| 最新国产一区| 18黄暴禁片在线观看| 久久99蜜桃精品| 谁有免费的黄色网址| 亚洲午夜精品网| 97av免费视频| 亚洲午夜av久久乱码| 黄色在线观看www| 亚洲va男人天堂| 成人在线丰满少妇av| 亚洲熟妇av日韩熟妇在线| 国产精品538一区二区在线| 精品国产aaa| 欧美色视频日本版| 二区三区在线视频| 九九热精品在线| 国产精品视频首页| 台湾成人av| 美女视频一区免费观看| av av在线| 亚洲综合一区二区| 国产熟女一区二区三区五月婷| 国产亚洲成av人片在线观看桃| 狠狠操一区二区三区| 国产精品福利视频| 欧美精品啪啪| 中文字幕一二三| 亚洲人精品午夜| 国产又粗又大又爽视频| 亚洲系列中文字幕| 欧美日韩视频网站| 欧美激情一区二区三区在线视频 | 91福利视频网| 国产人妖ts一区二区| 91.com在线| 岛国精品在线播放| 国产黄色片视频| 亚洲福利在线看| 国产ktv在线视频| 久久香蕉综合色| 欧美亚洲网站| 日韩精品电影一区二区| 91黄色免费网站| 成人在线免费视频| 国产精品亚洲激情| 93在线视频精品免费观看| 午夜国产福利在线观看| 亚洲欧美日韩一区| 亚洲av无码乱码在线观看性色| 欧美精品在线免费| 国产精品玖玖玖在线资源| 成人在线国产视频| 91麻豆swag| 中文字幕 国产精品| 自拍偷拍亚洲精品| 精品视频一区二区三区| 麻豆一区二区三区在线观看| 国产成人三级在线观看| 日韩三级视频在线| 国产亚洲视频在线观看| 3d动漫一区二区三区在线观看| 99亚洲精品视频| 国产精品538一区二区在线| 日韩精品成人一区| 亚洲人av在线影院| 亚洲91在线| 欧美日韩不卡在线视频| www国产精品av| 亚洲在线观看av| 欧美激情一二三| 九九热精品视频在线观看| 在线黄色免费看| 亚洲一二三区在线观看| 久草在线免费福利资源| 国产美女精品免费电影| 亚洲欧美综合| 加勒比一区二区| 欧美日韩免费在线视频| 高清电影在线免费观看| 欧美日韩喷水| 国产精品一区二区三区乱码| 欧美一级视频免费观看| 中文字幕日韩高清| 国产精品tv| 性猛交ⅹ×××乱大交| 亚洲国产欧美日韩另类综合 | 中文字幕成人网| 精品国产亚洲一区二区麻豆| 欧美整片在线观看| 伊人久久大香线蕉综合四虎小说 | 国产精品久久久久毛片| 欧美精品福利在线|