但GraphRAG在處理全局?jǐn)?shù)據(jù)查詢時(shí)成本非常高,尤其是應(yīng)用在那些大參數(shù)的AI模型中格外明顯,查詢的過程中也存在延遲、不準(zhǔn)確等問題。
今天凌晨,微軟研究院發(fā)布了GraphRAG迭代版本——LazyGraphRAG。
這個(gè)RAG的最大亮點(diǎn)之一就是成本非常低,數(shù)據(jù)索引成本只有完整版GraphRAG的0.1%,同時(shí)采用了全新混合數(shù)據(jù)搜索方法,生成結(jié)果的準(zhǔn)確率、效率等卻更好,很快發(fā)布開源版本并加入到GraphRAG庫中。
什么是RAG——(檢索、增強(qiáng)、生成)
RAG(Retrieval-Augmented Generation,檢索增強(qiáng)生成) 是一種結(jié)合了信息檢索技術(shù)與語言生成模型的人工智能技術(shù)。該技術(shù)通過從外部知識庫中檢索相關(guān)信息,并將其作為提示(Prompt)輸入給大型語言模型(LLMs),
以增強(qiáng)模型處理知識密集型任務(wù)的能力,如問答、文本摘要、內(nèi)容生成等。RAG模型由Facebook AI Research(FAIR)團(tuán)隊(duì)于2020年首次提出,并迅速成為大模型應(yīng)用中的熱門方案。
檢索增強(qiáng)生成
什么是RAG?
RAG(Retrieval-Augmented Generation,檢索增強(qiáng)生成),RAG是一種 AI 框架,它將傳統(tǒng)信息檢索系統(tǒng)(例如數(shù)據(jù)庫)的優(yōu)勢與生成式大語言模型 (LLM) 的功能結(jié)合在一起。
LLM通過將這些額外的知識與自己的語言技能相結(jié)合,可以撰寫更準(zhǔn)確、更具時(shí)效性且更貼合具體需求的文字。
如何理解RAG?
RAG的目的是通過從外部知識庫檢索相關(guān)信息來輔助大語言模型生成更準(zhǔn)確、更豐富的文本內(nèi)容。那我們?nèi)绾卫斫釸AG的檢索、增強(qiáng)和生成呢?
微軟新升級的LazyGraphRAG
數(shù)據(jù)索引階段
GraphRAG:主要依賴于大模型來提取和描述實(shí)體及其關(guān)系,并為每個(gè)實(shí)體和關(guān)系生成總結(jié)。這個(gè)過程涉及到圖統(tǒng)計(jì)來優(yōu)化實(shí)體圖,并提取出層次化的社區(qū)結(jié)構(gòu)。然而,這種方法需要借助大量的語言模型處理,導(dǎo)致GraphRAG的數(shù)據(jù)索引成本非常高。
LazyGraphRAG:在數(shù)據(jù)索引階段不進(jìn)行任何預(yù)先的總結(jié)或嵌入生成,而是采用NLP名詞短語提取來識別概念及其共現(xiàn)關(guān)系,然后再通過圖統(tǒng)計(jì)來優(yōu)化概念圖,并提取層次社區(qū)結(jié)構(gòu)。這種方法顯著降低了索引成本。
查詢處理方面
GraphRAG:使用廣度優(yōu)先搜索來確保查詢回答時(shí)考慮了整個(gè)數(shù)據(jù)集的廣度。
LazyGraphRAG:結(jié)合了最佳優(yōu)先搜索和廣度優(yōu)先搜索的動態(tài),采用迭代加深的方式。它首先按相似度排名文本片段,然后通過動態(tài)選擇相關(guān)社區(qū)來逐步細(xì)化查詢結(jié)果。這種方法使得LazyGraphRAG能夠支持本地和全局查詢,同時(shí)在考慮整個(gè)數(shù)據(jù)集的廣度的同時(shí),高效地找到最佳匹配的文本塊。
GraphRAG | LazyGraphRAG | |
Build index構(gòu)建索引 | 使用 LLM 提取和描述實(shí)體及其關(guān)系,b) 使用 LLM 總結(jié)每個(gè)實(shí)體和關(guān)系的所有觀察結(jié)果,c) 使用圖形統(tǒng)計(jì)來優(yōu)化實(shí)體圖并提取分層社區(qū)結(jié)構(gòu) | 使用 NLP 名詞短語提取來提取概念及其共現(xiàn),b) 使用圖形統(tǒng)計(jì)來優(yōu)化概念圖并提取分層社區(qū)結(jié)構(gòu) |
優(yōu)化查詢 | None – 整個(gè)過程中使用原始查詢 | 使用 LLM 來 a) 識別相關(guān)的子查詢并將它們重新組合成一個(gè)擴(kuò)展的查詢,b) 使用概念圖中的匹配概念來優(yōu)化子查詢 |
匹配查詢 | None – 使用所有社區(qū)摘要回答所有查詢 ( 廣度優(yōu)先 ) | 對于每個(gè) q 子查詢 [3-5]: – 使用文本塊嵌入和塊-社區(qū)關(guān)系,首先按與查詢的相似性對文本塊進(jìn)行排名,然后按其排名靠前的社區(qū)排名對社區(qū)進(jìn)行排名k 個(gè)文本塊 ( 最好在前 ) – 使用基于 LLM 的句子級相關(guān)性評估器來評估前 -k 個(gè)來自社區(qū)的未經(jīng)測試的文本塊(按排名順序排列)( 廣度優(yōu)先 ) – 遞歸到子社區(qū)之后z個(gè)連續(xù)社區(qū)產(chǎn)生零相關(guān)文本塊,或達(dá)到相關(guān)性測試預(yù)算 / Q( 迭代加深 ) |
地圖答案 | 使用 LLM 并行回答隨機(jī)批次社區(qū)摘要的原始查詢 | 對于每個(gè) q 子查詢 [3-5]: – 從相關(guān)文本塊構(gòu)建概念子圖 – 使用概念的社區(qū)分配將相關(guān)塊分組在一起 – 使用 LLM 從相關(guān)塊組中提取與子查詢相關(guān)的聲明,作為僅關(guān)注相關(guān)內(nèi)容的一種方式 – 對提取的聲明進(jìn)行排名和過濾,以適應(yīng)預(yù)定義的上下文窗口大小 |
減少答案 | 使用 LLM 通過映射的答案來回答原始查詢 | 使用 LLM 通過提取的 map 聲明來回答擴(kuò)展的查詢 |
在靈活性和擴(kuò)展性方面,GraphRAG由于其豐富的總結(jié)信息,可以用于多種用途,但高成本限制了其在一次性查詢和探索性分析中的使用。
LazyGraphRAG則提供了統(tǒng)一的查詢接口,支持本地和全局查詢,非常靈活,適合一次性查詢、探索性分析和流式數(shù)據(jù)使用場景。
在應(yīng)用場景上,GraphRAG適合需要高質(zhì)量、全面查詢結(jié)果的場景,例如,企業(yè)級知識管理和復(fù)雜數(shù)據(jù)分析等。而LazyGraphRAG則適合需要高效處理全局查詢且對成本敏感的場景,如中小企業(yè)和個(gè)人開發(fā)者的內(nèi)容推薦系統(tǒng)和項(xiàng)目管理工具,這對于那些資源有限的人來說非常友好。
將向量RAG和GraphRAG與延遲LLM使用混合
LazyGraphRAG旨在融合向量RAG和GraphRAG的優(yōu)點(diǎn),同時(shí)克服它們各自的局限性:
LazyGraphRAG以迭代深化的方式結(jié)合了最佳優(yōu)先和廣度優(yōu)先搜索動態(tài)。與完整GraphRAG的全局搜索機(jī)制相比,這種方法在延遲LLM使用并顯著提高答案生成效率的方式上是“懶惰的”。整體性能可以通過一個(gè)主要參數(shù)(相關(guān)性測試預(yù)算)進(jìn)行擴(kuò)展,該參數(shù)以一致的方式控制成本-質(zhì)量權(quán)衡。
結(jié)語
LazyGraphRAG在成本、技術(shù)、靈活性與擴(kuò)展性、應(yīng)用場景以及性能評估等方面都展現(xiàn)出了顯著的優(yōu)勢。它的發(fā)布將為數(shù)據(jù)檢索和分析領(lǐng)域帶來新的技術(shù)突破和應(yīng)用前景。(文/宋雨涵)