• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 生成式人工智能/大語言模型

    對大型語言模型驅動的知識圖譜的洞察、技術和評估

    數據是現代企業的生命線,推動著從創新到戰略決策的方方面面。然而,隨著企業組織積累了越來越多的信息 (從技術文檔到內部溝通),他們面臨著艱巨的挑戰:如何從海量非結構化數據中提取有意義的見解和可行結構。

    檢索增強型生成 (Retrieval-augmented generation, RAG) 已成為一種熱門解決方案,可通過集成相關企業數據來增強 AI 生成的響應。傳統的 RAG 方法雖然對簡單查詢有效,但在解決需要推理和交叉參考的復雜多層問題時往往有所欠缺。

    問題在于:簡單的向量搜索可以檢索數據,但通常無法提供復雜推理所需的細致入微的上下文。即使是多 查詢 RAG 查詢增強 混合檢索 等高級技術也很難處理需要中間推理步驟或跨數據類型復雜連接的任務。

    本文將探討如何將 大語言模型 (LLMs) 的強大功能與 知識圖形 相結合,應對這些挑戰,使企業能夠將非結構化數據集轉換為結構化、互連的實體。這種集成增強了推理能力,提高了準確性,并減少了幻影:傳統 RAG 系統無法解決的問題。

    本文涵蓋以下領域:

    借助 LLM 驅動的知識圖譜,企業可以獲得更深入的見解、簡化運營并獲得競爭優勢。

    了解知識圖譜?

    知識圖 是信息的結構化表示,由實體(節點)、屬性及其之間的關系組成。通過在龐大的數據集之間建立聯系,知識圖形使數據探索更直觀、更強大。

    大規模知識圖形的突出示例包括 DBpedia (維基百科) LinkedIn Facebook 等平臺使用的社交網絡圖形,或 Google Search 創建的知識面板。

    Google 率先使用知識圖形來更好地理解真實世界的實體及其互連。 這項創新通過多躍點查詢等技術顯著提高了搜索準確性和內容探索能力。

    Microsoft 通過 GraphRAG 擴展了這一概念,展示了 LLM 生成的知識圖形如何通過減少幻覺和實現整個數據集的推理來增強 RAG。這種方法使 AI 系統能夠通過圖形機器學習發現數據中的關鍵主題和關系。

    知識圖形已成為解決復雜問題以及深入了解各行各業和用例不可或缺的工具:

    • 醫療健康:通過映射醫療知識 、患者記錄和 治療途徑 ,實現高級研究和明智決策。
    • 推薦系統 :通過將用戶偏好與相關產品、服務或內容關聯起來,提供個性化體驗,豐富用戶體驗。
    • 搜索引擎:提高搜索結果的準確性和相關性 ,正如 2012 年 Google 集成知識圖形所證明的那樣,徹底改變了信息傳遞方式。
    • 社交網絡 :利用助力社交圖形分析,在 LinkedIn 和 Facebook 等平臺上提供有意義的聯系建議、發現趨勢并提高用戶參與度。
    • 金融:通過分析交易圖形和 識別金融數據中隱藏的關系 ,檢測欺詐活動并發現見解。
    • 學術研究:通過連接科 學出版物和研究數據集 中的數據點 ,促進復雜查詢并發現新見解。

    通過構建和連接不同領域的數據,知識圖形為 AI 系統提供先進的推理能力,從而為復雜的行業挑戰提供更精確、上下文感知的解決方案。

    用于構建由 LLM 生成的知識圖的先進技術和最佳實踐

    在現代 LLM 興起 (即所謂的 ChatGPT 時代之前) 之前,知識圖形是使用傳統的 自然語言處理 (NLP) 技術構建的。此過程通常涉及三個主要步驟:

    這些方法嚴重依賴語音部分(PoS)標記、廣泛的文本預處理和啟發式規則來準確捕捉語義和關系。這些方法雖然有效,但勞動密集型,通常需要大量人工干預。

    如今,指令微調 LLM 徹底改變了這一過程。通過將文本分割成塊,并使用 LLM 根據用戶定義的提示提取實體和關系,企業現在可以更輕松、更高效地自動創建知識圖形。

    然而,構建可靠且準確的基于 LLM 的知識圖形仍然需要仔細關注某些關鍵方面:

    • 模式或本體定義 :數據之間的關系通常必須受特定用例或領域的約束。這是通過模式或本體實現的,它為結構化圖形提供了正式的語義規則。定義良好的模式可指定每個實體的類、類別、關系和屬性,從而確保一致性和相關性。
    • 實體一致性:保持一致的實體表示對于避免重復或不一致至關重要。例如,美國、美國、美國和美國應映射到同一節點。形式語義和消歧義技術可以顯著減少這些問題,但可能仍需要額外的驗證。
    • 強制結構化輸出:確保 LLM 輸出符合預定義結構對于可用性至關重要。有兩種主要方法可以做到這一點::
      • 后處理 :如果 LLM 未按所需格式輸出數據,則必須手動處理響應以滿足所需結構。
      • 使用 JSON 模式或函數調用 :一些 LLM 提供了將輸出限制為特定格式 (例如 JSON) 的功能。在原生支持不可用時,微調可以通過持續的基于指令的訓練訓練模型以生成 JSON 輸出。

    通過解決這些問題并適當微調模型,企業可以使用 LLM 生成的知識圖形來構建穩健、準確且可擴展的數據表示。這些圖表為高級 AI 應用開啟了新的可能性,從而提供更深入的見解并增強決策能力。

    LLM 生成知識圖形的實驗性設置

    為演示如何使用 LLM 創建知識圖形,我們開發了一個結合 NVIDIA NeMo LoRA NVIDIA NIM 微服務的優化實驗工作流(圖 1)。此設置可高效生成 LLM 驅動的知識圖形,并為企業用例提供可擴展的解決方案。

    A workflow diagram shows LLM-based triplet extraction and graph generation using NVIDIA NeMo and NIM microservices.
    圖 1、NIM 微服務加速的 GraphRAG 工作流

    數據采集?

    在此實驗中,我們使用了來自 arXiv 的學術研究數據集 ,其中包含豐富的元數據,例如文章來源、作者詳細信息、出版日期和隨附的圖像。為便于復制,我們在 GitHub 上提供了開源代碼,包括用于下載特定領域研究論文樣本的腳本。

    知識圖形創建?

    該過程使用了 Llama-3 70B NIM 模型 ,并提供了從文本塊中提取實體關系三元組的詳細提示。雖然初始模型表現相當不錯,但某些輸出不準確。

    為解決此問題,我們使用 NVIDIA NeMo 框架和低階自適應(LoRA)對較小的模型 Llama3-8B 進行了進一步優化。 Mixtral-8x7B 生成用于微調的三元組數據,與更大的模型相比,這提高了準確性、降低了延遲并降低了推理成本。

    該過程將生成的三元組解析為 Python 列表或字典,并將其編入索引至圖形數據庫。我們通過以下優化解決了格式不正確的三元組 (例如缺少標點符號或括號) 等難題:

    • 增強的解析功能 :使用改進文本處理的最新 LLM 模型。
    • 微調三元組提取 :添加指令以規范化標點符號,并確保實體格式的一致性。
    • 重新提示: 通過提示 LLM 進行優化響應來糾正格式錯誤的輸出,從而顯著提高準確性。

    準確性比較?

    為了評估用于三元組提取的不同模型和方法的有效性,我們在一組由 100 個新聞文檔組成的測試集中比較了這些模型和方法的準確性。結果凸顯了通過微調和優化實現的性能提升。

    考慮以下示例段落:

    ”Exxon Mobil, Royal Dutch Shell, Total and their peers are set to cut spending on oil and gas exploration for a fifth year in a row in 2018, according to consultancy Wood Mackenzie (WoodMac), despite a growing urgency to replenish reserves after years of reining back investment.”

    在微調 Llama-3-8B 模型之前,提取的三元組不完整,導致后處理函數在解析期間出錯。

    [('Exxon Mobil', 'ORG', 'Announce', 'Cut Spending', 'EVENT'),
    ('Exxon Mobil', 'ORG', 'Operate_In', 'Oil and Gas Exploration', 'FIELD'),
     ('Exxon Mobil', 'ORG', 'Control', 'Oil and Gas Exploration', 'FIELD'),
    ('Royal Dutch Shell', 'ORG', 'Announce', 'Cut Spending', 'EVENT'),
    ('Royal Dutch Shell', 'ORG', 'Operate_In', 'Oil and Gas Exploration', 'FIELD')]'

    經過微調后,該模型的完成率和準確性有了顯著提高。經過優化的三元組更精確,并能更好地與文本上下文保持一致:

    [['Exxon Mobil', 'COMP', 'Cut', 'Spending on oil and gas exploration', 'ACTIVITY'],
     ['Royal Dutch Shell', 'COMP', 'Cut', 'Spending on oil and gas exploration', 'ACTIVITY'],
    ['Total', 'COMP', 'Cut', 'Spending on oil and gas exploration', 'ACTIVITY'],
    ['World’s top oil companies', 'ORG', 'Hesitate', 'Accelerate the search for new resources', 'ACTIVITY']]
    A bar chart shows 98% accuracy for Llama3-8b-LoRa + Tricks, an increase over 54% accuracy with Llama2-70b.
    圖 2、不同模型和方法的準確性比較,用于預測 100 個新聞文檔中的三元組

    用于三元組提取的代碼和模式?

    以下是 /NVIDIA/GenerativeAIExamples 代碼示例,其中展示了用于三元組提取的架構和方法:

    def process_response(triplets_str):
        triplets_list = ast.literal_eval(triplets_str)
        json_triplets = []   
        for triplet in triplets_list:
            try:
                subject, subject_type, relation, object, object_type = triplet
                json_triplet = {
                    "subject": subject,
                    "subject_type": subject_type,
                    "relation": relation,
                    "object": object,
                    "object_type": object_type
                }
                json_triplets.append(json_triplet)
            except ValueError:
                # Skip the malformed triplet and continue with the next one
                continue
         
        return json_triplets
     
    def extract_triples(text, llm):
        prompt = ChatPromptTemplate.from_messages(
        [("system", """Note that the entities should not be generic, numerical, or temporal (like dates or percentages). Entities must be classified into the following categories:
    - ORG: Organizations other than government or regulatory bodies
    - ORG/GOV: Government bodies (e.g., "United States Government")
    - ORG/REG: Regulatory bodies (e.g., "Food and Drug Administration")
    - PERSON: Individuals (e.g., "Marie Curie")
    - GPE: Geopolitical entities such as countries, cities, etc. (e.g., "Germany")
    - INSTITUTION: Academic or research institutions (e.g., "Harvard University")
    - PRODUCT: Products or services (e.g., "CRISPR technology")
    - EVENT: Specific and Material Events (e.g., "Nobel Prize", "COVID-19 pandemic")
    - FIELD: Academic fields or disciplines (e.g., "Quantum Physics")
    - METRIC: Research metrics or indicators (e.g., "Impact Factor"), numerical values like "10%" is not a METRIC;
    - TOOL: Research tools or methods (e.g., "Gene Sequencing", "Surveys")
    - CONCEPT: Abstract ideas or notions or themes (e.g., "Quantum Entanglement", "Climate Change")
     
    The relationships 'r' between these entities must be represented by one of the following relation verbs set: Has, Announce, Operate_In, Introduce, Produce, Control, Participates_In, Impact, Positive_Impact_On, Negative_Impact_On, Relate_To, Is_Member_Of, Invests_In, Raise, Decrease.
     
    Remember to conduct entity disambiguation, consolidating different phrases or acronyms that refer to the same entity (for instance, "MIT" and "Massachusetts Institute of Technology" should be unified as "MIT"). Simplify each entity of the triplet to be less than four words. However, always make sure it is a sensible entity name and not a single letter or NAN value.
     
    From this text, your output Must be in python list of tuple with each tuple made up of ['h', 'type', 'r', 'o', 'type'], each element of the tuple is the string, where the relationship 'r' must be in the given relation verbs set above. Only output the list. As an Example, consider the following news excerpt:
                            Input :'Apple Inc. is set to introduce the new iPhone 14 in the technology sector this month. The product's release is likely to positively impact Apple's stock value.'
                            OUTPUT : ```
                                [('Apple Inc.', 'COMP', 'Introduce', 'iPhone 14', 'PRODUCT'),
                                ('Apple Inc.', 'COMP', 'Operate_In', 'Technology Sector', 'SECTOR'),
                                ('iPhone 14', 'PRODUCT', 'Positive_Impact_On', 'Apple's Stock Value', 'FIN_INSTRUMENT')]
                            ```
          The output structure must not be anything apart from above OUTPUT structure. NEVER REPLY WITH any element as NAN. Just leave out the triple if you think it's not worth including or does not have an object. Do not provide ANY additional explanations, if it's not a Python parseable list of tuples, you will be penalized severely. Make the best possible decisions given the context."""), ("user", "{input}")])
        chain = prompt | llm | StrOutputParser()
        response = chain.invoke({"input": text})
        print(response)
        return process_response(response)

    這種結構化方法可確保更清晰、更準確的三元組提取。

    優化推理?

    為擴展數千個文檔塊的工作流程,我們執行了以下優化:

    • 轉換的模型權重 :將經過 NeMo 訓練的模型權重轉換為 TensorRT-LLM 檢查點。
    • 優化的推理引擎 :使用 GPU 加速的推理來提高性能。
    • 已部署的可擴展系統: 使用優化的模型檢查點實現高吞吐量推理,從而顯著提升大型數據集的性能。

    通過集成先進的 LLM 優化技術和微調工作流程,我們實現了高效且可擴展的知識圖形生成,為企業 AI 應用奠定了堅實的基礎。

    借助 NVIDIA cuGraph 加速知識圖形,實現可擴展的 AI 工作流

    多年來,NVIDIA 一直致力于推進 GPU 上的 AI 工作流,尤其是在 圖形神經網絡 (GNN) 和復雜數據表示等領域。基于這些專業知識, NVIDIA RAPIDS 數據科學團隊開發了 cuGraph ,這是一種用于圖形分析的 GPU 加速框架。cuGraph 通過實現可擴展的高速圖形操作,顯著提高了 RAG 系統的效率。

    在知識圖形檢索增強生成(KRAG)中,我們會查詢知識圖形以檢索相關信息,從而在文本生成過程中增強語言模型的上下文。cuGraph 高性能算法(例如 最短路徑 、PageRank 和 社區檢測 )可快速識別大規模知識圖形中的相關節點和邊緣并對其進行排序。因此,cuGraph 可確保更快、更準確地檢索上下文相關的信息,從而提高 AI 生成輸出的質量。

    cuGraph 之所以特別強大,是因為它與 NetworkX RAPIDS cuDF cuML 等廣泛使用的開源工具無縫集成。此集成使您能夠在盡可能減少代碼更改的情況下加速圖形工作流,從而實現快速采用并立即提升性能。

    在我們的開源實現中,我們使用 cuGraph 通過 NetworkX 加載和管理圖形表示,實現了多 GPU 系統上數十億個節點和邊緣的可擴展性。cuGraph 還支持高效的圖形查詢和多跳搜索,這使其成為處理大型復雜知識圖形不可或缺的工具。

    對 VectorRAG、GraphRAG 和 HybridRAG 的見解?

    我們對三種 RAG 技術進行了全面的比較分析:VectorRAG、GraphRAG 和 HybridRAG。我們使用 nemotron-340b 獎勵模型 來評估其輸出質量。

    評估指標?

    評估側重于以下關鍵指標,評分為 0 到 4 (越高越好):

    • 有用性: 衡量響應解決提示的效果。
    • 正確性: 評估是否納入所有相關事實,且不存在不準確之處。
    • 一致性:評估響應中表達式的一致性和清晰度
    • 復雜性: 確定生成響應所需的知識深度 (例如,是需要深度領域專業知識,還是可以使用基本語言能力生成響應)。
    • 詳細程度: 根據提示的要求分析所提供的詳細程度。

    有關更多信息,請參閱 模型卡

    數據集和實驗設置?

    本研究使用的數據集包含從 arXiv 收集的研究論文。使用 nemotron-340b 合成數據生成模型合成生成真值 (GT) 問答對。

    包含關鍵見解的結果摘要?

    Note: HybridRAG underperforms compared to pure GraphRAG in this instance because the dataset was synthetically designed for multihop reasoning to highlight GraphRAG's strengths. For real-world data, HybridRAG would likely deliver the best results in most scenarios.
    圖 3. 真值 – 長上下文合成對的比較分析注意: 在本例中,與純 GraphRAG 相比,HybridRAG 表現不佳,因為數據集專為多跳推理而設計,旨在凸顯 GraphRAG 的優勢。對于真實數據,HybridRAG 可能會在大多數情況下提供最佳結果。

    分析揭示了不同技術之間的顯著性能差異:

    • 正確性 :GraphRAG 在正確性方面表現出色,提供高度準確且與源數據保持一致的響應。
    • 整體性能 :GraphRAG 在所有指標方面表現出卓越性能,提供準確、一致且符合上下文的響應。它的優勢在于使用關系上下文進行更豐富的信息檢索,這使得它對需要高準確性的數據集特別有效。
    • HybridRAG 的潛力 :根據數據集和上下文注入,HybridRAG 在幾乎所有指標上都表現出優于傳統 VectorRAG 的潛力。它基于圖形的檢索功能可以改進對復雜數據關系的處理,盡管這可能會導致一致性略有下降。
    • HybridRAG 作為一種平衡的方法 :HybridRAG 作為一種平衡且有效的技術出現,將語義 VectorRAG 的靈活性與高級多跳推理和全局上下文摘要無縫結合在一起。這使得它特別適合金融和醫療健康等受監管領域,在這些領域,強有力的響應基礎至關重要。其方法可實現準確高效的信息提取,滿足這些行業的嚴格要求。

    圖形檢索技術的集成有可能重新定義 RAG 方法處理復雜、大規模數據集的方式,使其成為需要跨關系進行多跳推理、高準確性和深入理解上下文的應用的理想選擇。

    探索由 LLM 提供支持的知識圖形的未來

    在本文中,我們探討了將大型語言模型(LLMs)與知識圖形集成如何增強 AI 驅動的信息檢索,并在多跳推理和高級查詢響應等領域表現出色。VectorRAG、GraphRAG 和 HybridRAG 等技術展現出非凡的潛力,但隨著我們不斷突破這項技術的界限,仍然存在一些挑戰。

    以下是一些主要挑戰:

    • 動態信息更新: 將實時數據整合到知識圖形中,添加新的節點和關系,并確保大規模更新期間的相關性。
    • 可擴展性: 管理增長到數十億個節點和邊緣的知識圖形,同時保持效率和性能。
    • 三元組提取細化: 提高實體關系提取的精度,以減少錯誤和不一致。
    • 系統評估: 開發穩健的領域特定指標和基準,用于評估基于圖形的檢索系統,以確保一致性、準確性和相關性。

    未來的方向可能包括以下內容:

    • 動態知識圖形 :改進技術以無縫擴展動態更新,使圖形能夠隨最新數據發展。
    • 專家代理集成 :探索知識圖形檢索如何作為專家系統發揮作用,為特定領域的應用提供專業見解。
    • 圖形嵌入 :為整個知識圖形開發嵌入的語義表示,以解鎖圖形分析和信息檢索的新功能。

    使用 NVIDIA 工具構建和優化知識圖形

    要深入了解這些創新,請探索 NVIDIA NeMo 框架 NVIDIA NIM 微服務 以及用于 GPU 加速知識圖形創建和優化的 cuGraph

    要復制博文中討論的工作流程和其他開源示例,請參閱/ NVIDIA/GenerativeAIExamples GitHub 存儲庫 。無論您是構建動態知識圖、微調 LLMs 還是優化 inference pipelines,這些工具都能助力您高效擴展系統。

    立即借助 NVIDIA 尖端技術推動 AI 創新,突破極限!

    ?

    0

    標簽

    人人超碰97caoporen国产