GraphRAG與傳統(tǒng)RAG怎么選?二者的融合方案是什么 原創(chuàng)
?最近工作比較忙,一直在重構(gòu)公司現(xiàn)有的RAG推薦系統(tǒng)。在給GraphRAG提交了幾個(gè)PR并成功合并后,暫時(shí)沒有繼續(xù)對GraphRAG做出更多貢獻(xiàn)。然而,最近同事和粉絲紛紛私信我,他們最常問的問題有:"什么時(shí)候應(yīng)該使用GraphRAG?","在哪些場景下應(yīng)該使用傳統(tǒng)的RAG"以及"我們目前在公司使用的是傳統(tǒng)RAG,那要如何與GraphRAG相結(jié)合呢?"。為了系統(tǒng)地解答這些問題,我決定寫一篇文章,對這些問題進(jìn)行詳細(xì)的探討。我將先從多個(gè)方面解釋GraphRAG和傳統(tǒng)RAG的區(qū)別,然后給出二者如何結(jié)合的簡單思路。
我們最近建了交流群,感興趣的朋友可以入群交流哈,二維碼放在文末了,如果過期可以加我v: longyunfeigu
知識(shí)庫數(shù)據(jù)特征
GraphRAG
在GraphRAG框架下,我們能夠?qū)a(chǎn)品、品牌、類別以及用戶興趣視作相互聯(lián)系的實(shí)體,也即圖形的節(jié)點(diǎn)。例如:
- 產(chǎn)品:華為P50 Pro
- 攝像頭:萊卡四攝
- 品牌:華為
- 類別:智能手機(jī)
- 用戶興趣:高清攝影、適合游戲、旗艦機(jī)型
華為P50 Pro 可被關(guān)聯(lián)至“華為”這一品牌、“智能手機(jī)”這一類別,“高清攝影”、“游戲”以及“旗艦機(jī)型”這些用戶興趣點(diǎn)上,這種圖形化的表示方式對于推薦相關(guān)產(chǎn)品十分有用。
傳統(tǒng)RAG
傳統(tǒng)的RAG可能會(huì)選擇將以上數(shù)據(jù)以一個(gè)文本塊的形式進(jìn)行存儲(chǔ):
HUAWEI P50 Pro是一款具備徠卡四射的華為旗艦機(jī),搭載有XD Fusion Pro原色引擎、XD Optics計(jì)算光學(xué)技術(shù)、XD Fusion Pro超級(jí)濾光系統(tǒng)等華為影像技術(shù),可以提升手機(jī)在拍攝時(shí)的成像質(zhì)量。主攝采用了5000萬像素原色鏡頭,可以記錄拍攝場景的肉眼色彩觀感。
因此,當(dāng)用戶搜尋“優(yōu)秀攝影效果的手機(jī)”時(shí),系統(tǒng)會(huì)基于語義匹配來找出這個(gè)文本塊。
然而,GraphRAG的優(yōu)勢就體現(xiàn)在,它可以輕松地在圖形結(jié)構(gòu)中尋找“其他使用萊卡攝像頭的手機(jī)”。相較之下,傳統(tǒng)的RAG如果沒有明確符合這一需求的文本塊,就需要依賴編程來進(jìn)行查詢分解與處理計(jì)劃。
知識(shí)庫檢索
拿產(chǎn)品推薦系統(tǒng)舉例,考慮一個(gè)用戶的查詢:“有哪些適合長時(shí)間佩戴并且具有降噪功能的耳機(jī)?”
- 在GraphRAG系統(tǒng)中,這個(gè)查詢可以從“耳機(jī)”節(jié)點(diǎn)出發(fā),探索多個(gè)與耳機(jī)相關(guān)的產(chǎn)品節(jié)點(diǎn)。系統(tǒng)會(huì)首先檢索這些產(chǎn)品的“特性”節(jié)點(diǎn),尋找那些與“長時(shí)間佩戴舒適性”相關(guān)的耳機(jī);然后,系統(tǒng)會(huì)進(jìn)一步檢索與“降噪功能”相關(guān)的特性節(jié)點(diǎn),找到符合條件的耳機(jī)產(chǎn)品。通過這種多維度的關(guān)聯(lián)篩選,GraphRAG能夠?yàn)橛脩敉扑]既舒適又具備降噪功能的耳機(jī),精確滿足用戶的需求。
- 在**傳統(tǒng)的 RAG **系統(tǒng)中,系統(tǒng)會(huì)嘗試通過關(guān)鍵詞如“智能手機(jī)”、“高質(zhì)量視頻”、“良好口碑”等來搜索對應(yīng)的文本塊。然而,如果存儲(chǔ)的文本塊中沒有同時(shí)包含這些關(guān)鍵詞的相關(guān)信息,系統(tǒng)可能會(huì)返回一些只與部分關(guān)鍵詞匹配的內(nèi)容,這樣的推薦可能并不能完全滿足用戶的需求。比如,系統(tǒng)可能會(huì)推薦一款雖然具備高質(zhì)量視頻功能,但在用戶評(píng)價(jià)方面表現(xiàn)平平的智能手機(jī)。
所以我們可以得出結(jié)論:GraphRAG 在應(yīng)對復(fù)雜查詢、跨越多個(gè)特性進(jìn)行檢索時(shí),具有顯著優(yōu)勢。
知識(shí)庫治理
隨著數(shù)據(jù)量的不斷增加,GraphRAG 能夠通過自然地新增節(jié)點(diǎn)與關(guān)系,將新信息無縫集成到現(xiàn)有的知識(shí)圖譜中,無需對已有數(shù)據(jù)進(jìn)行大規(guī)模重組。其結(jié)構(gòu)化和層次化的特性使得數(shù)據(jù)檢索更加高效。GraphRAG 利用先進(jìn)的圖遍歷算法和層次化導(dǎo)航技術(shù),能夠迅速縮小檢索范圍,提升查詢速度。
例如,一個(gè)用戶可能會(huì)從廣泛的“電子產(chǎn)品”開始查詢,然后逐步縮小范圍到“智能手機(jī)”,再進(jìn)一步到“適合游戲的高性能智能手機(jī)”。這種層次化的檢索方式,即便在面對龐大的數(shù)據(jù)集,也能通過有效的導(dǎo)航快速定位到相關(guān)信息。此外,GraphRAG 還可以利用社區(qū)反饋和用戶行為數(shù)據(jù)進(jìn)一步優(yōu)化檢索路徑,提高命中率。但是GraphRAG對于新增的數(shù)據(jù)會(huì)重新進(jìn)行社區(qū)檢測,這一步還是比較耗費(fèi)資源的。
相比之下,傳統(tǒng)的 RAG 系統(tǒng)主要依賴于文本塊來存儲(chǔ)數(shù)據(jù),這些數(shù)據(jù)塊往往是非結(jié)構(gòu)化或半結(jié)構(gòu)化的。隨著知識(shí)庫的擴(kuò)展,新增的數(shù)據(jù)可能需要重新組織現(xiàn)有的文本塊,甚至可能導(dǎo)致相似內(nèi)容的多版本重復(fù)存儲(chǔ),存儲(chǔ)效率較低且管理困難。數(shù)據(jù)規(guī)模的增加還顯著影響系統(tǒng)的檢索性能,面對復(fù)雜或模糊的查詢時(shí),容易受到噪音數(shù)據(jù)的干擾。
例如,當(dāng)用戶查詢“高性能智能手機(jī)”和“游戲”相關(guān)的內(nèi)容時(shí),如果數(shù)據(jù)庫中存在大量類似但不相關(guān)的文本塊,系統(tǒng)可能會(huì)返回大量冗余結(jié)果。要過濾這些不相關(guān)的內(nèi)容,傳統(tǒng)的 RAG 系統(tǒng)可能需要引入復(fù)雜的重排序算法,這不僅增加了系統(tǒng)的復(fù)雜性,也顯著降低了檢索效率。
概要性(QFS)查詢
GraphRAG
知識(shí)圖譜的結(jié)構(gòu)化特征使其在處理數(shù)據(jù)本身的“元”問題時(shí)表現(xiàn)出色,例如“2023年市場上新發(fā)布了多少款搭載驍龍8Gen2芯片的手機(jī)?”。
Microsoft GraphRAG 針對非結(jié)構(gòu)化文本構(gòu)建了一個(gè)專門的框架,其設(shè)計(jì)的核心目標(biāo)之一是能夠更好地回答基于高層語義理解的總結(jié)性問題。通過社區(qū)檢測算法,GraphRAG 可以識(shí)別并劃分知識(shí)圖譜中的多個(gè)社區(qū),然后利用大規(guī)模語言模型(LLM)對這些社區(qū)進(jìn)行總結(jié)和概括。Microsoft GraphRAG 會(huì)先通過Map-Reduce算法從多個(gè)關(guān)聯(lián)社區(qū)(例如不同年份的社區(qū))中搜集有關(guān)“高端智能手機(jī)”的信息(Map),然后匯總這些信息以生成全面的答案(Reduce)。
"元信息"(Metadata)是關(guān)于數(shù)據(jù)的數(shù)據(jù)。在計(jì)算機(jī)科學(xué)中,元信息用于描述其他數(shù)據(jù)的屬性,包括創(chuàng)建日期、作者、位置和文件大小等。這樣的信息對數(shù)據(jù)的管理和處理非常有用。
"元信息問題"則是指那些需要查詢或處理元信息的問題。例如,“這張照片是誰拍的?”、“這份報(bào)告是何時(shí)編寫的?”等。在知識(shí)圖譜中,元信息可能包括實(shí)體的類型、屬性、以及它們之間的關(guān)系等,因此,“元信息問題”可能涉及到的是如何從知識(shí)圖譜中抽取或推導(dǎo)出有關(guān)這些元信息的問題。
傳統(tǒng)RAG
傳統(tǒng)的RAG方法可能會(huì)檢索到包含“高端智能手機(jī)”、“發(fā)展”或“最近幾年”等關(guān)鍵詞的文本片段,但難以將這些片段有機(jī)地串聯(lián)起來,形成一個(gè)連貫的趨勢敘述。結(jié)果往往是片段化的信息,難以全面回答查詢。
隱藏關(guān)系
GraphRAG其更容易通過圖譜中的隱形關(guān)系來理解上下文;而傳統(tǒng)RAG則更依賴在明確的文本塊中顯性的匹配關(guān)聯(lián),在理解隱性關(guān)系時(shí)存在局限。
GraphRAG
在 GraphRAG 中,“iPhone 15 Pro” 和 “三星S24” 可能被理解為是相關(guān)的,即使在任何文本塊中沒有直接將它們進(jìn)行比較。因?yàn)樗鼈兌紝儆凇案叨酥悄苁謾C(jī)”類別,并且在”手機(jī)攝影”特性上表現(xiàn)突出。GraphRAG 可以理解這些產(chǎn)品的共同特性,將它們自然地聯(lián)系起來。
因此當(dāng)用戶查詢“和iphone15 pro有相同能力的手機(jī)”時(shí),GraphRAG 可以基于這些隱性關(guān)聯(lián)提供更全面的推薦。
傳統(tǒng)RAG
而在傳統(tǒng) RAG 中,系統(tǒng)只能根據(jù)文本塊中明確提到的內(nèi)容進(jìn)行理解。如果某個(gè)文本塊沒有同時(shí)提到 “iPhone 15 Pro” 和“三星S24”,傳統(tǒng) RAG 可能無法將這兩個(gè)產(chǎn)品聯(lián)系起來。
應(yīng)用場景
選擇使用傳統(tǒng)RAG還是GraphRAG主要取決于數(shù)據(jù)特征和查詢需求,這兩者構(gòu)成了其適用性上的關(guān)鍵區(qū)別。一般來說,以下特征的數(shù)據(jù)更適合使用GraphRAG:
數(shù)據(jù)中包含大量相互關(guān)聯(lián)的實(shí)體和復(fù)雜的關(guān)系,并且結(jié)構(gòu)較為清晰。例如:
- 社交網(wǎng)絡(luò)中的用戶關(guān)系:如朋友、家庭成員、同事之間的聯(lián)系。
- 企業(yè)內(nèi)部的復(fù)雜關(guān)系:包括部門架構(gòu)、供應(yīng)鏈網(wǎng)絡(luò)、客戶關(guān)系等。
- 醫(yī)療數(shù)據(jù):涵蓋疾病、癥狀、治療方法、藥品以及病例等復(fù)雜關(guān)聯(lián)。
- 法律數(shù)據(jù):涉及法律條文、判例之間的引用關(guān)系、解釋與適用情況等。
- 產(chǎn)品推薦系統(tǒng):涉及到產(chǎn)品、用戶、瀏覽內(nèi)容、不同產(chǎn)品之間的關(guān)聯(lián)、用戶之間的關(guān)系等。
除了數(shù)據(jù)特征外,查詢需求也是選擇算法的重要考量。GraphRAG更擅長處理涉及復(fù)雜關(guān)系、語義推理和多步邏輯關(guān)聯(lián)的查詢,或者關(guān)于知識(shí)本身元數(shù)據(jù)的問題。。例如:
- 多跳關(guān)系查詢:如“某人的同事的朋友中,誰在某公司工作?”
- 語義關(guān)聯(lián)查詢:如“哪些公司提供某類產(chǎn)品并已獲得官方認(rèn)證?”
- 知識(shí)推理查詢:如“根據(jù)患者的癥狀和病史,推斷可能的疾病并建議治療方案?!?/li>
- 時(shí)序關(guān)聯(lián)查詢:如“查詢某公司過去十年的投資和并購情況?”
對于這些復(fù)雜查詢,GraphRAG提供了更強(qiáng)的導(dǎo)航與綜合分析能力。而傳統(tǒng)RAG則更適合處理基于數(shù)據(jù)內(nèi)容的具體事實(shí)性問題,對復(fù)雜關(guān)系的處理則較為有限。
性能成本
雖然GraphRAG在數(shù)據(jù)擴(kuò)展性方面表現(xiàn)出色,但在實(shí)際應(yīng)用中,其在索引創(chuàng)建和查詢處理過程中引入的復(fù)雜性和計(jì)算開銷不容忽視。特別是在索引階段,GraphRAG需要進(jìn)行實(shí)體和關(guān)系的提取與識(shí)別,生成必要的描述信息,識(shí)別社區(qū)并生成摘要;而在查詢處理階段,則需檢索更多關(guān)聯(lián)的節(jié)點(diǎn)、關(guān)系和社區(qū)信息。這些額外的步驟對簡單查詢?nèi)蝿?wù)來說,尤其是那些傳統(tǒng)RAG也能有效處理的問題,可能顯得不太經(jīng)濟(jì)。
盡管GraphRAG生成的結(jié)果更為詳盡,但其所需的時(shí)間和token數(shù)量(LLM調(diào)用)幾乎是傳統(tǒng)RAG的十倍。因此,使用GraphRAG時(shí),務(wù)必權(quán)衡其性能與成本,確保在合適的場景下發(fā)揮其優(yōu)勢。
GraphRAG和傳統(tǒng)RAG如何結(jié)合
總的來看,GraphRAG在處理復(fù)雜且高度相互聯(lián)系的數(shù)據(jù)集和需要深度關(guān)聯(lián)理解的查詢上,顯示出了強(qiáng)大的效能。它可以顯著提升信息查找的準(zhǔn)確性和深入程度,尤其是在需要進(jìn)行多級(jí)分析和推導(dǎo)的情況下。然而,這種性能提升也帶來了系統(tǒng)復(fù)雜度和資源使用量的增加。因此,在決定是否采用 GraphRAG 之前,必須仔細(xì)分析具體的應(yīng)用場景、數(shù)據(jù)結(jié)構(gòu)以及典型的查詢模式。
在以下情況下,傳統(tǒng) RAG 仍然是更理想的選擇:
- 簡單且基于事實(shí)的查詢:例如,對于“iPhone 13 的發(fā)布日期是什么?”這樣的簡單問題,傳統(tǒng) RAG 能夠更迅速和明確地給出答案。
- 較低的實(shí)施難度:在數(shù)據(jù)集較小或應(yīng)用場景不復(fù)雜時(shí),傳統(tǒng)RAG的配置與維護(hù)過程較為簡單,便于快速實(shí)施和操作。
在實(shí)際使用場景中,往往一個(gè)單一的搜索策略難以覆蓋所有需求。為了達(dá)到最優(yōu)效果和準(zhǔn)確率,我們可以考慮創(chuàng)建一個(gè)智能路由系統(tǒng),這個(gè)系統(tǒng)會(huì)根據(jù)問題的類別和可獲得數(shù)據(jù)的屬性,動(dòng)態(tài)地挑選出最適合的搜索策略。關(guān)鍵點(diǎn)在于搭建一套強(qiáng)大的路由系統(tǒng)(通常需要借助LLM來完成),這樣就能夠聰明地將查詢指向最佳的搜索路徑。
?
本文轉(zhuǎn)載自公眾號(hào)AI 博物院 作者:longyunfeigu
