在生成式人工智慧實踐中,一個常見的術語是檢索增強生成(RAG)。使用RAG的原因很明顯:大型語言模型(LLMs),作為有效的語法引擎,往往會“幻覺”,即從其訓練數據片段中編造答案。這些隨機的結果可能很有趣,但並不完全基於事實。RAG提供了一種在特定內容集內“扎根”答案的方法。此外,這種方法允許在低成本的情況下快速更新數據,而不是進行昂貴的再訓練或微調。請參閱2020年Google的Kelvin Guu等人撰寫的《REALM: Retrieval-Augmented Language Model Pre-Training》和Facebook的Patrick Lewis等人撰寫的《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》這兩個主要來源。
這裡是RAG的簡單粗略草圖:
更快學習。深入挖掘。看得更遠。
首先收集有關特定領域的文檔。將每個文檔分割成若干片段。通過嵌入模型運行每個文本片段以計算其向量。將這些片段存儲在向量數據庫中,並根據它們的嵌入向量進行索引。
當提出問題時,將其文本通過相同的嵌入模型運行,確定哪些片段是最近鄰,然後將這些片段作為排名列表呈現給LLM以生成回應。雖然整個過程在實踐中可能更為複雜,但這就是要點。
各種RAG的變體借鑒了推薦系統的實踐,例如使用向量數據庫和嵌入。大規模的生產推薦系統、搜索引擎和其他發現過程也有著利用知識圖的悠久歷史,例如在亞馬遜、Alphabet、微軟、LinkedIn、eBay、Pinterest等公司。
什麼是GraphRAG?
圖形技術有助於揭示數據中非直觀的連接。例如,有關前美國副總統艾爾·戈爾的文章可能不會討論演員湯米·李·瓊斯,儘管這兩人在哈佛時期曾是室友並且一起組建了一支鄉村樂隊。圖形允許跨多個跳躍進行搜索,即能夠遞歸探索相鄰概念,例如識別戈爾與瓊斯之間的聯繫。
GraphRAG是一種使用圖形技術增強RAG的技術,自2023年第3季度以來已變得流行。雖然RAG利用基於文本相似度的最近鄰度量,但圖形技術能夠更好地回憶起不那麼直觀的連接。“湯米·李·瓊斯”和“艾爾·戈爾”這兩個名字可能並未被嵌入為相似的文本,這取決於您的RAG訓練語料庫,但它們可以通過知識圖連接。請參閱2023年似乎是這一概念起源的文章《NebulaGraph推出行業首個圖形RAG:基於知識圖的檢索增強生成》,以及Boci Peng等人的一篇近期良好調查論文《圖形檢索增強生成:調查》。
也就是說,GraphRAG的“圖形”部分意味著幾種不同的事物——這可能是這裡更重要的理解點之一。構建用於使用的圖形的一種方法是將向量存儲中的每個文本片段與其鄰居連接起來。每對鄰居之間的“距離”可以解釋為一種概率。當問題提示到達時,運行圖算法遍歷這個概率圖,然後將收集到的片段的排名索引提供給LLM。這是微軟GraphRAG方法的部分運作方式。
另一種方法利用相關領域知識的領域圖,其中圖中的節點代表概念並連結到向量存儲中的文本片段。當提示到達時,將其轉換為圖查詢,然後從查詢結果中提取節點,並將它們的字符串表示及相關片段提供給LLM。
更進一步,某些GraphRAG方法通過解析片段來提取文本中的實體和關係,利用詞彙圖來補充領域圖。將進來的提示轉換為圖查詢,然後使用結果集為LLM選擇片段。良好的例子在Neo4j的Philip Rathle撰寫的GraphRAG宣言中有描述。
從提示映射到選擇圖中的節點至少有兩種方法。一方面,Neo4j等生成圖查詢。另一方面,可以為圖中每個節點生成文本描述,然後將這些描述通過用於文本片段的相同嵌入模型運行。這種帶有節點嵌入的後者方法可能更穩健且效率更高。
另一種修飾是使用在文檔上訓練的圖形神經網絡(GNN)。GNN有時被用來推斷節點和連結,識別圖中可能“缺失”的部分。谷歌的研究人員聲稱,這種方法在計算資源需求較少的情況下,性能優於其他GraphRAG方法,通過使用GNN重新排序呈現給LLM的最相關片段。
在基於LLM的應用中,“圖形”一詞還有其他幾種用法,其中許多涉及到對於LLM是否可以推理的爭議。例如,Maciej Besta等人的《思維圖》將複雜任務分解為子任務圖,然後使用LLM回答子任務,同時優化整個圖的成本。其他作品利用不同形式的基於圖形的推理,例如Robert Logan等人的《巴拉克的妻子希拉里:使用知識圖進行事實感知的語言建模》,使用LLM生成邏輯命題的圖形。根據這些提取的事實進行邏輯推理來回答問題。我最近的一個最愛是Tomaz Bratanic的《用Neo4j和LangGraph實現GraphReader》,其中GraphRAG機制收集了組合回應的潛在組件的“筆記本”。舊的變成新的:將“筆記本”替換為“黑板”,將“基於圖的代理”替換為“控制外殼”,可以回到1970年代和1980年代的人工智慧黑板系統架構。請參閱Hearsay-II項目、BB1以及Barbara Hayes-Roth及其同事的許多論文。
GraphRAG是否改善了結果?
GraphRAG方法在RAG上的改進程度如何?過去幾個月來,定量分析提升的論文不斷出現。Emory的大雲通·胡等人在《GRAG: Graph Retrieval-Augmented Generation》中報告,他們的基於圖形的方法“顯著優於當前最先進的RAG方法,同時有效減輕了幻覺”。為了量化這一提升,《TRACE the Evidence: Constructing Knowledge-Grounded Reasoning Chains for Retrieval-Augmented Generation》由金源·方等人提出了TRACE框架來測量結果,顯示GraphRAG實現了高達14.03%的平均性能改進。同樣,Zhentao Xu等人的《基於知識圖的檢索增強生成在客戶服務問題回答中的應用》報告,在LinkedIn客戶服務中,GraphRAG將每個問題的解決時間中位數減少了28.6%。
然而,GraphRAG領域仍然存在一個問題。流行的開源庫和大多數供應商解決方案推廣一種一般觀念,即GraphRAG中的“圖形”是由LLM自動生成的。這些並沒有考慮使用可能由領域專家精心策劃的預先存在的知識圖。在某些情況下,知識圖必須使用本體(例如來自NIST的)作為防護措施或其他考量來構建。
在受監管環境中工作的人(例如:公共部門、金融、醫療等)往往不喜歡將AI應用視為“黑箱”解決方案,這種解決方案神奇地處理可能需要人類監督的工作。想像一下,站在法官面前尋求令狀並解釋,“法官大人,一個LLM收集了證據,可能有幾個幻覺。”
雖然LLM在總結許多文檔的關鍵點方面可以非常強大,但它們不一定是處理許多類型任務的最佳方式。Hui Jiang的《大型語言模型中新興能力的潛在空間理論》提出了一個統計解釋來解釋新興的LLM能力,探索語言中的模糊性與模型及其訓練數據規模之間的關係。Huu Tan Mai等人的《LLM是否真的能適應領域?從本體學學習的角度》顯示,LLM對於概念之間的語義關係並不一致推理,而是受到其訓練示例框架的偏見。總體而言,Gaël Varoquaux、Sasha Luccioni和Meredith Whittaker的近期論文《炒作、可持續性及更大即更好的AI範式的代價》探討了隨著數據和模型規模的擴大,LLM如何顯示出收益遞減,這與建議“越大越好”的擴展法則形成對比。
LLM生成的圖形失敗的根本原因之一涉及實體解析的問題。換句話說,“概念”——由圖的節點和邊表示——在領域上下文中解釋得有多好?例如,“NLP”的提及可能在一個上下文中指的是自然語言處理,而在另一個上下文中則指神經語言程式設計。LLM在生成圖形時以這種方式出錯的情況頗為常見。這些“誤解”隨著算法遍歷圖中的跳躍而累積成更大的錯誤,搜索事實以提供給LLM。例如,“Bob E. Smith”和“Bob R. Smith”可能不是同一個人,即使他們的名字僅差一個字母。另一方面,“al-Hajj Abdullah Qardash”和“Abu ‘Abdullah Qardash Bin Amir”可能是同一個人,因為阿拉伯名字轉寫成英文的各種約定。
實體解析合併在兩個或多個結構化數據來源中一致出現的實體,同時保留證據決策。這些實體可能代表人、組織、海洋船隻等,它們的名稱、地址或其他個人識別信息(PII)被用作實體解析的特徵。比較文本特徵以避免誤報或漏報的問題往往有許多困難的邊緣情況。然而,在選民登記或護照控制等應用領域中,實體解析的核心價值在於邊緣情況是否得到正確處理。例如,當名稱和地址從阿拉伯語、俄語或普通話轉寫時,實體解析中的邊緣情況變得更加困難,因為文化約定決定了我們如何解釋特徵。
一個通用的、未綁定的工作流程
對GraphRAG的更負責任的方法是拆分知識圖構建的過程,特別注意數據質量。以任何所需的架構或本體作為基礎,利用結構化數據來源創建一個基於實體解析的“骨架”來組織圖形。然後將從非結構化數據來源提取的圖形節點和關係連接起來,重用實體解析的結果以在領域上下文中消歧義。
如下所示的未綁定方法的通用工作流程,頂部的路徑用於攝取結構化數據及架構,底部的路徑用於攝取非結構化數據:

右側的結果是存儲在向量數據庫中的文本片段,根據其嵌入向量進行索引,加上存儲在圖形數據庫中的結合領域圖和詞彙圖。任一存儲的元素彼此連接。具體而言:
運行實體解析以識別在多個結構化數據來源中出現的實體。將數據記錄導入圖形,使用任何在用例中所需的本體(或分類法、受控詞彙、架構等)。如果您已經擁有一個經過策劃的知識圖,則只是將新的節點和關係累積到裡面。將實體解析的結果覆蓋為連接數據記錄的節點和邊,以消歧義圖中同一邏輯實體的多個節點。重用實體解析結果來為您的用例的領域上下文定制實體鏈接器(見下文)。像往常一樣,從非結構化數據來源中分塊您的文檔。運行文本片段通過NLP解析,使用命名實體識別提取可能的實體(名詞短語),然後用實體鏈接器將其連接到先前解析的實體。將提取的實體連接到其各自的文本片段。
這種方法滿足了企業用例的一般需求,利用“較小”的但仍最先進的模型,並允許在每一步中進行人類反饋,同時保留沿途使用的證據和做出的決策。奇怪的是,這也可以使圖的更新管理變得更簡單。
當提示到達時,GraphRAG應用可以遵循兩條互補的路徑來確定要呈現給LLM的片段。如下所示:

一組開源教程作為此方法的參考實現。使用有關拉斯維加斯大都市區在大流行期間的企業的開放數據,《實體解析的知識圖:教程》探討了如何使用實體解析合併三個有關PPP貸款欺詐的數據集以構建Neo4j中的知識圖。Clair Sullivan在《當GraphRAG變糟:為何您不能忽視實體解析的一個研究》中擴展了這個例子,使用LangChain製作聊天機器人以探索潛在的欺詐案例。
第三個教程《如何從非結構化數據構建知識圖》展示了如何執行上述通用工作流程,以從非結構化數據中提取實體和關係。這利用了最先進的開放模型(例如,用於命名實體識別的GLiNER)和流行的開源庫,如spaCy和LanceDB(見代碼和幻燈片)。然後,第四個教程《使用實體解析和實體鏈接進行巴拿馬文件調查》,由Louis Guitton撰寫,使用實體解析結果基於spaCy NLP管道定制實體鏈接器,並作為Python庫提供。這顯示如何在基於領域上下文的知識圖中融合結構化和非結構化數據來源。
總結
總的來說,GraphRAG方法允許比單獨使用向量數據庫進行RAG的檢索模式更複雜——從而導致更好的LLM結果。GraphRAG的早期示例使用LLM自動生成圖形,儘管我們正在努力避免幻覺,但這些自動生成的部分引入了誤解。
未綁定的工作流程用更負責任的過程取代了“魔法”,同時在每一步中利用最先進的“較小”模型。實體解析是核心組件,提供根據證據將結構化和非結構化數據融合在一起的手段,並觀察微妙的文化規範以理解數據中的識別特徵。
讓我們重申RAG借鑒推薦系統的觀點。LLM僅提供了人工智慧拼圖中的一部分。例如,它們非常適合總結任務,但LLM在需要在特定領域中仔細消歧義概念時往往會崩潰。GraphRAG引入圖形技術,以幫助使基於LLM的應用更加穩健:概念表示、表示學習、圖查詢、圖分析、語義隨機游走等。因此,GraphRAG混合了兩個“AI”研究領域:知識圖所代表的較具符號性的推理和機器學習的統計方法。展望未來,對於混合AI方法的發展還有很大的空間,GraphRAG可能只是冰山一角。請參閱Frank van Harmelen的精彩講座《學習和推理的系統》,以進一步探索混合AI的趨勢。
本文基於早期講座《理解圖形RAG:通過知識圖增強LLM應用》。以下是一些有關此主題的其他推薦資源: