午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

RAG 高效應(yīng)用指南 03:Query 理解

 黃爸爸好 2024-06-05 發(fā)布于上海

構(gòu)建一個(gè)檢索增強(qiáng)生成 (Retrieval-Augmented Generation, RAG) 應(yīng)用的 PoC(概念驗(yàn)證,Proof of Concept)過(guò)程相對(duì)簡(jiǎn)單,但要將其推廣到生產(chǎn)環(huán)境中則會(huì)面臨多方面的挑戰(zhàn)。這主要是因?yàn)?RAG 系統(tǒng)涉及多個(gè)不同的組件,每個(gè)組件都需要精心設(shè)計(jì)和優(yōu)化,以確保整體性能達(dá)到令人滿意的水平。

『RAG 高效應(yīng)用指南』系列將就如何提高 RAG 系統(tǒng)性能進(jìn)行深入探討,提供一系列具體的方法和建議。同時(shí)讀者也需要記住,提高 RAG 系統(tǒng)性能是一個(gè)持續(xù)的過(guò)程,需要不斷地評(píng)估、優(yōu)化和迭代

根據(jù)具體應(yīng)用場(chǎng)景選擇合適的優(yōu)化方法及其組合,是優(yōu)化 RAG 系統(tǒng)的核心策略。

本文是『RAG 高效應(yīng)用指南』系列的第 3 篇文章,本文將探討一些主流的 Query 理解技術(shù)。

在這篇文章中,筆者將討論以下幾個(gè)問(wèn)題:

  • · 為什么要進(jìn)行 query 理解

  • · query 理解有哪些技術(shù)(從 RAG 角度)

  • · 各種 query 理解技術(shù)的實(shí)現(xiàn)(基于 LangChain)

為什么要進(jìn)行 query 理解

在 RAG 系統(tǒng)中,進(jìn)行 query 理解是非常關(guān)鍵的一步。query 理解指的是對(duì)用戶提出的問(wèn)題進(jìn)行深入分析,提取出關(guān)鍵信息,從而更準(zhǔn)確地從知識(shí)庫(kù)中檢索出與用戶查詢最相關(guān)的信息,進(jìn)而生成高質(zhì)量的回答。

在 RAG 系統(tǒng)中,對(duì)用戶 query 進(jìn)行理解,包括但不限于以下原因:

1、用戶表達(dá)的模糊性

由于自然語(yǔ)言的復(fù)雜性,相同的詞匯在不同的上下文中可能有不同的含義,query 理解可以幫助系統(tǒng)識(shí)別并糾正這些錯(cuò)誤,確保準(zhǔn)確地理解用戶的真正需求。

比如,用戶輸入「我想知道子龍是誰(shuí)?」這里的「子龍」可能指代多種含義,如歷史人物趙子龍或者某個(gè)昵稱。又比如,用戶輸入 「book」,而 book 有多種含義,可能指一本書,也可能指預(yù)訂一個(gè)座位。

通過(guò) query 理解,系統(tǒng)可以分析上下文,判斷用戶的意圖,從而檢索到相關(guān)的正確信息。

2、query 和 doc 不在同一個(gè)語(yǔ)義空間

用戶的 query 通常是非結(jié)構(gòu)化的,可能使用非正式或口語(yǔ)化的語(yǔ)言進(jìn)行自由表達(dá),而文檔則可能采用正式的書面表達(dá)。query 理解可以幫助將用戶的表述轉(zhuǎn)換為文檔中術(shù)語(yǔ),從而提高召回率。

比如,用戶輸入「手機(jī)壞了怎么辦」,而文檔中可能使用的是「手機(jī)維修步驟」這樣的表述。又比如,用戶可能問(wèn)「如何讓網(wǎng)站更快」,而文檔內(nèi)容可能是「提高網(wǎng)站性能的方法」。

當(dāng)用戶的 query 和文檔不在同一個(gè)語(yǔ)義空間時(shí),這增加了檢索系統(tǒng)的復(fù)雜性,因?yàn)樗枰诓煌谋磉_(dá)方式、術(shù)語(yǔ)使用、上下文信息等方面建立聯(lián)系。

3、用戶的 query 可能比較復(fù)雜

用戶的 query 有時(shí)可能涉及多個(gè)子問(wèn)題或包含多個(gè)步驟,需要將復(fù)雜的 query 分解成更易處理的部分,逐一進(jìn)行處理,以便提供準(zhǔn)確和完整的答案。

比如,用戶 query:「如何用 Python 分析數(shù)據(jù),并生成預(yù)測(cè)報(bào)告?」,而文檔內(nèi)容可能是「使用 Python 分析股票數(shù)據(jù)的方法包括數(shù)據(jù)獲取、數(shù)據(jù)清洗、特征提取等步驟」、「生成預(yù)測(cè)報(bào)告的方法包括建立預(yù)測(cè)模型、進(jìn)行模型訓(xùn)練和測(cè)試、生成報(bào)告」。在這個(gè)例子,用戶的 query 涉及數(shù)據(jù)分析和報(bào)告生成兩個(gè)主要部分。通過(guò) query 理解,系統(tǒng)可以將復(fù)雜的 query 分解為兩個(gè)子問(wèn)題:「如何用 Python 分析數(shù)據(jù)?」和「如何生成預(yù)測(cè)報(bào)告?」,然后分別進(jìn)行處理和回答。

處理復(fù)雜 query 時(shí),RAG 系統(tǒng)需要能夠識(shí)別并分解用戶的查詢,將其拆分為更小、更具體的子問(wèn)題。這樣不僅可以提高檢索的準(zhǔn)確性,還可以使生成的回答更加精確和相關(guān)。

query 理解有哪些技術(shù)

在 RAG 系統(tǒng)中,query 理解技術(shù)是提高信息檢索效率和準(zhǔn)確性的關(guān)鍵。我把當(dāng)前常用的 query 理解技術(shù)分為三大類:query 改寫、query 增強(qiáng)和 query 分解,如圖所示。當(dāng)然,也還有很多其他技術(shù),這里先介紹下面這幾種。

圖片

上下文信息補(bǔ)全

在多輪對(duì)話中,用戶的當(dāng)前輸入往往包含隱含的指代關(guān)系和省略的信息。例如,用戶在對(duì)話中提到的「它」可能指代之前對(duì)話中提到的某個(gè)具體事物。如果缺乏這些上下文信息,系統(tǒng)無(wú)法準(zhǔn)確理解用戶意圖,從而導(dǎo)致語(yǔ)義缺失,無(wú)法有效召回相關(guān)信息。

在這種情況下,我們可以使用上下文信息補(bǔ)全,這里的上下文不僅僅是指多輪對(duì)話的信息,還包含當(dāng)前對(duì)話的背景信息,比如時(shí)間、地點(diǎn)等。我們可以通過(guò)使用大型語(yǔ)言模型(LLM),對(duì)當(dāng)前的 query 進(jìn)行重寫,將上下文中隱含的信息納入到新生成的 query 中。

下面是一段多輪對(duì)話的示例:

User:最近有什么好看的電視???
Bot:最近上映了《慶余年 2》,與范閑再探廟堂江湖的故事
User:我想看第一季
Bot:

在這個(gè)例子,用戶的問(wèn)題「我想看第一季」包含了隱含的指代信息,沒(méi)有上下文信息的補(bǔ)全,系統(tǒng)無(wú)法知道具體指的是哪部電視劇。通過(guò)采用上下文信息補(bǔ)全,我們把前面的對(duì)話信息也納入其中,對(duì) query 進(jìn)行改寫,可以生成類似「我想看慶余年第一季」的完整 query,從而提高后續(xù)檢索的清晰度和相關(guān)性。

上下文信息補(bǔ)全可以提高 query 的清晰度,使系統(tǒng)能夠更準(zhǔn)確地理解用戶意圖,不過(guò),因?yàn)樾枰嗾{(diào)用一次 LLM,會(huì)增加整體流程的 latency 問(wèn)題。因此,我們也需要權(quán)衡計(jì)算復(fù)雜度和延遲的問(wèn)題。

RAG-Fusion

RAG Fusion 旨在提升搜索精度和全面性,它的核心原理是根據(jù)用戶的原始 query 生成多個(gè)不同角度的 query ,以捕捉 query 的不同方面和細(xì)微差別。然后通過(guò)使用逆向排名融合(Reciprocal Rank Fusion,RRF)技術(shù),將多個(gè) query 的檢索結(jié)果進(jìn)行融合,生成一個(gè)統(tǒng)一的排名列表,從而增加最相關(guān)文檔出現(xiàn)在最終 TopK 列表的機(jī)會(huì)。

圖片

RAG Fusion 的整體流程如圖所示,工作流程如下

1、多查詢生成:直接使用用戶輸入的 query 進(jìn)行查詢,查詢結(jié)果可能太窄導(dǎo)致無(wú)法產(chǎn)生較為全面的結(jié)果。通過(guò)使用 LLM 將原始查詢擴(kuò)展成多樣化的查詢,從而增加搜索的視野和深度。 

2、逆向排名融合(RRF):RRF 是一種簡(jiǎn)單而有效的技術(shù),用于融合多個(gè)檢索結(jié)果的排名,以提高搜索結(jié)果的質(zhì)量。它通過(guò)將多個(gè)系統(tǒng)的排名結(jié)果進(jìn)行加權(quán)綜合,生成一個(gè)統(tǒng)一的排名列表,使最相關(guān)的文檔更有可能出現(xiàn)在結(jié)果的頂部。這種方法不需要訓(xùn)練數(shù)據(jù),適用于多種信息檢索任務(wù),且在多個(gè)實(shí)驗(yàn)中表現(xiàn)優(yōu)于其他融合方法。 

3、生成性輸出:將重新排名的文檔和查詢輸入到 LLM ,生成結(jié)構(gòu)化、富有洞見(jiàn)的答案或摘要。

拓展閱讀

  • · https:///forget-rag-the-future-is-rag-fusion-1147298d8ad1

  • · https://plg./~gvcormac/cormacksigir09-rrf.pdf

  • · https://github.com/Raudaschl/rag-fusion

Multi-Query

跟 RAG Fusion 類似,MultiQuery 是一種通過(guò)生成多種視角的查詢來(lái)檢索相關(guān)文檔的方法。它使用 LLM 從用戶輸入的查詢生成多個(gè)不同的查詢視角,然后為每個(gè)查詢檢索一組相關(guān)文檔,并合并這些結(jié)果以獲得更全面的文檔集合。

跟 RAG Fusion 不同的是,MultiQuery 沒(méi)有使用 RRF 來(lái)融合多個(gè)搜索結(jié)果列表的排名,而是將多個(gè)搜索結(jié)果放到 context 中。這樣做的好處是能夠在上下文中保留更多的檢索結(jié)果,提供更豐富的信息源,同時(shí)減少了在排名融合上的復(fù)雜性。通過(guò)這種方法,用戶可以獲得更加多樣化和全面的信息集合,有助于更好地理解和回答復(fù)雜的問(wèn)題。

圖片

拓展閱讀

  • · https://python./v0.2/docs/how_to/MultiQueryRetriever/

  • · https://github.com/langchain-ai/rag-from-scratch

HyDE

通常,RAG 向量檢索通過(guò)使用內(nèi)積相似度來(lái)度量查詢(query)和文檔(doc)之間的相似性。事實(shí)上,這里存在一個(gè)挑戰(zhàn):query 和 doc 不在同一個(gè)語(yǔ)義空間(前面已經(jīng)介紹),通過(guò)將 query 和 doc 向量化,然后基于向量相似性來(lái)檢索,檢索的精度有限而且噪聲可能比較大。為了解決這個(gè)問(wèn)題,一種可行的方法是通過(guò)標(biāo)注大量的數(shù)據(jù)來(lái)訓(xùn)練 embedding 函數(shù)。

而 HyDE(假設(shè)性文檔嵌入,Hypothetical Document Embeddings)技術(shù)是一種無(wú)監(jiān)督的方法,它基于這樣一個(gè)假設(shè):與 query 相比,假設(shè)性回答(LLM 直接對(duì) query 生成的答案)與文檔共享更相似的語(yǔ)義空間。

HyDE 具體是怎么工作的呢?

圖片

首先,HyDE 針對(duì) query 直接生成一個(gè)假設(shè)性文檔或者說(shuō)回答(hypo_doc)。然后,對(duì)這個(gè)假設(shè)性回答進(jìn)行向量化處理。最后,使用向量化的假設(shè)性回答去檢索相似文檔。

經(jīng)過(guò)這么一頓操作,以前的 query - doc 檢索就變成了 query - hypo_doc - doc 的檢索,而此時(shí) hypo_doc 和 doc 可能在語(yǔ)義空間上更接近。因此,HyDE 可以在一定程度上提升文檔檢索的精準(zhǔn)度和相關(guān)度。

舉個(gè)例子,假設(shè)用戶提問(wèn)「如何提高睡眠質(zhì)量?」,HyDE 首先生成一個(gè)假設(shè)性回答,比如「提高睡眠質(zhì)量的方法包括保持規(guī)律的睡眠時(shí)間、避免咖啡因和電子設(shè)備等?!梗@個(gè)假設(shè)回答經(jīng)過(guò)編碼后,可能與提供的知識(shí)庫(kù)中的文檔內(nèi)容(如不喝咖啡,不玩手機(jī)等電子設(shè)備)更接近,從而更容易找到相關(guān)文檔。

圖片

HyDE 的核心優(yōu)勢(shì)在于:

  1. 1. 避免了在同一向量空間中學(xué)習(xí)兩個(gè)嵌入函數(shù)的復(fù)雜性。

  2. 2. 利用無(wú)監(jiān)督學(xué)習(xí),直接生成和利用假設(shè)文檔。

  3. 3. 在缺乏標(biāo)注數(shù)據(jù)的情況下,仍能顯著提高檢索的準(zhǔn)確性和效率。

然而,因?yàn)?HyDE 強(qiáng)調(diào)問(wèn)題的假設(shè)性回答和查找內(nèi)容的相似性,因此也存在著不可避免的問(wèn)題,即,假設(shè)性回答的質(zhì)量取決于大型語(yǔ)言模型的生成能力,如果模型生成的回答不準(zhǔn)確或不相關(guān),會(huì)影響檢索效果。例如,如果討論的主題對(duì) LLM 來(lái)說(shuō)比較陌生,這種方法就無(wú)效了,可能會(huì)導(dǎo)致生成錯(cuò)誤信息的次數(shù)增加。

拓展閱讀

  • · https:///pdf/2212.10496

  • · https://docs./en/stable/examples/query_transformations/HyDEQueryTransformDemo/#failure-case-1-hyde-may-mislead-when-query-can-be-mis-interpreted-without-context

  • · https://github.com/langchain-ai/rag-from-scratch

Step-back prompting

Step-back prompting 技術(shù)旨在提高 LLM 進(jìn)行抽象推理的能力,它引導(dǎo) LLM 在回答問(wèn)題前進(jìn)行深度思考和抽象處理,將復(fù)雜問(wèn)題分解為更高層次的問(wèn)題。

Step-Back Prompting 包含兩個(gè)主要步驟:

  1. 1. 抽象(Abstraction):不是直接針對(duì)問(wèn)題進(jìn)行回答,而是首先促使 LLM 提出一個(gè)更高級(jí)別的「回溯問(wèn)題」(step-back question),這個(gè)問(wèn)題涉及更廣泛的高級(jí)概念或原則,并檢索與這些概念或原則相關(guān)的相關(guān)事實(shí)。

  2. 2. 推理(Reasoning):在高級(jí)概念或原則的基礎(chǔ)上,利用語(yǔ)言模型的內(nèi)在推理能力,對(duì)原始問(wèn)題進(jìn)行推理解答。這種方法被稱為基于抽象的推理(Abstraction-grounded Reasoning)。

圖片

研究者在多個(gè)挑戰(zhàn)性推理密集型任務(wù)上測(cè)試了 Step-Back Prompting,包括 STEM、知識(shí)問(wèn)答(Knowledge QA)和多跳推理(Multi-Hop Reasoning)。實(shí)驗(yàn)涉及 PaLM-2L、GPT-4 和 Llama2-70B 模型,并觀察到在各種任務(wù)上的性能顯著提升。例如,在 MMLU(物理和化學(xué))上,PaLM-2L 的性能分別提高了 7% 和 11%,在 TimeQA 上提高了 27%,在 MuSiQue 上提高了 7%。

Step-Back Prompting 適用于需要復(fù)雜推理的領(lǐng)域,如:

  • · STEM 領(lǐng)域:涉及物理和化學(xué)等科學(xué)原理的應(yīng)用問(wèn)題。

  • · 知識(shí)問(wèn)答:需要大量事實(shí)性知識(shí)的問(wèn)題回答。

  • · 多跳推理:需要通過(guò)多個(gè)步驟或信息源進(jìn)行推理的問(wèn)題。

拓展閱讀

  • · https:///pdf/2310.06117

  • · https://blog.v/query-transformations/

  • · https://github.com/langchain-ai/rag-from-scratch

IR-CoT

IR-CoT(Interleaving Retrieval with Chain-of-Thought Reasoning),是一種用于解決多步驟問(wèn)題(Multi-Step Questions)的技術(shù)。IR-CoT 通過(guò)交替執(zhí)行檢索(retrieval)和推理(reasoning)步驟來(lái)提高大型語(yǔ)言模型(LLMs)在處理復(fù)雜問(wèn)題時(shí)的性能,如圖所示。

IR-CoT 的核心思想是將檢索步驟與推理步驟相結(jié)合,以指導(dǎo)檢索過(guò)程并反過(guò)來(lái)使用檢索結(jié)果來(lái)改進(jìn)推理鏈(Chain-of-Thought, CoT)。論文作者認(rèn)為,對(duì)于多步 QA 任務(wù),單純基于問(wèn)題的一次性檢索是不夠的,因?yàn)楹罄m(xù)檢索的內(nèi)容取決于已經(jīng)推導(dǎo)出的信息。

IR-CoT的工作流程如下:

  1. 1. 初始化檢索:使用問(wèn)題作為查詢,從知識(shí)庫(kù)中檢索一組相關(guān)段落。

  2. 2. 交替執(zhí)行兩個(gè)步驟

    • · 擴(kuò)展 CoT:利用問(wèn)題、到目前為止收集的段落和已經(jīng)生成的 CoT 句子來(lái)生成下一個(gè) CoT 句子。

    • · 擴(kuò)展檢索信息:使用上一個(gè) CoT 句子作為查詢來(lái)檢索額外的段落,并將它們添加到已收集的段落集中。

  3. 3. 重復(fù)上述步驟:直到 CoT 報(bào)告答案或達(dá)到最大允許的推理步驟數(shù)。

  4. 4. 終止:返回所有收集的段落作為檢索結(jié)果,并使用這些段落作為上下文,通過(guò)直接 QA 提示或CoT 提示來(lái)回答原始問(wèn)題。

圖片

這里,我們以論文中的一個(gè)例子來(lái)進(jìn)行說(shuō)明:

圖片

如圖所示,

  1. 1. 初始問(wèn)題:Lost Gravity 是在哪個(gè)國(guó)家制造的?

  2. 2. CoT 生成與檢索步驟交替:

    • · 第一步檢索:系統(tǒng)首先進(jìn)行一次檢索,獲得相關(guān)信息,結(jié)果發(fā)現(xiàn)「Lost Gravity 是由 Mack Rides 制造的」。

    • · 第二步檢索:基于之前的結(jié)果,系統(tǒng)進(jìn)行進(jìn)一步的檢索,發(fā)現(xiàn)「Mack Rides 是一家來(lái)自德國(guó)的公司」。

    • · 第三步檢索:繼續(xù)累積文檔,確認(rèn)這一信息。

  3. 3. 最終回答:根據(jù)累積的信息做出回答:「答案是德國(guó)」。

IR-CoT 通過(guò)交替進(jìn)行 CoT 生成和檢索步驟,使得每一步的檢索過(guò)程都受到前一步的推理結(jié)果指導(dǎo),從而可以更精確地定位相關(guān)信息。

這相比于傳統(tǒng)的單次檢索方法,即只使用初始問(wèn)題作為查詢的方式,能夠獲得更多相關(guān)且精確的信息,提高了最終答案的準(zhǔn)確性。

拓展閱讀

  • · https:///pdf/2212.10509

  • · https://github.com/langchain-ai/rag-from-scratch

Least-to-Most

Least-to-Most prompting 也可以用于解決多步推理的問(wèn)題,它將復(fù)雜問(wèn)題分解為一系列更簡(jiǎn)單的子問(wèn)題,并按順序解決這些子問(wèn)題。

Least-to-Most prompting 包括兩個(gè)主要階段:

  1. 1. 分解(Decomposition):在這個(gè)階段,將復(fù)雜問(wèn)題分解為更簡(jiǎn)單的子問(wèn)題。

  2. 2. 子問(wèn)題解決(Subproblem Solving):在這個(gè)階段,使用之前解決的子問(wèn)題的答案來(lái)幫助解決當(dāng)前子問(wèn)題。

這種方法的核心思想是將問(wèn)題分解為可管理的步驟,并利用逐步構(gòu)建的答案來(lái)指導(dǎo)模型解決更復(fù)雜的問(wèn)題。

圖片

這里,我們以論文中的一個(gè)例子來(lái)進(jìn)行說(shuō)明:

圖片

如圖所示,展示了如何通過(guò)兩階段的方法使用 LLM 解決一個(gè)數(shù)學(xué)題。

問(wèn)題:Amy 爬到滑梯頂部需要4分鐘,從滑梯滑下需要1分鐘。水滑梯將在15分鐘后關(guān)閉。她在關(guān)閉之前可以滑多少次?

階段 1:將問(wèn)題分解為子問(wèn)題

LLM 將復(fù)雜問(wèn)題分解為更小的子問(wèn)題:為了回答「她在關(guān)閉之前可以滑多少次?」,我們需要先解決「每次滑行需要多長(zhǎng)時(shí)間?」的問(wèn)題。

階段 2:依次解決子問(wèn)題

子問(wèn)題1: 問(wèn):每次滑行需要多長(zhǎng)時(shí)間?答:Amy 爬上滑梯需要4分鐘,滑下來(lái)需要1分鐘。因此每次滑行需要5分鐘。

子問(wèn)題2: 問(wèn):她在關(guān)閉之前可以滑多少次?答:水滑梯將在15分鐘后關(guān)閉。每次滑行需要5分鐘。因此 Amy 可以滑15 ÷ 5 = 3次。

拓展閱讀

  • · https:///pdf/2205.10625

  • · https://github.com/langchain-ai/rag-from-scratch

各種 query 理解技術(shù)的實(shí)現(xiàn)

知道了各種 query 理解技術(shù)的原理,我們就可以嘗試使用 LangChain 來(lái)實(shí)現(xiàn)了。筆者將所有實(shí)現(xiàn)代碼放在jupyter notebook 中了,需要的讀者,請(qǐng)關(guān)注公眾號(hào),然后發(fā)消息 query 獲取 notebook 代碼。

圖片

在代碼中,我使用了 bge-m3 向量模型和 DeepSeek 大模型,它們都可以很方便地獲取到。在使用上述 notebook 代碼之前,大家需要先安裝如下 python 依賴庫(kù):

langchain
langchain-openai
langchain_community
tiktoken
langchainhub
chromadb
beautifulsoup4
unstructured
lxml
sentence-transformers

另外,讀者還需要去 DeepSeek 官網(wǎng)(https://platform./usage)申請(qǐng) API Key,剛注冊(cè)的時(shí)候,會(huì)送 500 萬(wàn) token。

這里,給大家展示下上下文信息補(bǔ)全的實(shí)現(xiàn),更多代碼可以參考筆者的 notebook(關(guān)注公眾號(hào),然后發(fā)消息 query 進(jìn)行獲取)。

上下文信息補(bǔ)全代碼如下:

from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate

llm = ChatOpenAI(
    model='deepseek-chat'
    temperature=0
    api_key=your_api_key,
    base_url='https://api.',
    streaming=False
)

system_prompt = '''
使用聊天對(duì)話中的上下文重新表述用戶問(wèn)題,使其成為一個(gè)獨(dú)立完整的問(wèn)題,不要翻譯聊天歷史和用戶問(wèn)題。
<conversation></conversation> 標(biāo)簽中的內(nèi)容屬于聊天對(duì)話歷史。
<question></question> 標(biāo)簽中的內(nèi)容屬于用戶的問(wèn)題。
省略開場(chǎng)白,不要解釋,根據(jù)聊天對(duì)話歷史和當(dāng)前用戶問(wèn)題,生成一個(gè)獨(dú)立完整的問(wèn)題。
將獨(dú)立問(wèn)題放在 <standalone_question> 標(biāo)簽中。
'''


user_prompt = '''
<conversation>
User:最近有什么好看的電視???
Bot:最近上映了《慶余年 2》,與范閑再探廟堂江湖的故事
</conversation>

<question>
User:我想看第一季
</question>
'''


messages = [
    {'role''system''content': system_prompt},
    {'role''user''content': user_prompt},
]

response = llm.invoke(messages)

結(jié)果如下:

圖片

總結(jié)

構(gòu)建一個(gè)高效的 RAG 系統(tǒng),不僅僅是技術(shù)上的挑戰(zhàn),更是對(duì)我們理解和應(yīng)對(duì)信息復(fù)雜性的考驗(yàn)。本文詳細(xì)闡述了 Query 理解的重要性、原理和技術(shù)實(shí)現(xiàn),揭示了在 RAG 系統(tǒng)中,精確的 Query 理解是提升信息檢索與生成質(zhì)量的關(guān)鍵。

Query 理解作為連接用戶需求和知識(shí)庫(kù)的橋梁,其核心在于能夠準(zhǔn)確捕捉用戶的意圖,并在海量信息中找到最相關(guān)的內(nèi)容。

一個(gè)性能優(yōu)良的 RAG 系統(tǒng),離不開對(duì) Query 理解的持續(xù)優(yōu)化。這一過(guò)程不僅是技術(shù)的迭代,更是對(duì)用戶需求的深刻理解。還是那句話:提高 RAG 系統(tǒng)性能是一個(gè)持續(xù)的過(guò)程,需要不斷地評(píng)估、優(yōu)化和迭代。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多