RAG實戰(zhàn)篇:優(yōu)化查詢轉換的五種高級方法,讓大模型真正理解用戶意圖

風叔
0 評論 1866 瀏覽 3 收藏 9 分鐘
🔗 产品经理的不可取代的价值是能够准确发现和满足用户需求,把需求转化为产品,并协调资源推动产品落地,创造商业价值。

在這篇文章中,我們將深入探討如何通過高級查詢轉換技巧,優(yōu)化大型語言模型的理解能力,從而更準確地把握用戶的意圖。

《RAG實戰(zhàn)篇:構建一個最小可行性的Rag系統(tǒng)》中,風叔詳細介紹了Rag系統(tǒng)的實現(xiàn)框架,以及如何搭建一個最基本的Naive Rag系統(tǒng)。

在這篇文章中,圍繞Query Translation(查詢轉換)環(huán)節(jié),如下圖紅框所示,風叔詳細介紹一下如何讓大模型更準確地理解用戶輸入意圖。

Query Translation(查詢轉換)主要處理用戶的輸入。在Naive Rag中,往往直接使用原始Query進行檢索,這樣會存在三個問題:

第一,原始query的措辭不當,尤其是涉及到很多專業(yè)詞匯時,query可能存在概念使用錯誤的問題;

第二,往往知識庫內(nèi)的數(shù)據(jù)無法直接回答,需要組合知識才能找到答案;

第三,當query涉及比較多的細節(jié)時,由于檢索效率有限,大模型往往無法進行高質(zhì)量的回答。

下面,我們結合源代碼,在查詢轉換環(huán)節(jié)實現(xiàn)Multi-query(多查詢)、Rag-Fusion、Decomposition(查詢分解)、Stepback和HYDE這五種優(yōu)化方案。

一、Multi-query(多查詢)

Multi-query是指借助提示工程通過大型語言模型來擴展查詢,將原始Query擴展成多個相似的Query,然后并行執(zhí)行,是一種非常簡單直觀的優(yōu)化方案,如下圖所示。

通過構建Prompt,告訴大模型在收到Query之后,生成5個相似的擴展問題。后續(xù)的步驟和Naive Rag一樣,對所有Query進行檢索和生成。

二、Rag-Fusion

Rag-Fusion也是Multi-Query的一種,相比Multi-query只是多了一個步驟,即在對多個query進行檢索之后,應用倒數(shù)排名融合算法,根據(jù)文檔在多個查詢中的相關性重新排列文檔,生成最終輸出。

以下代碼中的reciprocal_rank_fusion,就是rag-fusion多出來的一步。

三、Decomposition(問題分解)

通過分解和規(guī)劃復雜問題,將原始Query分解成為多個子問題。比如原始Query的問題是“請詳細且全面的介紹Rag“,這個問題就可以拆解為幾個子問題,“Rag的概念是什么?”,“為什么會產(chǎn)生Rag?”,“Rag的原理是怎樣的?”,“Rag有哪些使用場景”等等。

首先,構建Prompt,告訴大模型要將輸入的問題分解成3個子問題。

在最終回答子問題的時候有兩種方式。

第一種是遞歸回答,即先接收一個子問題,先回答這個子問題并接受這個答案,并用它來幫助回答第二個子問題。

給出prompt:

下面是遞歸回答的主邏輯,生成最終回答:

第二種方式是獨立回答,然后再把所有的這些答案串聯(lián)起來,得出最終答案。這更適合于一組有幾個獨立的問題,問題之間的答案不互相依賴的情況。

四、Step-back(Query后退)

如果原始查詢太復雜或返回的信息太廣泛,我們可以選擇生成一個抽象層次更高的“退后”問題,與原始問題一起用于檢索,以增加返回結果的數(shù)量。

例如,對于問題“勒布朗詹姆斯在2005年至2010年在哪些球隊?”這個問題因為有時間范圍的詳細限制,比較難直接解決,可以提出一個后退問題,“勒布朗詹姆斯的職業(yè)生涯是怎么樣的?”,從這個回答的召回結果中再檢索上一個問題的答案。

先給大模型提供一些step-back的示例:

然后對輸入問題進行step-back

結合prompt,生成最終回答

五、HYDE

全稱是Hypothetical Document Embeddings,即用LLM生成一個“假設”答案,將其和問題一起進行檢索。

HyDE的核心思想是接收用戶提問后,先讓LLM在沒有外部知識的情況下生成一個假設性的回復。然后,將這個假設性回復和原始查詢一起用于向量檢索。假設回復可能包含虛假信息,但蘊含著LLM認為相關的信息和文檔模式,有助于在知識庫中尋找類似的文檔。

到這里,優(yōu)化查詢轉化的五種高級方法就介紹完了。

六、總結

在這篇文章中,風叔詳細介紹了優(yōu)化Query Translation(查詢轉換)的具體方法,包括Multi-Query、Rag-Fusion、Decomposition、Step-Back和HYDE這五種比較高級的方法。

在下一篇文章中,風叔將重點介紹Routing(路由)環(huán)節(jié),通過對用戶輸入進行路由,從而讓系統(tǒng)自動選擇最合適的處理方案。因為Routing的存在,RAG系統(tǒng)具備了處理復雜問題和場景的能力。

本文由人人都是產(chǎn)品經(jīng)理作者【風叔】,微信公眾號:【風叔云】,原創(chuàng)/授權 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!
专题
52996人已学习18篇文章
做了好多年的产品经理,该不会连注册登录功能设计都没整明白吧?
专题
17930人已学习17篇文章
数据可视化的方式,能够更加清晰明确的进行数据分析。本专题的文章分享了数据可视化的设计思路。
专题
11923人已学习12篇文章
随着现代科技的不断发展进步,智慧城市的建设也在不断发展,本专题的文章分享了智慧城市设计指南。
专题
14285人已学习13篇文章
数据仓库是所有产品的数据中心,公司体系下的所有产品产生的所有数据最终都流向数据仓库。本专题的文章分享了什么是数据仓库和如何搭建数据仓库。
专题
16929人已学习12篇文章
如何搞懂财务和业务之间的关系,并推进业务系统财务模块的建设呢?本专题的文章分享了财务系统的设计指南。
专题
12930人已学习12篇文章
OTA,在线旅游(Online Travel Agency)指“旅游消费者通过网络向旅游服务提供商预定旅游产品或服务,并通过网上支付或者线下付费。