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