[萬字長文]GraphRAG 技術棧及樣例全面解析
The RAG Stack: Featuring Knowledge Graphs
- Reducing Hallucinations To Make LLMs Production-Grade With Complex RAG
企業對生成式人工智能的採用正加速進行中,CIO 們準備將應用案例推向生產階段,但在模型輸出準確性和幻覺方面仍存在障礙。爲此,企業越來越善於通過微調和 RAG 對大型模型進行定製。
RAG 將繼續作爲 “複合系統” 的重要組成部分,同時在不同的用例中使用微調和 RAG 方法。在生成式人工智能影響的數萬億勞動成本中,RAG 將在揭示涉及信息檢索的大部分任務中發揮特別重要的作用。隨着注意力轉向“RAG 技術棧”,知識圖譜將成爲實現更復雜的 RAG 和更好性能的關鍵。
促進企業採用
我們仍處於真正實現企業對生成式人工智能採用的早期階段。到目前爲止,只有一小部分 CIO 已將 LLM 項目推向了生產階段。
儘管董事會施加了強大的壓力以加速人工智能的採用,但早期採用者已經開始將實驗性創新預算轉變爲軟件和勞動預算。在 2024 年第一季度,73% 的首席信息官表示 AI / 機器學習對他們的投資重點產生了直接影響,這並不令人驚訝,因爲生成式人工智能可能會影響到數萬億美元的勞動成本。
模型輸出準確性和幻覺 (https://retool.com/reports/state-of-ai-2023) 是阻礙企業將 LLM 用例投入生產的兩個障礙——這就是爲什麼我們看到內部和外部用例的採用週期分化,後者的幻覺容忍度要低得多。
企業在各種部署考慮方面變得愈發複雜,比如將 SLM 與 LLM 結合使用、推理優化、模型路由以及代理設計模式(這僅是其中一部分)。然而,要實現簡單應用程序,首先需要藉助所需設備,即周圍的現成 / 經過調優的模型檢索系統。
微調和 RAG 是公司定製 LLM 的兩種主要方式,儘管它們不是互斥的。
固然,有越來越多的共識認爲,開箱即用的 LLM 需要增強 - Databricks 的 CTO Matei Zaharia 將複合系統
(https://bair.berkeley.edu/blog/2024/02/18/compound-ai-systems/) 描述爲以下內容:
“然而,隨__着越來越多的開發人員開始使用 LLM 構建,我們相信這種關注正在迅速改變:取得了當前最先進的人工智能結果的是由多個組件組成的複合系統,而非單一的模型。”
在企業中,我們在 Databricks 的同事發現 60%的 LLM 應用程序使用某種形式的檢索增強生成(RAG),而 30%的應用程序使用多步鏈。
Anyscale 提供了一個有用的分類法,闡明瞭 RAG 和微調適用於各種用例的情況:
高效的微調技術(如 LoRA)可以以經濟的方式賦予基礎模型領域特定的知識,增強在高度垂直化任務中的性能,其中專有數據在預訓練中很可能被低估。然而,從純經濟的角度來看,對於大多數企業來說,RAG 仍然可能是更好的替代方案:
-
企業的知識庫是動態的並且不斷更新的;重複的微調運行可能變得代價高昂,而檢索數據源可以便宜地更新,支持在關鍵用例中提供更多實時的事實準確性
-
上下文語義窗口和召回不太可能很快收斂,但相關相關的檢索將始終比飽和背景語義更便宜
-
RAG 過程的每個步驟(預處理、分塊策略、後處理、生成)都可以進行優化以提高性能
-
RAG 可以結合引文提供審計軌跡和答案來源的明確可追溯性,增加對模型輸出的信任
作爲一家上市公司,每一個基本點的利潤減速都受到分析師的嚴格審查。在控制成本的同時,RAG 將成爲企業大規模部署 LLM 的關鍵。
瞭解 RAG Stack
一個簡單的 RAG Stack
一個簡單的 RAG 堆棧在概念上很簡單。文件被轉換爲嵌入式向量,這是一組嵌入式向量,是文本的數學表示。這些向量被放入向量數據庫或向量存儲中。當提出查詢時,查詢被轉換爲一組數學表示,與數據庫中的向量進行比較。通過比較最佳匹配的數學表示來檢索和返回最具語義相似性的信息,以構建答案的 LLM。
簡單 RAG 堆棧與高級 RAG 堆棧的區別包括更細粒度的操作方式:
-
數據在進入系統時的處理
-
數據的表示和存儲方式
-
被 LLM 操作的數據
從簡單到複雜,將存在一系列的生產 RAG 技術棧:
_ 相比之下,複雜的 RAG 系統是爲複雜查詢而設計的。它們使用多跳檢索,從多個來源提取和組合信息。這種方法對於回答需要鏈接多個文檔中的不同信息的複雜問題至關重要。_
相對於向量數據庫、嵌入模型和數據提取提供商而言,RAG 技術棧的一個組成部分 - 知識圖譜 - 受到了較少關注。知識圖譜通過爲 RAG 提供額外的上下文,可以是特定於公司或領域的上下文,有助於實現 RAG 和生成式人工智能的全部潛力。考慮到白領任務中涉及信息檢索的比例,RAG 性能的漸進改進產生了可觀的經濟價值。
Neo4j 與微軟合作 GraphRAG,以增強 GenAI 能力
Anurag Tandon,Neo4j 的產品管理副總裁:“知識圖譜和 GraphRAG 的結合對人工智能的轉變具有重要意義。知識圖譜將數據組織成相互連接的實體和關係,構建了一個框架,確保了 RAG 生成的響應準確且與上下文相關。我們對得到了許多 GenAI 客戶的積極反饋感到非常興奮,以及像微軟和谷歌這樣的合作伙伴、加特納這樣的分析師和更廣泛的開發者社區。這只是個開始。”
我們可以參考一家領先的企業軟件公司最近的分析師日活動來說明它們的重要性。
ServiceNow 的人工智能時刻
ServiceNow 是一家市值約爲 100 億美元的企業軟件巨頭,他們全力以赴投入人工智能 (https://erp.today/servicenow-goes-all-in-on-ai/)。這個工作流自動化平臺看到了其人工智能 SKU 產品發佈中最快的採用速度,並且管理層最近在他們的分析師日活動中舉了一些提高企業生產力的例子:
-
30% 的解決時間改善
-
超過 80% 的自助服務轉移改善
-
25% 的開發速度提升
ServiceNow 強調了他們人工智能框架的三個要素之一就是知識圖譜。
對於 ServiceNow 來說,知識圖譜主要用於使 LLM(Language Model)在員工數據上與其他員工、服務和集成的關係方面具有確定性。在使用知識圖譜時,基線的 RAG(Red, Amber, Green)工作量在相關度和準確的上下文檢索方面得到顯著改善。對於 ServiceNow 的企業客戶來說,利用知識圖譜來結構化數據和優化檢索將在可靠性和使用案例的生產級別上產生積極影響。
德國電信
近期,德國電信也提到了他們如何早期使用知識圖譜來提高他們的編碼助手合作伙伴的準確性。在這裏,他們使用 RAG 和知識圖譜來幫助理解如何爲個人開發人員和團隊提供個性化的編碼支持。
Kwesi Acquay,Redpoint Ventures 的負責人:「知識圖譜對於解鎖垂直人工智能代理工作流至關重要,使得人工智能能夠從企業的專有內部知識庫中提取細緻的上下文。這種針對特定公司的上下文在語義相似性中無法找到,例如相似交易和客戶實體關係中的模式,這是專業人員在處理流程中執行關鍵決策所依賴的重要判斷。金融和法律領域的企業尤其應該關注知識圖譜,作爲從生成性人工智能解決方案中獲得更多價值的機會。」
新興的高級 RAG 技術堆棧
新興的 RAG 堆棧包括幾個組件:
數據傳輸 / 提取:
- 需要從特定位置傳入非結構化數據,數據提取仍然是該領域的關鍵瓶頸(這可以包括從 Powerpoint/PDF 文檔中提取簡單的文本等)
向量數據庫:
- 向量數據庫用於存儲表示底層文本的數學嵌入或向量
向量操作:
- 向量操作指的是涵蓋向量創建、向量優化、向量分析等過程的流程簡化。
圖數據庫:
- 圖數據庫用於存儲表示底層文本的語義連接和關係的圖結構
圖操作:
- 與向量操作類似,圖操作涵蓋了圖創建、圖編排、圖優化、主體圖分析等流程的簡化。向量操作和圖操作之間的微妙差別在於,圖操作中的工作流工具需求更大,因爲信息可以以多種層次結構和網絡形式表示。同一信息可以根據用例以不同方式表示。
圖 / 向量數據庫:
- 圖既可以用作數據存儲,也可以用作結構化數據編排層。這意味着圖可以用於存儲以特定方式檢索的知識,或存儲關於如何以特定方式檢索其他位置的數據(如向量數據庫中的數據)的邏輯。因此,在更廣泛的 RAG 系統中,它們可以替代向量數據庫或與之並行使用。
LLM 編排:
- 使用多代理系統操縱信息可能會變得複雜,因此出現了用於 LLM 編排的抽象層來應對這種需求。
LLM:
- 這些是構建在 RAG 系統之上的底層基礎模型,用於爲 LLM 提供適當和相關的信息以制定答案。
將知識圖作爲解鎖方式
Gartner2024 影響力雷達圖,知識圖譜被認爲是即將到來的最有影響力的技術
知識圖譜基本上是節點和關係的集合。節點代表個別數據點,而關係定義它們之間的連接。每個節點可以具有屬性,提供有關節點的附加上下文或屬性。這種方法提供了一種靈活而直觀的方式來建立數據中複雜的關係和依賴關係。人們經常形容知識圖譜是模仿人類大腦思維方式的一種近似方式。
圖數據庫 / 知識圖譜已經存在一段時間了,但其歷史應用範圍一直較窄。在歷史上,使用知識圖譜主要是用於類似於數據字典的用途,即在不同數據孤島中強制執行語義結構,統一數據集以揭示隱藏的關係。例如,能夠將一個數據庫中的 "user_id" 與另一個數據庫中的 "USER-name" 進行關聯。這種用例過去通常是一個痛苦的手動過程,只有大公司纔會費心去做,而且通常必須由領域專家手動完成。當時的主要價值主張是針對大數據分析的。
然而,LLM RAG 系統已經成爲知識圖譜的一個完全不同的價值主張的消費者。能夠在單詞之間建立明確的關聯意味着您可以強制確保 LLM 理解 "USER -> Owns_A -> Golden_Retriever -> Has_A_Disease"。通過查看其知識庫中的結構化圖形,這有助於企業減少幻覺,注入上下文,並充當記憶、個性化機制以及概率 LLM 的結構化補充。
在這種用例中,有趣的是,儘管知識圖譜可以幫助使 RAG 系統更加企業就緒,但 LLM 也可以幫助自動化知識圖譜的創建。因此,儘管對知識圖譜的興趣和需求增加了,但 LLM 也可以被結構化到工作流程中以自動化不同類型的知識圖譜創建,增加了圖譜的適用性和可訪問性。
知識圖譜在 RAG 中有兩種適用方式:
-
作爲檢索信息的數據存儲
-
作爲語義結構的數據存儲,用於檢索向量塊
如果它們是數據存儲,可以與向量數據庫並行使用或替代。如果它們是用於檢索向量塊的語義結構的數據存儲,它們將與向量數據庫並行使用。
使用知識圖譜作爲數據存儲的 RAG 系統的示例,可以檢索向量塊。
作爲一個數據存儲從中檢索信息的知識圖譜示例。
一個文檔的知識圖譜示例,用於檢索正確的向量塊。請注意,所有段落都與其相關的塊有關聯。
作爲數據存儲,知識圖譜需要對重要數據和最佳知識表示形式有細緻的理解(例如,我是存儲文檔結構還是基於概念的關係映射等),以及每個圖譜如何與 RAG 系統中的不同代理進行交互等等。
這需要工作流工具和離散數據管道來幫助管理包含不同數據類型和數據抽象級別的不同圖譜之間的編排。就像您不會使用單個提示來捕捉工作流的所有描述方式一樣,而是將其分解爲許多離散提示和代理,使用單個圖表或表來存儲所有數據是難以操作的,難以創建、維護或編排的,對於信息檢索工作流來說,一系列小圖譜更爲可取。
使用知識圖譜相關的場景
我們可以從幾個角度思考在 RAG 系統內何時應該使用知識圖譜。
首先,我們來看看使用和不使用知識圖譜的實際場景列表。這裏的主要考慮因素在於底層數據的複雜性,以及檢索過程中是否涉及分層或網絡結構。
知識圖譜發揮作用的場景:
概念聚合:需要合併或與彼此交流的兩個不同文檔或數據源
-
一個例子是當您試圖將來自多個文檔和數據源的信息進行合併時。一個有用的例子是爲 VC 基金創建 RAG 系統時。VC 基金有聯繫人列表、他們所從事的行業以及他們所關聯的基金。人員、行業和基金理想情況下應連接到存在的更廣泛的上下文和數據,例如新聞文章之類的非結構化文本。
-
這也可以看作是一種多跳推理的形式,因爲它允許您自動組合多個來源的信息,前提是它們涵蓋了相同的概念或上下文。
概念對齊:兩個不同領域之間的自動通信
-
在企業的工作流程中,將新信息融入現有的知識庫意味着您需要調整新信息與現有信息的特定部分之間的交互方式。
-
一個例子是將臨牀護理實踐與醫療環境中的患者記錄相關聯。例如,臨牀護理的外部最佳實踐正在通過新的研究和臨牀試驗進行更新。這些信息可以直接傳輸到患者記錄和他們具體的病歷中。其結果是將最新的安全、經過測試的臨牀護理實踐直接傳達給最有可能從新研究中受益的特定患者。
-
另一個例子可以在農業行業中找到,不同的特定領域對決策和結果起到貢獻。例如,特定的天氣數據與特定的土壤數據結合,並一起傳達,是理解性能和產量所必需的。這些天氣和土壤數據屬於不同的領域,具有不同的更新頻率、不同的細粒度、不同的供應商,所有這些都需要一起理解以獲得最佳結果。調整這些信息的結果是更全面地理解當前和預測的廣泛農業系統的性能,從而更準確地獲得產量和成本信息,讓您能夠利用非結構化的專家建議和 LLM 推理能力的優勢。在這裏可以看到一個大豆病蟲害推薦的案例研究。
-
綜合數字孿生是最典型的例子,因爲數字孿生需要將許多不同的領域結合在一個代表性的系統中。例如,在建築行業中,瞭解在建築過程中給排水系統和電氣系統可能如何相互作用,需要調整特定概念(如建築時間表、操作的物理空間等)。
分層檢索:通過分層步驟 / 分類實現確定性的檢索
-
下面的獸醫保健示例展示了通過首先遍歷犬種來實現通過分層檢索症狀和疾病的更確定性的檢索的方法。
-
這在標準操作程序中也很常見,在獲取最終正確答案之前,必須按照一系列步驟的層次結構進行操作。在複雜情況下,此層次結構也可能類似於一個網絡,其中特定步驟可能會將您帶回到過程的早期階段。
分層推薦:通過分層類別改進推薦系統
- 這是在如何使用知識圖確保 Airbnb 和 DoorDash 的推薦系統以一種分層和上下文相關的方式提供推薦的示例。
個性化 / 記憶:
-
記憶和個性化是同一個硬幣的兩面,因爲個性化只是一種有特定場景中應當返回和考慮的主觀記憶。這種主觀記憶可以通過圖的架構預定義。
-
假設您想要個性化您的個人財務 AI 系統與您的用戶之間的互動。您知道您想要通過確保 LLM 在提到時跟蹤用戶的興趣愛好來個性化它,這樣以後可以根據興趣愛好提供相關活動的建議。現在,您可以設置架構(“興趣愛好”),描述架構的外觀,並在以後的時間跨度內,通過在所有對話中提取用戶提到的所有興趣愛好,用於未來的提取,形成一個知識圖譜。
不適用知識圖譜的情況
-
您的系統中錯誤的數量很少,而且特定錯誤的性質並不嚴重,可以通過手動主體系統手動構建語義連接來解決。
-
容忍錯誤較多的面向消費者的聊天機器人
-
非分層的、非語義相似的答案集 / 知識庫(即 FAQ Q:A 基礎)
-
時間序列信息
關於需要表示爲網絡、層次結構或扁平結構的基礎信息,可以考慮一個更具普遍性的框架。
這種評估可能不一定針對所有數據進行,而是針對您試圖進行 RAG 的特定信息進行。單個組織可能同時具有扁平的特定信息和層次結構的特定信息。
當信息本身存在需要特定遍歷的非扁平結構時,類似知識圖的圖結構可以幫助表示啓用更具結構化的信息檢索的層次結構或網絡結構。
分層信息結構可以以各種方式存在,可能並不明顯是 “複雜” 的。例如,客戶支持傳統上不被視爲複雜的信息系統。零售客戶支持用例中的一個假設問題是能夠確保爲正確的商店檢索正確的營業時間。然而,語義相似性的限制意味着有時會返回隨機的營業時間作爲答案。
這家 WhyHow.ai 設計合作伙伴希望將關於購物中心中所有商店的信息都表示爲一個圖。這樣,當 LLM 試圖檢索相關信息時,它將遍歷該圖,首先識別問題中提到的具體商店,然後檢索與該特定商店相關聯的營業時間。由於信息存儲在一個圖中,混淆不同商店的不同營業時間的機會要低得多,因爲檢索過程更具結構化。
RAG 中知識圖譜如何工作的案例研究
另一個設計合作伙伴是一家獸醫保健初創企業,希望比較不同動物品種之間的疾病和症狀。該設計合作伙伴正在爲獸醫放射科醫師構建支持人工智能的工具,以幫助他們快速診斷動物疾病並生成報告。他們嘗試向 LLM 提供動物歷史記錄、專家意見以及醫療文件(從向量數據庫中檢索)以生成一份患病動物的診斷報告、治療選擇和後續步驟。然而,由於不同種類的疾病和治療方式取決於動物的品種,可靠地從向量數據庫中按品種提取準確的信息並不起作用。向量相似性搜索返回了適用於任何動物的疾病信息。因此,許多生成的診斷和治療信息是不正確的。
該設計合作伙伴聯繫了 WhyHow.AI,因爲他們知道他們需要一種更結構化的方法來組織和檢索數據,而不需要他們經歷另一個冗長的重新優化塊劃分、標記或分片策略的過程。
這個設計合作伙伴希望實現以下目標:
-
一個按照動物品種、它們的疾病和治療方法的特定本體論要求制定的良好結構的圖形
-
一種不需要反覆手動重建圖形就能不斷更新圖形中關於新品種動物的新信息的方法
影響:
由於每個動物都有自己獨立的症狀和疾病圖譜,RAG 系統可以根據動物逐個查詢圖譜,並確保只返回與該動物相關的信息,消除了引入無關信息的風險。
“當前的 LLM 方法在準確性方面存在一個未被解決的隱藏侷限。通過 WhyHow.AI 基礎設施提供的知識圖譜結構,我們可以以前所未有的方式在放射學報告中使用人工智能。這表明我們的數據可以以更高效的方式用於可靠的工作流程,更加具體和快速。”—WhyHow.AI 設計合作伙伴報價
領域特定企業的長期戰略壁壘是知識圖譜
有趣的一件事是,公司越來越多地使用知識圖譜作爲他們戰略長期優勢的核心,因爲公司希望瞭解如何在新的人工智能時代中創建一個優勢。大多數公司所擁有的關鍵優勢是特定行業內的專業知識和數據。主要問題是如何將現有的、大部分爲非結構化的數據轉化爲具體和切實的優勢。人們處理這個問題的兩種主要方法是要麼訓練一個特定領域的模型,要麼構建一個內部知識庫,以便更容易地利用、操作或與這些數據交互,通過某種類型的結構化知識庫,包括知識圖譜。
BloombergGPT 的故事展示了訓練模型可能存在的一些潛在問題,而公司越來越多地將知識圖譜視爲他們的長期優勢,因爲它可以作爲可擴展的結構化領域專業知識的表達方式,可以用作 RAG 的基礎構建模塊,甚至可以使用已經完成的圖譜在未來對特定模型進行微調。
換句話說,在第三方技術以驚人的速度發展的時代,專注於清理和準備特定領域的專有數據以供接入這些系統,代表着一個始終保持優勢的基礎構建模塊。
“我們無法確定是否需要花費數百萬美元來訓練一個也許與一些基礎模型重疊或不重疊的模型。但以結構化的方式表達我們的知識是一種可以在短期和長期中給予我們優勢的方法。” — WhyHow.AI 設計合作伙伴(大型上市獨角獸)提到
未來:小圖譜和多智能體 Agent 系統
適用於 RAG 的圖譜如何進行適應存在巨大的差異,特別是小圖譜。與創建所有數據的大型知識表示不同,LLMs 和工作流工具可以幫助創建與相關信息密切相關的非常具體的知識表示。這在多智能體 RAG 系統的背景下尤其有用,隨着信息檢索系統變得更加複雜,它們將得到發展。
通過獨立管理並與每個單一智能體相關的較小子圖,我們可以實現對知識的逐個概念或逐個子圖層面的操作。
下面的圖顯示了一個多智能體系統,每個智能體代表醫院入職流程中信息處理階段的特定步驟。通過對流程進行智能體拆分,並在患者記錄、醫生類型與可用性以及可用牀位等方面進行小範圍圖表建模,每個智能體不需要從一個涵蓋所有內容的大型‘醫院圖表’中進行復雜的數據提取過程。
由於圖表範圍侷限,所產生的錯覺面積較小,並且動態檢索相關信息的任務更加輕鬆。就像在複雜過程中我們使用多智能體系統替代單一智能體系統一樣,我們將越來越多地使用多圖表系統來進行復雜信息檢索過程,而不是使用單一圖表系統。
結論
隨着 RAG 在企業採用生成式 AI 技術中變得核心化,特別是 RAG 堆棧和知識圖譜將對概率模型施加確定性程度而變得不可或缺。此外,知識圖譜可以作爲關鍵基礎設施,促進未來生成式 AI 創新,如 AI 多智能體系統。
考慮到數萬億美元的勞動力成本可以用於人工智能,並且其中一部分涉及信息檢索,基於知識圖譜的 RAG 堆棧將成爲可靠性和性能增強的關鍵,以將內部和外部用例投入生產。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/wALg2ZgK314fDqwTfCnuuw