自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

更快、更強、更經(jīng)濟!超越GraphRAG的大模型RAG系統(tǒng)LightRAG開源啦! 原創(chuàng)

發(fā)布于 2024-11-14 10:01
瀏覽
0收藏

?在這個信息爆炸的時代,我們每天都被大量的數(shù)據(jù)和信息所包圍。對于企業(yè)和研究人員來說,如何從這海量的信息中迅速地找到自己需要的針對性數(shù)據(jù),已經(jīng)成為了一個亟待解決的問題。幸運的是,香港大學(xué)的研究團隊最近推出的LightRAG系統(tǒng),為我們提供了一個新的解決方案。

LightRAG系統(tǒng)是基于RAG(Retrieval-Augmented Generation)的開源技術(shù),它通過引入先進的雙層檢索范式和基于圖的數(shù)據(jù)結(jié)構(gòu),大大提升了信息檢索的全面性和效率。更為重要的是,它能夠快速適應(yīng)新數(shù)據(jù),這在今天這個信息快速更新?lián)Q代的時代尤為關(guān)鍵。

核心創(chuàng)新:基于圖的數(shù)據(jù)結(jié)構(gòu)

與傳統(tǒng)的RAG系統(tǒng)相比,LightRAG的一個顯著優(yōu)勢在于其基于圖的數(shù)據(jù)結(jié)構(gòu)。這種結(jié)構(gòu)能夠有效地捕捉數(shù)據(jù)中實體之間的復(fù)雜關(guān)系,從而使檢索結(jié)果更加精確。舉個例子,在醫(yī)學(xué)領(lǐng)域,LightRAG能夠識別“心臟病”與“心內(nèi)科醫(yī)生”之間的關(guān)系,這種精準(zhǔn)度是傳統(tǒng)方法難以實現(xiàn)的。

LightRAG 增強了分段檢索系統(tǒng) 將文檔轉(zhuǎn)換為更小、更易于管理的片段。此策略允許快速 識別和訪問相關(guān) 信息,而無需分析整個文檔。接下來,我們利用LLMs 來識別和 提取各種實體(例如 名稱、日期、位置和事件)以及它們之間的關(guān)系。這通過此收集的信息進程將用于創(chuàng)建一個全面的知識圖譜,該圖譜突出顯示跨整個文檔集合。基于圖形的文本索引中使用的函數(shù) paradigm 的描述如下:

更快、更強、更經(jīng)濟!超越GraphRAG的大模型RAG系統(tǒng)LightRAG開源啦!-AI.x社區(qū)

高效與經(jīng)濟兼?zhèn)?/h2>

在檢索效率和資源消耗上,LightRAG同樣表現(xiàn)出色。它通過減少不必要的計算和API調(diào)用,有效應(yīng)對大量的信息查詢請求,同時保持資源使用的經(jīng)濟性。在實際應(yīng)用場景中,這意味著LightRAG能夠快速更新并保持高效,即使是在資源受限的情況下也能夠穩(wěn)定運行。

靈活適應(yīng)動態(tài)數(shù)據(jù)

LightRAG的設(shè)計還巧妙地解決了如何適應(yīng)快速變化的外部數(shù)據(jù)庫的問題。通過增量更新機制,系統(tǒng)只需對新增數(shù)據(jù)進行索引和合并,避免了對整個數(shù)據(jù)庫的重新處理。這一策略不僅提升了系統(tǒng)的靈活性,也使得LightRAG能夠在各種動態(tài)環(huán)境中穩(wěn)定運行。

實驗驗證:超越現(xiàn)有模型

研究團隊對LightRAG進行了詳盡的實驗評估,結(jié)果顯示,在全面性和多樣性等多個維度上,LightRAG顯著優(yōu)于目前主流的RAG模型。這一結(jié)果不僅驗證了圖結(jié)構(gòu)在信息檢索中的有效性,也為未來開發(fā)更多強大的AI模型提供了有力的參考。

Agriculture


CS


Legal


Mix




NaiveRAG

LightRAG

NaiveRAG

LightRAG

NaiveRAG

LightRAG

NaiveRAG

LightRAG

Comprehensiveness

32.69%

67.31%

35.44%

64.56%

19.05%

80.95%

36.36%

63.64%

Diversity

24.09%

75.91%

35.24%

64.76%

10.98%

89.02%

30.76%

69.24%

Empowerment

31.35%

68.65%

35.48%

64.52%

17.59%

82.41%

40.95%

59.05%

Overall

33.30%

66.70%

34.76%

65.24%

17.46%

82.54%

37.59%

62.40%


RQ-RAG

LightRAG

RQ-RAG

LightRAG

RQ-RAG

LightRAG

RQ-RAG

LightRAG

Comprehensiveness

32.05%

67.95%

39.30%

60.70%

18.57%

81.43%

38.89%

61.11%

Diversity

29.44%

70.56%

38.71%

61.29%

15.14%

84.86%

28.50%

71.50%

Empowerment

32.51%

67.49%

37.52%

62.48%

17.80%

82.20%

43.96%

56.04%

Overall

33.29%

66.71%

39.03%

60.97%

17.80%

82.20%

39.61%

60.39%


HyDE

LightRAG

HyDE

LightRAG

HyDE

LightRAG

HyDE

LightRAG

Comprehensiveness

24.39%

75.61%

36.49%

63.51%

27.68%

72.32%

42.17%

57.83%

Diversity

24.96%

75.34%

37.41%

62.59%

18.79%

81.21%

30.88%

69.12%

Empowerment

24.89%

75.11%

34.99%

65.01%

26.99%

73.01%

45.61%

54.39%

Overall

23.17%

76.83%

35.67%

64.33%

27.68%

72.32%

42.72%

57.28%


GraphRAG

LightRAG

GraphRAG

LightRAG

GraphRAG

LightRAG

GraphRAG

LightRAG

Comprehensiveness

45.56%

54.44%

45.98%

54.02%

47.13%

52.87%

51.86%

48.14%

Diversity

19.65%

80.35%

39.64%

60.36%

25.55%

74.45%

35.87%

64.13%

Empowerment

36.69%

63.31%

45.09%

54.91%

42.81%

57.19%

52.94%

47.06%

Overall

43.62%

56.38%

45.98%

54.02%

45.70%

54.30%

51.86%

48.14%

簡單嘗鮮

安裝

源碼安裝(推薦)

cd LightRAG
pip install -e .

通過PyPI安裝

pip install lightrag-hku

準(zhǔn)備工作

因為我使用的是OpenAI, 所以設(shè)置對應(yīng)的環(huán)境變量export OPENAI_API_KEY="sk-...",

這里我的測試集用的是西游記的節(jié)選,地址是:https://libart.lyu.edu.cn/2010/1202/c1449a24647/page.htm

樣例代碼

lightrag目前支持4種查詢模式:

  1. naive
  2. local
  3. global
  4. hybrid

import os
from lightrag import LightRAG, QueryParam
from lightrag.llm import gpt_4o_mini_complete, gpt_4o_complete

#########
# Uncomment the below two lines if running in a jupyter notebook to handle the async nature of rag.insert()
# import nest_asyncio 
# nest_asyncio.apply() 
#########

WORKING_DIR = "./books"


if not os.path.exists(WORKING_DIR):
    os.mkdir(WORKING_DIR)

rag = LightRAG(
    working_dir=WORKING_DIR,
    llm_model_func=gpt_4o_mini_complete  # Use gpt_4o_mini_complete LLM model
    # llm_model_func=gpt_4o_complete  # Optionally, use a stronger model
)

with open("./book.txt") as f:
    rag.insert(f.read())

# Perform naive search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="naive")))

# Perform local search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="local")))

# Perform global search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="global")))

# Perform hybrid search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="hybrid")))

當(dāng)然,你也可以選擇本地model, 比如使用Hugging Face的模型:

from lightrag.llm import hf_model_complete, hf_embedding
from transformers import AutoModel, AutoTokenizer

# Initialize LightRAG with Hugging Face model
rag = LightRAG(
    working_dir=WORKING_DIR,
    llm_model_func=hf_model_complete,  # Use Hugging Face model for text generation
    llm_model_name='meta-llama/Llama-3.1-8B-Instruct',  # Model name from Hugging Face
    # Use Hugging Face embedding function
    embedding_func=EmbeddingFunc(
        embedding_dim=384,
        max_token_size=5000,
        func=lambda texts: hf_embedding(
            texts,
            tokenizer=AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L6-v2"),
            embed_model=AutoModel.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
        )
    ),
)

或者使用Ollama模型:

from lightrag.llm import ollama_model_complete, ollama_embedding

# Initialize LightRAG with Ollama model
rag = LightRAG(
    working_dir=WORKING_DIR,
    llm_model_func=ollama_model_complete,  # Use Ollama model for text generation
    llm_model_name='your_model_name', # Your model name
    # Use Ollama embedding function
    embedding_func=EmbeddingFunc(
        embedding_dim=768,
        max_token_size=8192,
        func=lambda texts: ollama_embedding(
            texts,
            embed_model="nomic-embed-text"
        )
    ),
)

LightRAG的優(yōu)缺點

1、解決的問題:

  • 全面信息理解:通過多跳子圖的全局信息提取,能在多領(lǐng)域復(fù)雜查詢中表現(xiàn)出色。
  • 檢索效率高:相比傳統(tǒng)文本分塊遍歷方法,利用圖和向量的集成,大幅減少檢索時間和計算開銷。
  • ?快速適應(yīng)新信息:增量更新算法使系統(tǒng)能及時整合新數(shù)據(jù),保持實時性和有效性。

2、缺點:

  • 檢索方式:無法自動判斷query為細(xì)節(jié)問題或抽象性問題,只有使用LLM才能做出自動化判斷。

3、與GraphRAG的不同點:

  • 架構(gòu)設(shè)計:LightRAG專注于圖結(jié)構(gòu)的向量化實現(xiàn),避免了GraphRAG的社區(qū)遍歷。
  • 檢索方式:LightRAG采用雙層檢索框架,通過向量化的關(guān)鍵詞匹配,實現(xiàn)局部和全局信息的高效整合,降低了計算和存儲開銷。

總結(jié)

LightRAG和GraphRAG都利用圖結(jié)構(gòu)來增強RAG的效果,但它們在實現(xiàn)方式、檢索策略適用場景上有顯著差異。GraphRAG采用模塊化社區(qū)結(jié)構(gòu)分層回答策略,更適合于全局性理解和多層次的復(fù)雜問題分析;而LightRAG則側(cè)重于向量化圖索引增量更新機制,適用于高效、動態(tài)的數(shù)據(jù)環(huán)境。用戶可以根據(jù)具體的應(yīng)用需求選擇合適的架構(gòu),以實現(xiàn)最優(yōu)的檢索和回答效果。

在實驗中,微軟開源的GraphRAG表現(xiàn)出較低的效率,正如論文中所提到的,它需要大量資源,難以支持大型知識庫的工程應(yīng)用,且檢索速度較慢。而LightRAG的資源消耗較少,檢索效率相對更高,盡管兩者的檢索效果可能相差不大,但LightRAG在實際工程中更具實用性。

但是個人覺得,RAG在實際應(yīng)用中仍需根據(jù)情況不斷優(yōu)化,完全依賴LightRAG也存在局限性。關(guān)鍵在于借鑒LightRAG的優(yōu)化思路,并將其靈活應(yīng)用于實際場景。

?

本文轉(zhuǎn)載自公眾號AI 博物院 作者:longyunfeigu

原文鏈接:??https://mp.weixin.qq.com/s/bBvpYlRlPXJcLxEwxcnXcg???


?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦