Fast GraphRAG:一个比 GraphRAG 更快、成本更低、更高效的RAG框架开源了(本地安装 & 测试)

向量数据库关系型数据库机器学习

🍹 Insight Daily 🪺

Aitrainee | 公众号:AI进修生

Hi,这里是Aitrainee,欢迎阅读本期新文章。

向大家 分享一个非常有趣的 RAG 工具,它是基于 GraphRAG 的。

先说 GraphRAG 为什么如此受欢迎 ,并且看起来是任何生产级 GraphRAG 流水线的好选择呢?

因为它处理的是节点和图结构,适用于现实世界的场景。

例如,普通的 RAG 只是通过语义搜索来处理与你的使用案例相似的数据。 其过程是: 你将数据切分成小块,然后将其转换为数值表示,并存储到某种向量存储中。 当用户提出查询时,你从向量存储中找到相关的数据,将其附加到查询中,然后交给 LLM,LLM 会给出一个基于这些数据的回答。

但是 GraphRAG 给它带来了一种新的转变,它是对传统 RAG 的结构化、分层式方法。

>/ 本文的主要素材来源于Fahd Mirza(文末)

GraphRAG 过程包括从原始文本中提取知识图谱、构建知识群体层次结构、生成这些群体的摘要... 后在执行 RAG 任务时 利用这些结构。

它有很多优点,最重要的一点是,GraphRAG 做到了普通 RAG 所无法实现的——它能够“连接点”。 GraphRAG 通过将语义概念以节点和边的形式联系起来,从而对这些概念进行整体总结。

而现在 ...

Fast GraphRAG 也是为了帮助解决这个问题,它能智能地适应你的使用案例、数据和查询。

这个 GraphRAG 有一个很有趣的特点,它提供了一个人类可导航的知识视图,可以精确地可视化和更新。

picture.image

它速度快、效率高、成本低(但并非完全免费),并且设计上能够在大规模运行时不需要大量资源。

具有可解释和可调试的知识特性,通过图表提供一个可查询、可视化和更新的人类可导航视图。

同时,系统能够根据领域和本体需求自动生成和优化图表,支持数据变化时的实时增量更新。

通过基于PageRank的图形探索,Fast GraphRAG 提高了准确性和可靠性,且全程异步操作,提供完整的类型支持,确保强大且可预测的工作流程。

总的来说,它是一个高效的知识图谱检索框架,旨在提供可解释性和高精度的代理驱动检索工作流。

介绍的够多了,我们直接进入我的终端,看看如何安装和使用它。

你可以通过 pip 安装 Fast GraphRAG,也可以从源码构建,但我选择了通过 pip 安装,这样简单快捷,安装过程也不会很长。

picture.image

安装完毕后,你需要一个 OpenAI API 密钥,可以从 OpenAI 的平台(platform.openai.com)获取。

picture.image

或者从这里: Bolt + 免费的Mistral 和 Github API:免费且强大的AI代理工作流,无需V0(o1-preview免费)

现在还没有任何方法可以将其与本地的 LLM(如 Llama.cpp、或其他)一起使用,或者你可以选择改底层代码base-url。

代码非常简单,首先我们导入 GraphRAG,然后设置领域(domain)。

picture.image

这里有三件事需要注意:领域,它主要告诉你我们正在处理的是什么,影响整个最高层次的上下文;


          
from fast_graphrag import GraphRAG
          

          
DOMAIN = "Analyze this story and identify the characters. Focus on how they interact with each other, the locations they explore, and their relationships."
      

然后,我们提供一些示例查询,


          
EXAMPLE_QUERIES = [
          
    "What is the significance of Christmas Eve in A Christmas Carol?",
          
    "How does the setting of Victorian London contribute to the story's themes?",
          
    "Describe the chain of events that leads to Scrooge's transformation.",
          
    "How does Dickens use the different spirits (Past, Present, and Future) to guide Scrooge?",
          
    "Why does Dickens choose to divide the story into \"staves\" rather than chapters?"
          
]
      

这是我们期望从自己数据中提出的 问题;

最后,设置我们希望处理的实体类型。例如,我在这里使用了一个包含个人信息的文本文件。


          
ENTITY_TYPES = ["Character", "Animal", "Place", "Object", "Activty", "Event"]
          

          
grag = GraphRAG(
          
    working_dir="./book_example",
          
    domain=DOMAIN,
          
    example_queries="\n".join(EXAMPLE_QUERIES),
          
    entity_types=ENTITY_TYPES
          
)
          

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

          
print(grag.query("Who is Scrooge?").response)
      

./book.txt 这个文本文件包含了关于 Fahd Mirza 博主 的个人数据。

picture.image


          
"In the rapidly evolving landscape of artificial intelligence, one name has energed as a beacon of clarity and insight: Fahd Mirza. This popular YouTube personality and AI enthusiast has captured the "
          
"attention of a broad audience with his exceptional ability to denystify complex AI concepts. Through his eponymous channel, ""Fahd Mirza"", he has established himseif as a respected voice in the AI "
          
"conmunity, making cutting . edge technology accessible to ait. "
          
"Fahd Mirza's unique strength lies in his capacity to distill intricate AI topics into engaging, easy- to-understand content. His videos have resonated with AI enthusiasts, researchers, and students alike, covering a range of topics that include: "
          
"! simplifying AI Research Papers: Fahd Mirza decodes complex research papers, rendering then comprehensible to a wider: audtence. AI News' and Trends Analysis: He provides insightful connentary on the Latest developnents in the AI world. 11 A Broad Impact "
          
"。suoting coplexe cpttts Th ough inowatwe. silatons; Faa mirzg lusrates, tricate. AI lese. facltatin deeer under sandin "
          
"10 Personal AI Projects and Experinents: Viewers gain valuable insights into his hands . on experiences with AI "" Fahd Mirza's channet has garnered a significant following, testanent to his dedication to making AI accesstble. By brtdging the gap between technical expertise and approachabiltty, he has: "
          
13 Democratized AI Knowledge: Opening up the world of AI to a broader audience. 
          
": Fostered Community Engagenent: Encour aging discussion and cotlaboration among AI enthusiasts. artifictal tntelllgence continues to shape our world, Fahd Mtrza's of "
          
Established Thought' Leadership: Cenenting his position as。trusted authortty tn the AI comnunity on YouTube . 
          
"contr tbutions serve. as a vital resource for those seeking to understand tts complexittes. HLs channel stands as a shining. example the power of clear comuntcatlon tn making advanced technology accesstble to all. Subscrtbe to""Fahd Mra""on YouTube to stay updated on the latest AT tnstghts and Lnnovations. "
      

通过 GraphRAG 实例化的对象来执行查询。 我查询的是“Fahad 通常讲解什么 AI 主题? ”

picture.image

结果显示,它确实基于提供的文件数据做出了准确的回答,这非常有趣。

执行这个查询的成本,大约是 10 美分,相比真正的 GraphRAG 来说,这个成本还是很低的。

但是,大量数据或者进行频繁的 API 调用,这个成本可能会迅速增加。因此,将它与本地模型结合使用会是个很好的选择,这样就不用担心成本和请求限制了。

🌟希望这篇文章对你有帮助,感谢阅读!如果你喜欢这系列文章请以 点赞 / 分享 / 在看 的方式告诉我,以便我用来评估创作方向。

💫video source: https://www.youtube.com/watch?v=3Tcwzlp4TQ4

👽Submission:kristjahmez06@gmail.com

参考链接:
[1] github:https://github.com/circlemind-ai/fast-graphrag

[2] https://mp.weixin.qq.com/s/9US8g8PJuf4zuhjP-12H2A

知音难求,自我修炼亦艰

抓住前沿技术的机遇,与我们一起成为创新的超级个体

(把握AIGC时代的个人力量)

picture.image

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

picture.image

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论