
如何快速實現REST API集成以優化業務流程
知識圖譜(KG)或任何圖都包括節點和邊,其中每個節點表示一個概念,每個邊表示一對概念之間的關系。本文介紹一種將任何文本語料庫轉換為知識圖譜的技術,本文演示的知識圖譜可以替換其他專業知識圖譜。
知識圖譜表示了任意兩個實體之間的關系,在這個結構中,節點表示著諸如人、地點或事件之類的實體,而邊表示這些實體之間的連接。知識圖譜還包含了第三個元素,通常被稱為謂詞或邊緣標簽,它闡明了關系的性質。
知識圖譜就像智能網絡一樣,顯示了現實世界中的事物是如何連接的。它存儲在圖形數據庫中,并可視化為圖形結構,形成我們所說的“知識圖”。用戶可以像實時聊天機器人對話一樣使用graph數據進行聊天。
知識圖譜有多種用途。通過應用圖算法,我們可以計算任何節點的中心度,從而深入了解一個概念在一系列工作中的重要性。分析連接和斷開的概念集,或確定概念群落,可以提供對主題的全面理解。知識圖譜使我們能夠揭示看似不相關的概念之間的聯系。
此外,知識圖譜可以用于圖檢索增強生成(GRAG或GAG),并促進與文檔的對話交互。與具有固有局限性的傳統版本的RAG相比,這種方法通常產生優越的結果。例如,依賴簡單的語義相似性搜索進行上下文檢索可能并不總是有效的,尤其是當查詢缺乏足夠的上下文時,或者當相關信息分散在龐大的文本語料庫中時。
RAG的一個主要缺點是它很難對復雜而細微差別的查詢提供精確的響應。這種限制源于幾個因素:
理解用戶意圖:RAG系統可能很難完全掌握用戶查詢背后的確切意圖,這是向LLM提供準確信息的關鍵方面。
對矢量嵌入的依賴性:RAG在很大程度上依賴矢量嵌入來解釋查詢并將其與相關信息匹配。雖然這些嵌入是有效的,但它們并不是萬無一失的,有時會導致理解查詢上下文的不準確或過于簡單化。
黑盒性質:生成和比較矢量嵌入的過程是復雜的,而且往往是不透明的。考慮到嵌入可能具有多個維度,在語義搜索中破譯其結構并理解其對相似性得分的影響是一個挑戰。
通用訓練數據:嵌入模型通常在通用數據集上進行訓練,可能會錯過某些查詢所必需的特定細微差別或上下文。這可能導致在不同的內容片段之間繪制出表面上的相似之處。
百科全書式KGs:這種常見類型通過整合百科全書、數據庫和專家見解等不同來源的信息來獲取一般知識。例如,Wikidata匯編了維基百科文章中的大量知識,產生了大量多樣的KGs,其中包含數百萬個實體和多種語言的關系。
常識性KGs:這些KGs專注于日常知識,包含有關對象、事件及其關系的信息。它們有助于理解我們日常生活中使用的基本知識,通常是隱含的知識。例如,ConceptNet包括常識性的概念和關系,幫助計算機更自然地掌握人類語言。
特定領域的KGs:這些KGs針對醫學、金融或生物學等特定領域量身定制,體積較小,但高度精確和可靠。例如,醫學領域的UMLS包含詳細的生物醫學概念和關系,以滿足專業知識需求。
多模態KGs:超越文本,這些KGs包含圖像、聲音和視頻,用于圖像-文本匹配或視覺問答等目的。像IMGpedia和MMKG這樣的例子無縫地融合了文本和視覺信息,以實現全面的知識表示。
? ? ? ?在搜索引擎領域,KGs在提高搜索精度和相關性方面起著關鍵作用。通過理解KGs中嵌入的關系和上下文,搜索引擎超越了單純的關鍵詞匹配,深入研究了用戶查詢背后的意圖和深刻意義。這種演變導致搜索結果不僅更直觀,而且與上下文相適應,從根本上改變了我們在線獲取信息的方式。
? ? ? 數據來源于各種渠道,包括非結構化數據、平面文件、帶有XML或JSON數據庫的結構化數據、傳統SQL數據庫等。通過從這些不同的數據源提取實體和關系來構建知識圖譜。與ETL傳統方法不同,現在使用生成人工智能自動提取實體和關系,還可以生成Neo4j cipher查詢語言。最終將這些元素自動集成到Neo4j數據庫中,如下圖的左側所示。
生成人工智能通過將這些問題轉換為數據庫查詢語言Cipher而發揮作用。對數據庫執行查詢,獲得結果,然后進行另一輪生成人工智能處理,將其轉換回自然語言。
? ? ? ?在中間層,圖數據庫將基于語料庫數據生成知識圖譜schema,并使用節點和邊緣將其生成概念圖。當您連接這些節點時,您可以看到節點和邊的關系,如下所示。
構建知識圖譜有如下四個步驟,但這將根據業務需求和用例場景而有所不同。
? ? ? 語料庫數據流圖如下所示,此流將根據您使用的數據庫模型而有所不同。例如,如果您使用圖形數據庫和數據科學數據庫,數據將存儲在后端系統中。如果你使用內存中的占位符,那么你可以使用Pandas DataFrame等。
在初始階段,首先對文本語料庫進行分段,每個片段被分配一個唯一的chunk_id。在此之后,使用語言模型(LLM)從每個文本塊中提取概念及其語義關系,為這些關系分配W1的權重。需要注意的是,同一對概念之間可能存在多種關系。
隨后,考慮同一文本塊內的上下文相關度,從而在概念之間建立權重為W2的附加關系。不同塊中相同的概念對也可以建立權重為W2的附加關系。為了簡化數據,對相似的對進行分組,它們的權重進行求和,并把它們的關系進行拼接。結果是一個統一的表示,每個不同的概念對都有一條邊,并以特定的權重和關系列表作為其標識符。
? ? ? ?現在,讓我們對DataFrame的每個文本塊運行這個GenAI模型,并將json轉換為Pandas DataFrame,如下所示。
如果您使用的是后端數據庫,那么實體如下所示:
每一行表示一對概念之間的關系,充當連接圖中兩個節點的邊。同一對概念之間可能存在多個邊或關系。data frame的count表示權重,任意設置為4。
? ? ? ?知識圖譜(KGs)與大型語言模型(LLM)的集成有望顯著增強檢索增強生成(RAG)過程,從而改進知識表示和推理。這種協作方法有助于動態知識融合,確保真實世界的知識保持最新,并與文本空間不同。因此,在推理過程中提供的信息仍然是最新的和相關的。
? ? ? ?將知識圖譜(KG)視為大型語言模型(LLM)可訪問的動態數據庫,用于查詢最新的相關信息。事實證明,這種方法在回答問題等任務中非常有效,在這些任務中,保持最新信息至關重要。這些知識與LLM的集成是通過高級架構實現的,促進了文本標記和KG實體之間的深刻交互。這通過結構化的事實數據豐富了LLM的響應,提高了生成信息的質量。
? ? ? ?使用知識圖譜提升RAG技術包括在知識圖譜中搜索相關事實,并將其作為上下文信息呈現給LLM。這種方法能夠生成精確、多樣和真實的內容。例如,當LLM的任務是對最近的事件做出回應時,它可以在制定回復之前先咨詢KG了解最新的事實。
? ? ? 此外,LLM在制作準確描述KG信息的高質量文本方面發揮了重要作用。這對于產生真實的敘事、對話和故事具有巨大的潛力。無論是通過利用LLM的知識還是構建廣泛的KG文本語料庫,這一過程都顯著增強了KG到文本的生成,特別是在訓練數據有限的情況下。
? ? ? ?LLM和KGs的協同效應在推理任務中變得尤為明顯。使用LLM來解釋文本問題并促進對KGs的推理,建立了文本信息和結構信息之間的聯系,增強了可解釋性和推理能力。這種連貫的方法適用于各個領域,從對話系統中的個性化建議到通過結合領域知識圖來加強特定任務的培訓程序。
? ? ? ?可視化階段為這項練習增加了一個令人愉快的維度,提供了一種獨特的藝術滿足感。我們已經確定了影響其大小的邊權重,為節點社區指定了顏色,并建立了節點度來確定其大小。
探索放大和縮小、操作節點和邊以及使用頁面底部的滑塊面板調整圖形物理特性的靈活性。看看這個動態圖是如何幫助提出有見地的問題并提高對主題的理解的!
? ? ? ?當需要混合結構化和非結構化數據來推動RAG應用時,知識圖譜被證明是非常有效的。這篇博客文章指導你在graph DB中使用語料庫、醫學或任何文本上的GenAI函數構建知識圖。GenAI/模型功能的輸出結構整齊,是提取有組織信息的理想選擇。為了在圖構建中獲得LLM的最佳體驗,請詳細定義圖模式,并在提取后加入實體消歧步驟。希望RAG-KG圖支持圖增強檢索的發展,為整體RAG管道的改進做出貢獻。
將知識圖譜(KGs)納入檢索增強生成(RAG)系統具有巨大的潛力。通過利用KGs中結構化和互連的數據,我們可以大大提高現有RAG系統的推理能力。這種強有力的融合有望緩解當前RAG管道中固有的局限性,提供更準確、更具上下文意識和細微差別的響應。
? ? ? ?KGs是LLM可訪問的強大信息庫,使他們不僅能夠檢索事實,而且能夠理解與這些事實相關的關系和潛在背景。這種理解水平的提高對于人工智能系統的發展至關重要,該系統能夠與用戶進行更有效的交互,提供不僅相關而且深刻見解的信息。
參考文獻:
[1] https://regupathit.medium.com/gen-ai-vilimiai-rag-with-knowledge-graph-8a8a6bdcd222
[2] https://knowledge.vilimin.com/
[3] https://vilimin.com/
[4]?https://vilimingpt.com/
本文章轉載微信公眾號@ArronAI