ADVERTISEMENT
LLM 很強大,但也存在一些明顯缺點,比如幻覺問題、可解釋性差、抓不住問題重點、隱私和安全問題等。檢索增強生成(RAG)可大幅提升 LLM 的生成品質和結果實用性。
本月初,微軟發表最強 RAG 知識庫開源方案 GraphRAG,專案上線即爆紅。
有人表示,它比普通的 RAG 更強大:
GraphRAG 使用 LLM 生成知識圖譜,在對複雜資訊進行檔案分析時可顯著提高問答性能,尤其是在處理私有資料時。
現在,RAG 是一種使用真實世界資訊改進 LLM 輸出的技術,是大多數基於 LLM 的工具的重要組成部分,一般而言,RAG 使用向量相似性作為搜尋,稱之為 Baseline RAG(基準RAG)。但 Baseline RAG 在某些情況下表現並不完美。例如:
- Baseline RAG 難以將各個點連接起來。當回答問題需要透過共用屬性遍歷不同的資訊片段以提供新的綜合見解時,就會發生這種情況;
- 當被要求全面理解大型資料集甚至單個大型文檔中的總結語義概念時,Baseline RAG 表現不佳。
微軟提出的 GraphRAG 利用 LLM 根據輸入的文本庫創建一個知識圖譜。這個圖譜結合社群摘要和圖機器學習的輸出,在查詢時增強提示。GraphRAG 在回答上述兩類問題時顯示出顯著的改進,展現了在處理私有資料集上超越以往方法的性能。
不過,隨著大家對 GraphRAG 的深入瞭解,他們發現其原理和內容真的讓人很難理解。
近日,Neo4j 公司 CTO菲利普·拉斯勒(Philip Rathle)發表了一篇標題為《The GraphRAG Manifesto: Adding Knowledge to GenAI》的文章,拉斯勒用通俗易懂的語言詳細介紹了 GraphRAG 的原理、與傳統 RAG 的區別、GraphRAG 的優勢等。
他表示:「你的下一個生成式 AI 應用很可能就會用上知識圖譜。」
我們來看看他寫了什麼。
我們正在逐漸認識到這一點:我們逐漸意識到,若要讓生成式 AI 發揮真正價值,不能僅依賴自回歸 LLM 做決策。
我知道你在想什麼:「用 RAG 呀。」或者微調,又或者等待 GPT-5。
是的。基於向量的檢索增強生成(RAG)和微調等技術能幫到你。而且它們也確實能足夠好地解決某些應用範例。但有一類應用範例卻會讓所有這些技術失敗慘重。
針對很多問題,基於向量的 RAG(以及微調)的解決方法本質上就是增大正確答案的機率。但是這兩種技術都無法提供正確答案的確定程度。它們通常缺乏背景資訊,難以與你已經知道的東西建立聯繫。此外,這些工具也不會提供線索讓你瞭解特定決策的原因。
讓我們把視線轉回 2012 年,那時候Google推出了自己的第二代搜尋引擎,並發表了一篇象徵性性的部落格文章《Introducing the Knowledge Graph: things, not strings》。他們發現,如果在執行各種字串處理之外再使用知識圖譜來組織所有網頁中用字串表示的事物,那麼有可能為搜尋帶來飛躍式的提升。
現在,生成式 AI 領域也出現了類似的模式。很多生成式 AI 專案都遇到了瓶頸,其生成結果的品質受限於這一事實:解決方案處理的是字串,而非事物。
快轉到今天,尖端沿的 AI 工程師和學術研究者們重新發現了Google曾經的發現:打破這道瓶頸的秘訣就是知識圖譜。換句話說,就是將『事物』的知識引入基於統計的文本技術中。GraphRAG 的工作方式類似 RAG,但除了向量索引,還結合知識圖譜進行查詢。(GraphRAG = 知識圖譜 + RAG)。
本文的目標是全面且易懂地介紹 GraphRAG。研究表明,如果將你的資料構建成知識圖譜並透過 RAG 來使用它,就能為你帶來多種強勁優勢。有大量研究證明,相比於僅使用普通向量的 RAG,GraphRAG 能更好地回答你向 LLM 提出的大部分乃至全部問題。
單這一項優勢,就足以極大地推動人們採用 GraphRAG 了。
但還不止於此;由於在構建應用時資料是可見的,因此其開發起來也更簡單。
GraphRAG 的第三個優勢在於其可解釋性。人類和機器都能理解圖譜並進行推理,因此使用 GraphRAG 構建應用更簡單,結果更優,且更易於解釋和審計,這對許多行業至關重要。
我相信 GraphRAG 將取代僅向量 RAG,成為大多數應用範例的預設 RAG 架構。本文將解釋原因。
圖譜是什麼?
首先我們必須闡明什麼是圖譜。
圖譜,也就是 graph,也常被譯為「圖」,但也因此容易與 image 和 picture 等概念混淆。本文為方便區分,僅採用「圖譜」這一說法。
圖譜大概長這樣:
儘管這張圖常作為知識圖譜的範例,但其出處和作者已經不可考。
又或者像這樣:
或這樣:
換句話說,圖譜不是圖表。
所以這裡我們就不過多糾結於定義問題,就假設你已經明白圖譜是什麼了。
如果你理解上面幾張圖片,那麼你也許能看出來可以如何查詢其底層的知識圖譜資料(儲存在圖譜資料庫中),並將其作為 RAG 工作流程的一部分。也就是 GraphRAG。
兩種呈現知識的形式:向量和圖譜
典型 RAG 的核心是向量搜尋,也就是根據輸入的文字區塊從候選的書面材料中找到並返回概念相似的文字。這種自動化很好用,基本的搜尋都大有用途。
但你每次執行搜尋時,可能並未思考過向量是什麼或者相似度計算是怎麼實現的。下面我們來看看 Apple(蘋果)。它在人類視角、向量視角和圖譜視角下呈現出了不同的形式:
在人類看來,蘋果的表徵很複雜並且是多維度的,其特徵無法被完整地描述到書面上。這裡我們可以充滿詩意地想像這張紅通通的照片能夠在感知和概念上表示一個蘋果。
這個蘋果的向量表示是一個陣列。向量的神奇之處在於它們各自以編碼形式捕獲了其對應文本的本質。但在 RAG 語境中,只有當你需要確定一段文本與另一段文本的相似度時,才需要向量。為此,只需簡單地執行相似度計算並檢查匹配程度。但是,如果你想理解向量內部的含義、瞭解文本中表示的事物、洞察其與更大規模語境的關係,那使用向量標記法就無能為力了。
相較之下,知識圖譜是以陳述式(declarative)的形式來表示世界 —— 用 AI 領域的術語來說,也就是符號式(symbolic)。因此,人類和機器都可以理解知識圖譜並基於其執行推理。這很重要,我們後面還會提到。
此外,你還可以查詢、視覺化、標注、修改和延展知識圖譜。知識圖譜就是世界模型,能表示你當前工作領域的世界。
GraphRAG 與 RAG
這兩者並不是競爭關係。對 RAG 來說,向量查詢和圖譜查詢都很有用。正如 LlamaIndex 的創始人 Jerry Liu 指出的那樣:思考 GraphRAG 時,將向量囊括進來會很有幫助。這不同於「僅向量 RAG」—— 完全基於文本嵌入之間的相似度。
根本上講,GraphRAG 就是一種 RAG,只是其檢索路徑包含知識圖譜。下面你會看到,GraphRAG 的核心模式非常簡單。其架構與使用向量的 RAG 一樣,但其中包含知識圖譜層。
GraphRAG 模式
可以看到,上圖中觸發了一次圖譜查詢。其可以選擇是否包含向量相似度元件。你可以選擇將圖譜和向量分開儲存在兩個不同的資料庫中,也可使用 Neo4j 等支援向量搜尋的圖譜資料庫。
下面給出了一種使用 GraphRAG 的常用模式:
- 執行一次向量搜尋或關鍵字搜尋,找到一組初始節點;
- 遍歷圖譜,帶回相關節點的資訊;
- (可選)使用 PageRank 等基於圖譜的排名演算法對文檔進行重新排名
應用範例不同,使用模式也會不一樣。和當今 AI 領域的各個研究方向一樣,GraphRAG 也是一個研究豐富的領域,每週都有新發現出現。
GraphRAG 的生命週期
使用 GraphRAG 的生成式 AI 也遵循其它任意 RAG 應用的模式,一開始有一個「創建圖譜」步驟:
創建圖譜類似於對文檔進行分塊並將其載入到向量資料庫中。工具的發展進步已經讓圖譜創建變得相當簡單。這裡有三個好消息:
- 圖譜有很好的反覆運算性 —— 你可以從一個「最小可行圖譜」開始,然後基於其進行延展。
- 一旦將資料加入到了知識圖譜中,就能很輕鬆地演進它。你可以添加更多類型的資料,從而獲得並利用資料網路效應。你還可以提高資料的品質,以提升應用的價值。
- 該領域發展迅速,這就意味著隨著工具愈發複雜精妙,圖譜創建只會越來越容易輕鬆。
在之前的圖片中加入圖譜創建步驟,可以得到如下所示的工作流程:
下面來看看 GraphRAG 能帶來什麼好處。
為什麼要使用 GraphRAG?
相較於僅向量 RAG,GraphRAG 的優勢主要分為三大類:
- 準確度更高且答案更完整(執行時間 / 生產優勢)
- 一旦創建好知識圖譜,那麼構建和維護 RAG 應用都會更容易(開發時間優勢)
- 可解釋性、可追溯性和存取控制方面都更好(治理優勢)
下面深入介紹這些優勢。
1. 準確度更高且答案更有用
GraphRAG 的第一個優勢(也是最直接可見的優勢)是其回應品質更高。不管是學術界還是產業界,我們都能看到很多證據支持這一觀點。
比如這個來自資料目錄公司 Data.world 的範例。2023 年底,他們發表了一份研究報告,表明在 43 個業務問題上,GraphRAG 可將 LLM 回應的準確度平均提升 3 倍。這項基準評測研究給出了知識圖譜能大幅提升回應準確度的證據。
微軟也給出了一系列證據,包括 2024 年 2 月的一篇研究部落格《GraphRAG: Unlocking LLM discovery on narrative private data》以及相關的研究論文《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》和軟體:https://github.com/microsoft/graphrag(即上文開頭提到的 GraphRAG)。
其中,他們觀察到使用向量的基線 RAG 存在以下兩個問題:
- 基線 RAG 難以將點連接起來。為了綜合不同的資訊來獲得新見解,需要透過共用屬性遍歷不同的資訊片段,這時候,基線 RAG 就難以將不同的資訊片段連接起來。
- 當被要求全面理解在大型資料集合甚至單個大型文檔上歸納總結的語義概念時,基線 RAG 表現不佳。
微軟發現:「透過使用 LLM 生成的知識圖譜,GraphRAG 可以大幅提升 RAG 的「檢索」部分,為上下文視窗填入相關性更高的內容,從而得到更好的答案並獲取證據來源。」他們還發現,相比於其它替代方法,GraphRAG 所需的 token 數量可以少 26% 到 97%,因此其不僅能給出更好的答案,而且成本更低,擴展性也更好。
進一步深入準確度方面,我們知道答案正確固然重要,但答案也要有用才行。人們發現,GraphRAG 不僅能讓答案更準確,而且還能讓答案更豐富、更完整、更有用。
LinkedIn近期的論文《Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering》就是一個出色的範例,其中描述了 GraphRAG 對其客戶服務應用的影響。GraphRAG 提升了其客戶服務答案的正確性和豐富度,也因此讓答案更加有用,還讓其客戶服務團隊解決每個問題的時間中位數降低了 28.6%。
Neo4j 的生成式 AI 研討會也有一個類似的例子。如下所示,這是針對一組 SEC 備案檔,「向量 + GraphRAG」與「僅向量」方法得到的答案:
請注意「描述可能受鋰短缺影響的公司的特徵」與「列出可能受影響的具體公司」之間的區別。如果你是一位元想要根據市場變化重新平衡投資組合的投資者,或一家想要根據自然災害重新調整供應鏈的公司,那麼上圖右側的資訊肯定比左側的重要得多。這裡,這兩個答案都是準確的。但右側答案明顯更有用。
Jesus Barrasa 的《Going Meta》節目第 23 期給出了另一個絕佳示範:從詞彙圖譜開始使用法律文件。
我們也時不時會看到來自學術界和產業界的新範例。比如 Lettria 的 Charles Borderie 就給出了一個「僅向量」與「向量 + GraphRAG」方法的對比範例;其中 GraphRAG 依託於一個基於 LLM 的文本到圖譜工作流程,將 10,000 篇金融文章整理成了一個知識圖譜:
可以看到,相比於使用普通 RAG,使用 GraphRAG 不僅能提升答案的品質,並且其答案的 token 數量也少了三分之一。
再舉一個來自 Writer 的例子。他們最近發表了一份基於 RobustQA 框架的 RAG 基準評測報告,其中對比了他們的基於 GraphRAG 的方法與其它同類工具。GraphRAG 得到的分數是 86%,明顯優於其它方法(在 33% 到 76% 之間),同時還有相近或更好的延遲性能。
GraphRAG 正在給多種多樣的生成式 AI 應用帶去助益。知識圖譜打開了讓生成式 AI 的結果更準確和更有用的道路。
2. 資料理解得到提升,反覆運算速度更快
不管是概念上還是視覺上,知識圖譜都很直觀。探索知識圖譜往往能帶來新的見解。
很多知識圖譜使用者都分享了這樣的意外收穫:一旦投入心力完成了自己的知識圖譜,那麼它就能以一種意想不到的方式説明他們構建和調試自己的生成式 AI 應用。部分原因是如果能以圖譜的形式看待資料,那便能看到這些應用底層的資料呈現出了一副生動的數據圖景。
圖譜能讓你追溯答案,找到資料,並一路追溯其因果鏈。
我們來看看上面有關鋰短缺的例子。如果你視覺化其向量,那麼你會得到類似下圖的結果,只不過行列數量都更多。
而如果將資料轉換成圖譜,則你能以一種向量表示做不到的方式來理解它。
以下是 LlamaIndex 最近的網路研討會上的一個例子,展示了他們使用「MENTIONS(提及)」關係提取向量化詞塊(詞彙圖譜)和 LLM 提取實體(領域圖譜)的圖譜並將兩者聯繫起來的能力:
(也有很多使用 Langchain、Haystack 和 SpringAI 等工具的例子。)
你可以看到此圖中資料的豐富結構,也能想像其所能帶來的新的開發和調試可能性。其中,各個資料都有各自的值,而結構本身也儲存和傳達了額外的含義,你可將其用於提升應用的智慧水準。
這不僅是視覺化。這也是讓你的資料結構能傳達和儲存意義。下面是一位來自一家著名金融科技公司的開發者的反應,當時他們剛把知識圖譜引入 RAG 工作流程一周時間:
這位開發者的反應非常符合「測試驅動的開發」假設,即驗證(而非信任)答案是否正確。就我個人而言,如果讓我百分之百地將自主權交給決策完全不透明的 AI,我會感到毛骨悚然。更具體而言,就算你不是一個 AI 末日論者,你也會同意:如果能不將與「Apple, Inc.」有關的詞塊或文檔映射到「Apple Corps」(這是兩家完全不一樣的公司),確實會大有價值。由於推動生成式 AI 決策的最終還是資料,因此可以說評估和確保資料正確性才是最至關重要的。
3. 治理:可解釋性、安全及更多
生成式 AI 決策的影響越大,你就越需要說服在決策出錯時需要最終負責的人。這通常涉及到審計每個決策。這就需要可靠且重複的優良決策記錄。但這還不夠。在採納或放棄一個決策時,你還需要解釋其背後的原因。
LLM 本身沒法很好地做到這一點。是的,你可以參考用於得到該決策的文檔。但這些文檔並不能解釋這個決策本身 —— 更別說 LLM 還會編造參考來源。知識圖譜則完全在另一個層面上,能讓生成式 AI 的推理邏輯更加明晰,也更容易解釋輸入。
繼續來看上面的一個例子:Lettria 的 Charles 將從 10,000 篇金融文章提取出的實體載入到了一個知識圖譜中,並搭配一個 LLM 來執行 GraphRAG。我們看到這確實能提供更好的答案。我們來看看這些資料:
首先,將資料看作圖譜。另外,我們也可以導覽和查詢這些資料,還能隨時修正和更新它們。其治理優勢在於:查看和審計這些資料的「世界模型」變得簡單了很多。相較於使用同一資料的向量版本,使用圖譜讓最終負責人更可能理解決策背後的原因。
在確保品質方面,如果能將資料放在知識圖譜中,則就能更輕鬆地找到其中的錯誤和意外並且追溯它們的源頭。你還能在圖譜中獲取來源和置信度資訊,然後將其用於計算以及解釋。而使用同樣資料的僅向量版本根本就無法做到這一點,正如我們之前討論的那樣,一般人(甚至不一般的人)都很難理解向量化的資料。
知識圖譜還可以顯著增強安全性和隱私性。
在構建原型設計時,安全性和隱私性通常不是很重要,但如果要將其打造成產品,那這就至關重要了。在銀行或醫療等受監管的行業,任何員工的資料存取權限都取決於其工作崗位。
不管是 LLM 還是向量資料庫,都沒有很好的方法來限制資料的訪問範圍。知識圖譜卻能提供很好的解決方案,通過許可權控制來規範參與者可訪問資料庫的範圍,不讓他們看到不允許他們看的資料。下面是一個可在知識圖譜中實現細細微性許可權控制的簡單安全性原則:
創建知識圖譜
構建知識圖譜需要什麼?第一步是瞭解兩種與生成式 AI 應用最相關的圖譜。
領域圖譜(domain graph)表示的是與當前應用相關的世界模型。這裡有一個簡單範例:
詞彙圖譜(lexical graph)則是文檔結構的圖譜。最基本的詞彙圖譜由詞塊構成的節點組成:
人們往往會對其進行擴展,以包含詞塊、文件物件(比如表格)、章節、段落、頁碼、文檔名稱或編號、文集、來源等之間的關係。你還可以將領域圖譜和詞彙圖譜組合到一起,如下所示:
詞彙圖譜的創建很簡單,主要就是簡單的解析和分塊。至於領域圖譜,則根據資料來源(來自結構化資料來源還是非結構化資料來源或者兩種來源都有)的不同,有不同的創建路徑。幸運的是,從非結構化資料來源創建知識圖譜的工具正在飛速發展。
舉個例子,新的 Neo4j Knowledge Graph Builder 可以使用 PDF 檔案、網頁、YouTube 影片、維基百科文章來自動創建知識圖譜。整個過程非常簡單,點幾下按鈕即可,然後你就能視覺化和查詢你輸入的文本的領域和詞彙圖譜。這個工具很強大,也很有趣,能極大降低創建知識圖譜的門檻。
至於結構化資料(比如你的公司儲存的有關客戶、產品、地理位置等的結構化資料),則能直接映射成知識圖譜。舉個例子,對於最常見的儲存在關聯式資料庫中的結構化資料,可以使用一些標準工具基於經過驗證的可靠規則將關係映射成圖譜。
使用知識圖譜
有了知識圖譜後,就可以做 GraphRAG 了,為此有很多框架可選,比如 LlamaIndex Property Graph Index、Langchain 整合的 Neo4j 以及 Haystack 整合的版本。這個領域發展很快,但現在程式設計方法正在變得非常簡單。
在圖譜創建方面也是如此,現在已經出現了 Neo4j Importer(可透過圖形化介面將表格資料導入和映射為圖譜)和前面提到的 Neo4j Knowledge Graph Builder 等工具。下圖總結了構建知識圖譜的步驟。
使用知識圖譜還能將人類語言的問題映射成圖譜資料庫查詢。Neo4j 發表了一款開源工具 NeoConverse,可幫助使用自然語言來查詢知識圖譜。
雖然開始使用圖譜時確實需要花一番功夫來學習,但好消息是隨著工具的發展,這會越來越簡單。
總結:GraphRAG 是 RAG 的必定未來
LLM 固有的基於詞的計算和語言技能加上基於向量的 RAG 能帶來非常好的結果。為了穩定地得到好結果,就必須超越字串層面,構建詞模型之上的世界模型。同樣地,Google發現為了掌握搜尋能力,他們就必須超越單純的文本分析,繪製出字串所代表的事物之間的關係。我們開始看到 AI 世界也正在出現同樣的模式。這個模式就是 GraphRAG。
技術發展如同 S 型曲線,當一項技術達到極限,另一項技術將取而代之。隨著生成式 AI 不斷發展,應用需求也日益提升,從高品質答案、可解釋性,到資料存取的精細控制、隱私與安全,知識圖譜的價值將愈發凸顯。
你的下一個生成式 AI 應用很可能就會用上知識圖譜。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!