微軟開源的GraphRAG爆火,Github Star量破萬,生成式AI進入知識圖譜時代?

机器之心發表於2024-07-15

知識圖譜從不退環境!


LLM 很強大,但也存在一些明顯缺點,比如幻覺問題、可解釋性差、抓不住問題重點、隱私和安全問題等。檢索增強式生成(RAG)可大幅提升 LLM 的生成質量和結果有用性。

本月初,微軟釋出最強 RAG 知識庫開源方案 GraphRAG,專案上線即爆火,現在星標量已經達到 10.5 k。
圖片
  • 專案地址:https://github.com/microsoft/graphrag
  • 官方文件:https://microsoft.github.io/graphrag/

有人表示,它比普通的 RAG 更強大:
圖片
GraphRAG 使用 LLM 生成知識圖譜,在對複雜資訊進行文件分析時可顯著提高問答效能,尤其是在處理私有資料時。
圖片
GraphRAG 和傳統 RAG 對比結果

現如今,RAG 是一種使用真實世界資訊改進 LLM 輸出的技術,是大多數基於 LLM 的工具的重要組成部分,一般而言,RAG 使用向量相似性作為搜尋,稱之為 Baseline RAG(基準RAG)。但 Baseline RAG 在某些情況下表現並不完美。例如:

  • Baseline RAG 難以將各個點連線起來。當回答問題需要透過共享屬性遍歷不同的資訊片段以提供新的綜合見解時,就會發生這種情況;
  • 當被要求全面理解大型資料集甚至單個大型文件中的總結語義概念時,Baseline RAG 表現不佳。

微軟提出的 GraphRAG 利用 LLM 根據輸入的文字庫建立一個知識圖譜。這個圖譜結合社群摘要和圖機器學習的輸出,在查詢時增強提示。GraphRAG 在回答上述兩類問題時顯示出顯著的改進,展現了在處理私有資料集上超越以往方法的效能。

不過,隨著大家對 GraphRAG 的深入瞭解,他們發現其原理和內容真的讓人很難理解。

圖片

近日,Neo4j 公司 CTO Philip Rathle 釋出了一篇標題為《GraphRAG 宣言:將知識加入到生成式 AI 中》的部落格文章,Rathle 用通俗易懂的語言詳細介紹了 GraphRAG 的原理、與傳統 RAG 的區別、GraphRAG 的優勢等。

他表示:「你的下一個生成式 AI 應用很可能就會用上知識圖譜。」
圖片
Neo4j CTO Philip Rathle

下面來看這篇文章。

我們正在逐漸認識到這一點:要使用生成式 AI 做一些真正有意義的事情,你就不能只依靠自迴歸 LLM 來幫你做決定。

我知道你在想什麼:「用 RAG 呀。」或者微調,又或者等待 GPT-5。

是的。基於向量的檢索增強式生成(RAG)和微調等技術能幫到你。而且它們也確實能足夠好地解決某些用例。但有一類用例卻會讓所有這些技術折戟沉沙。

針對很多問題,基於向量的 RAG(以及微調)的解決方法本質上就是增大正確答案的機率。但是這兩種技術都無法提供正確答案的確定程度。它們通常缺乏背景資訊,難以與你已經知道的東西建立聯絡。此外,這些工具也不會提供線索讓你瞭解特定決策的原因。

讓我們把視線轉回 2012 年,那時候谷歌推出了自己的第二代搜尋引擎,併發布了一篇標誌性的部落格文章《Introducing the Knowledge Graph: things, not strings》。他們發現,如果在執行各種字串處理之外再使用知識圖譜來組織所有網頁中用字串表示的事物,那麼有可能為搜尋帶來飛躍式的提升。

現在,生成式 AI 領域也出現了類似的模式。很多生成式 AI 專案都遇到了瓶頸,其生成結果的質量受限於這一事實:解決方案處理的是字串,而非事物。

快進到今天,前沿的 AI 工程師和學術研究者們重新發現了谷歌曾經的發現:打破這道瓶頸的秘訣就是知識圖譜。換句話說,就是將有關事物的知識引入到基於統計的文字技術中。其工作方式就類似於其它 RAG,只不過除了向量索引外還要呼叫知識圖譜。也就是:GraphRAG!(GraphRAG = 知識圖譜 + RAG)

本文的目標是全面且易懂地介紹 GraphRAG。研究表明,如果將你的資料構建成知識圖譜並透過 RAG 來使用它,就能為你帶來多種強勁優勢。有大量研究證明,相比於僅使用普通向量的 RAG,GraphRAG 能更好地回答你向 LLM 提出的大部分乃至全部問題。

單這一項優勢,就足以極大地推動人們採用 GraphRAG 了。

但還不止於此;由於在構建應用時資料是可見的,因此其開發起來也更簡單。

GraphRAG 的第三個優勢是人類和機器都能很好地理解圖譜並基於其執行推理。因此,使用 GraphRAG 構建應用會更簡單輕鬆,並得到更好的結果,同時還更便於解釋和審計(這對很多行業來說至關重要)。

我相信 GraphRAG 將取代僅向量 RAG,成為大多數用例的預設 RAG 架構。本文將解釋原因。

圖譜是什麼?

首先我們必須闡明什麼是圖譜。

圖譜,也就是 graph,也常被譯為「圖」,但也因此容易與 image 和 picture 等概念混淆。本文為方便區分,僅採用「圖譜」這一譯法。

圖譜大概長這樣:
圖片
圖譜示例

儘管這張圖常作為知識圖譜的示例,但其出處和作者已經不可考。

或這樣:
圖片
《權力的遊戲》人物關係圖譜,來自 William Lyon

或這樣:圖片
倫敦地鐵地圖。有趣小知識:倫敦交通局前段時間部署了一個基於圖譜的數字孿生應用,以提升事故響應能力並減少擁堵。

換句話說,圖譜不是圖表。

這裡我們就不過多糾結於定義問題,就假設你已經明白圖譜是什麼了。

如果你理解上面幾張圖片,那麼你也許能看出來可以如何查詢其底層的知識圖譜資料(儲存在圖譜資料庫中),並將其用作 RAG 工作流程的一部分。也就是 GraphRAG。

兩種呈現知識的形式:向量和圖譜

典型 RAG 的核心是向量搜尋,也就是根據輸入的文字塊從候選的書面材料中找到並返回概念相似的文字。這種自動化很好用,基本的搜尋都大有用途。

但你每次執行搜尋時,可能並未思考過向量是什麼或者相似度計算是怎麼實現的。下面我們來看看 Apple(蘋果)。它在人類視角、向量視角和圖譜視角下呈現出了不同的形式:
圖片
人類視角、向量視角和圖譜視角下的 Apple

在人類看來,蘋果的表徵很複雜並且是多維度的,其特徵無法被完整地描述到紙面上。這裡我們可以充滿詩意地想象這張紅彤彤的照片能夠在感知和概念上表示一個蘋果。

這個蘋果的向量表示是一個陣列。向量的神奇之處在於它們各自以編碼形式捕獲了其對應文字的本質。但在 RAG 語境中,只有當你需要確定一段文字與另一段文字的相似度時,才需要向量。為此,只需簡單地執行相似度計算並檢查匹配程度。但是,如果你想理解向量內部的含義、瞭解文字中表示的事物、洞察其與更大規模語境的關係,那使用向量表示法就無能為力了。

相較之下,知識圖譜是以陳述式(declarative)的形式來表示世界 —— 用 AI 領域的術語來說,也就是符號式(symbolic)。因此,人類和機器都可以理解知識圖譜並基於其執行推理。這很重要,我們後面還會提到。

此外,你還可以查詢、視覺化、標註、修改和延展知識圖譜。知識圖譜就是世界模型,能表示你當前工作領域的世界。

GraphRAG 與 RAG

這兩者並不是競爭關係。對 RAG 來說,向量查詢和圖譜查詢都很有用。正如 LlamaIndex 的創始人 Jerry Liu 指出的那樣:思考 GraphRAG 時,將向量囊括進來會很有幫助。這不同於「僅向量 RAG」—— 完全基於文字嵌入之間的相似度。

根本上講,GraphRAG 就是一種 RAG,只是其檢索路徑包含知識圖譜。下面你會看到,GraphRAG 的核心模式非常簡單。其架構與使用向量的 RAG 一樣,但其中包含知識圖譜層。

GraphRAG 模式
圖片 GraphRAG 的一種常用模式

可以看到,上圖中觸發了一次圖譜查詢。其可以選擇是否包含向量相似度元件。你可以選擇將圖譜和向量分開儲存在兩個不同的資料庫中,也可使用 Neo4j 等支援向量搜尋的圖譜資料庫。

下面給出了一種使用 GraphRAG 的常用模式:

1. 執行一次向量搜尋或關鍵詞搜尋,找到一組初始節點;
2. 遍歷圖譜,帶回相關節點的資訊;
3.(可選)使用 PageRank 等基於圖譜的排名演算法對文件進行重新排名

用例不同,使用模式也會不一樣。和當今 AI 領域的各個研究方向一樣,GraphRAG 也是一個研究豐富的領域,每週都有新發現湧現。

GraphRAG 的生命週期

使用 GraphRAG 的生成式 AI 也遵循其它任意 RAG 應用的模式,一開始有一個「建立圖譜」步驟:
圖片
GraphRAG 的生命週期

建立圖譜類似於對文件進行分塊並將其載入到向量資料庫中。工具的發展進步已經讓圖譜建立變得相當簡單。這裡有三個好訊息:

1. 圖譜有很好的迭代性 —— 你可以從一個「最小可行圖譜」開始,然後基於其進行延展。
2. 一旦將資料加入到了知識圖譜中,就能很輕鬆地演進它。你可以新增更多型別的資料,從而獲得並利用資料網路效應。你還可以提高資料的質量,以提升應用的價值。
3. 該領域發展迅速,這就意味著隨著工具愈發複雜精妙,圖譜建立只會越來越容易輕鬆。

在之前的圖片中加入圖譜建立步驟,可以得到如下所示的工作流程:
圖片
新增圖譜建立步驟

下面來看看 GraphRAG 能帶來什麼好處。

為什麼要使用 GraphRAG?

相較於僅向量 RAG,GraphRAG 的優勢主要分為三大類:

1. 準確度更高且答案更完整(執行時間 / 生產優勢)
2. 一旦建立好知識圖譜,那麼構建和維護 RAG 應用都會更容易(開發時間優勢)
3. 可解釋性、可追溯性和訪問控制方面都更好(治理優勢)

下面深入介紹這些優勢。

1. 準確度更高且答案更有用

GraphRAG 的第一個優勢(也是最直接可見的優勢)是其響應質量更高。不管是學術界還是產業界,我們都能看到很多證據支援這一觀察。

比如這個來自資料目錄公司 Data.world 的示例。2023 年底,他們釋出了一份研究報告,表明在 43 個業務問題上,GraphRAG 可將 LLM 響應的準確度平均提升 3 倍。這項基準評測研究給出了知識圖譜能大幅提升響應準確度的證據。
圖片
知識圖譜將 LLM 響應的準確度提升了 54.2 個百分點,也就是大約提升了 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 不僅能讓答案更準確,而且還能讓答案更豐富、更完整、更有用。

領英近期的論文《Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering》就是一個出色的範例,其中描述了 GraphRAG 對其客戶服務應用的影響。GraphRAG 提升了其客戶服務答案的正確性和豐富度,也因此讓答案更加有用,還讓其客戶服務團隊解決每個問題的時間中位數降低了 28.6%。

Neo4j 的生成式 AI 研討會也有一個類似的例子。如下所示,這是針對一組 SEC 備案檔案,「向量 + GraphRAG」與「僅向量」方法得到的答案:
圖片
「僅向量」與「向量 + 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% 之間),同時還有相近或更好的延遲效能。
圖片
RAG 方法的準確度和響應時間評估結果

GraphRAG 正在給多種多樣的生成式 AI 應用帶去助益。知識圖譜開啟了讓生成式 AI 的結果更準確和更有用的道路。

2. 資料理解得到提升,迭代速度更快

不管是概念上還是視覺上,知識圖譜都很直觀。探索知識圖譜往往能帶來新的見解。

很多知識圖譜使用者都分享了這樣的意外收穫:一旦投入心力完成了自己的知識圖譜,那麼它就能以一種意想不到的方式幫助他們構建和除錯自己的生成式 AI 應用。部分原因是如果能以圖譜的形式看待資料,那便能看到這些應用底層的資料呈現出了一副生動的資料圖景。

圖譜能讓你追溯答案,找到資料,並一路追溯其因果鏈。

我們來看看上面有關鋰短缺的例子。如果你視覺化其向量,那麼你會得到類似下圖的結果,只不過行列數量都更多。
圖片
向量視覺化

而如果將資料轉換成圖譜,則你能以一種向量表示做不到的方式來理解它。

以下是 LlamaIndex 最近的網路研討會上的一個例子,展示了他們使用「MENTIONS(提及)」關係提取向量化詞塊(詞彙圖譜)和 LLM 提取實體(領域圖譜)的圖譜並將兩者聯絡起來的能力:
圖片
提取詞彙圖譜和領域圖譜

(也有很多使用 Langchain、Haystack 和 SpringAI 等工具的例子。)

你可以看到此圖中資料的豐富結構,也能想象其所能帶來的新的開發和除錯可能性。其中,各個資料都有各自的值,而結構本身也儲存和傳達了額外的含義,你可將其用於提升應用的智慧水平。

這不僅是視覺化。這也是讓你的資料結構能傳達和儲存意義。下面是一位來自一家著名金融科技公司的開發者的反應,當時他們剛把知識圖譜引入 RAG 工作流程一週時間:
圖片
開發者對 GraphRAG 的反應

這位開發者的反應非常符合「測試驅動的開發」假設,即驗證(而非信任)答案是否正確。就我個人而言,如果讓我百分之百地將自主權交給決策完全不透明的 AI,我會感到毛骨悚然。更具體而言,就算你不是一個 AI 末日論者,你也會同意:如果能不將與「Apple, Inc.」有關的詞塊或文件對映到「Apple Corps」(這是兩家完全不一樣的公司),確實會大有價值。由於推動生成式 AI 決策的最終還是資料,因此可以說評估和確保資料正確性才是最至關重要的。

3. 治理:可解釋性、安全及更多

生成式 AI 決策的影響越大,你就越需要說服在決策出錯時需要最終負責的人。這通常涉及到審計每個決策。這就需要可靠且重複的優良決策記錄。但這還不夠。在採納或放棄一個決策時,你還需要解釋其背後的原因。

LLM 本身沒法很好地做到這一點。是的,你可以參考用於得到該決策的文件。但這些文件並不能解釋這個決策本身 —— 更別說 LLM 還會編造參考來源。知識圖譜則完全在另一個層面上,能讓生成式 AI 的推理邏輯更加明晰,也更容易解釋輸入。

繼續來看上面的一個例子:Lettria 的 Charles 將從 10,000 篇金融文章提取出的實體載入到了一個知識圖譜中,並搭配一個 LLM 來執行 GraphRAG。我們看到這確實能提供更好的答案。我們來看看這些資料:
圖片
將從 10,000 篇金融文章提取出的實體載入知識圖譜

首先,將資料看作圖譜。另外,我們也可以導覽和查詢這些資料,還能隨時修正和更新它們。其治理優勢在於:檢視和審計這些資料的「世界模型」變得簡單了很多。相較於使用同一資料的向量版本,使用圖譜讓最終負責人更可能理解決策背後的原因。

在確保質量方面,如果能將資料放在知識圖譜中,則就能更輕鬆地找到其中的錯誤和意外並且追溯它們的源頭。你還能在圖譜中獲取來源和置信度資訊,然後將其用於計算以及解釋。而使用同樣資料的僅向量版本根本就無法做到這一點,正如我們之前討論的那樣,一般人(甚至不一般的人)都很難理解向量化的資料。

知識圖譜還可以顯著增強安全性和隱私性。

在構建原型設計時,安全性和隱私性通常不是很重要,但如果要將其打造成產品,那這就至關重要了。在銀行或醫療等受監管的行業,任何員工的資料訪問許可權都取決於其工作崗位。

不管是 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 等工具。下圖總結了構建知識圖譜的步驟。
圖片
自動構建用於生成式 AI 的知識圖譜

使用知識圖譜還能將人類語言的問題對映成圖譜資料庫查詢。Neo4j 釋出了一款開源工具 NeoConverse,可幫助使用自然語言來查詢知識圖譜:https://neo4j.com/labs/genai-ecosystem/neoconverse/

雖然開始使用圖譜時確實需要花一番功夫來學習,但好訊息是隨著工具的發展,這會越來越簡單。

總結:GraphRAG 是 RAG 的必定未來

LLM 固有的基於詞的計算和語言技能加上基於向量的 RAG 能帶來非常好的結果。為了穩定地得到好結果,就必須超越字串層面,構建詞模型之上的世界模型。同樣地,谷歌發現為了掌握搜尋能力,他們就必須超越單純的文字分析,繪製出字串所代表的事物之間的關係。我們開始看到 AI 世界也正在出現同樣的模式。這個模式就是 GraphRAG。

技術的發展曲線呈現出 S 型:一項技術達到頂峰後,另一項技術便會推動進步並超越前者。隨著生成式 AI 的發展,相關應用的要求也會提升 —— 從高質量答案到可解釋性再到對資料訪問許可權的細粒度控制以及隱私和安全,知識圖譜的價值也會隨之愈發凸顯。圖片
生成式 AI 的進化

你的下一個生成式 AI 應用很可能就會用上知識圖譜。

參考連結:https://neo4j.com/blog/graphrag-manifesto/

相關文章