理解GraphRAG(一):RAG的挑戰
譯文檢索增強生成(RAG)是一種通過外部知識源增強現有大型語言模型(LLM)的方法,以提供和上下文更相關的答案。在RAG中,檢索組件獲取額外的信息,使響應基于特定來源,然后將這些信息輸入到LLM提示中,以使LLM的響應基于這些信息(增強階段)。與其他技術(例如微調)相比,RAG更經濟。它還有減少幻覺的優勢,通過為LLM提供額外的上下文——使RAG成為今天LLM任務(如推薦、文本提取、情感分析等)的流行方法。
如果我們進一步分解這個想法,根據用戶意圖,我們通常會查詢一個向量數據庫。向量數據庫使用連續的向量空間來捕捉兩個概念之間的關系,使用基于接近度的搜索。
向量數據庫概述
在向量數據庫中,無論是文本、圖像、音頻還是任何其他類型的信息,都被轉換為向量。向量是數據在高維空間的數值表示。每個維度對應數據的一個特征,每個維度中的值反映了該特征的強度或存在。
在向量數據庫中進行基于接近度的搜索,涉及使用另一個向量查詢這些數據庫,并搜索在向量空間中“接近”它的向量。向量之間的接近度通常由距離度量來確定,例如歐幾里得距離、余弦相似度或曼哈頓距離。
當您在向量數據庫中執行搜索時,您提供了一個系統將其轉換為向量的查詢。然后數據庫計算這個查詢向量與數據庫中已經存儲的向量之間的距離或相似性。那些最接近查詢向量的向量(根據所選度量)被認為是最相關的結果。
基于接近度的搜索在向量數據庫中特別強大,適用于推薦系統、信息檢索和異常檢測等任務。
這種方法使系統能夠更直觀地運行,并通過理解數據中的上下文和深層含義,更有效地響應用戶查詢,而不是僅依賴于表面匹配。
然而,向量數據庫在接近度搜索方面有一些限制,例如數據質量、處理動態知識的能力以及透明度。
RAG的限制
根據文檔的大小,RAG大致分為三類:如果文檔很小,可以上下文訪問;如果文檔很大(或有多個文檔),在查詢時生成較小的塊,這些塊被索引并用于響應查詢。
盡管取得了成功,RAG也有一些缺點。
衡量RAG性能的兩個主要指標是困惑度和幻覺,困惑度代表在文本生成過程中同等可能的下一個詞的選擇數量。即語言模型在其選擇上的“困惑”程度。幻覺是AI做出的不真實或想象的陳述。
雖然RAG有助于減少幻覺,但它并沒有消除它。如果您有一個小而簡潔的文檔,您可以減少困惑度(因為LLM的選擇很少),并減少幻覺(如果您只詢問文檔中的內容)。當然,另一方面是,一個單一的小文檔會導致一個微不足道的應用。對于更復雜的應用,您需要一種提供更多上下文的方法。
例如,考慮單詞“bark”——我們至少有兩個不同的上下文:
樹的上下文:“橡樹粗糙的樹皮保護它免受寒冷。”
狗的上下文:“鄰居的狗每當有人經過他們的房子時,都會大聲叫。”
提供更多上下文的一種方法是將RAG與知識圖譜結合(一個GRAPHRAG)。
在知識圖譜中,這些單詞將與它們相關的上下文和含義連接起來。例如,“bark”將與代表“樹”和“狗”的節點連接。其他連接可以指示常見動作(例如,樹的“保護”、狗的“制造噪音”)或屬性(例如,樹的“粗糙”、狗的“響亮”)。這種結構化信息允許語言模型根據句子中的其他單詞或對話的總體主題選擇適當的意義。
在接下來的部分中,我們將看到RAG的局限性以及GRAPHRAG如何解決這些局限性。
原文標題:Understanding GraphRAG – 1: The challenges of RAG
原文作者:ajitjaokar