GraphRag Nebula实战(1) - 引言

学习 

作者近期对以前开发的rag系统进行了升级,并研究了多个GraphRag框架,如fast-graphrag和lightrag。作者打算搭配nebula数据库实现GraphRag,并分享开发过程中的经验。文章通过展示一个实例,使用Llama-index和deepseek-v3技术,展示了如何从自媒体文章和百度简介中提取图结构,并成功关联“何同学”和“何世杰”两个实体。

AI答非所问?你的知识库为什么不好用?4500字长文带你读懂rag发展史

学习 

文章摘要:本文介绍了RAG(检索增强生成)技术的演进历程,从最初的Naive RAG到Advanced RAG、Modular RAG、Graph RAG以及最后的Agentic RAG。文章详细描述了每种形态的特点、技术突破、应用场景和局限性,并提到了文档处理在RAG系统中的重要性和相关开源项目的应用。最后,文章探讨了RAG技术的实用化和落地应用的前景,以及AI自主决策在RAG未来发展中的重要作用。 关键词:RAG、科技前沿、AI答非所问、知识库、发展历程 一、引言 近年来,人工智能技术在自然语言处理领域取得了显著进展,其中RAG(检索增强生成)技术备受关注。RAG通过集成实时数据检索来增强大型语言模型(LLM),以提供与上下文相关的最新响应。本文旨在带您了解RAG技术的发展历程,从最初的Naive RAG到Agentic RAG,探究RAG的进化历程和实用化前景。 二、RAG的初步形态:Naive RAG Naive RAG是RAG技术的初步形态,基础但功能相对简单。它依赖于简单的基于关键字的检索技术从静态数据集中获取文档,然后利用这些文档增强语言模型的生成功能。虽然Naive RAG存在局限性,如缺乏上下文感知、碎片化输出和可扩展性问题,但它为集成检索与生成提供了关键的概念验证,为更复杂的范式奠定了基础。 三、RAG的进阶形态:Advanced RAG Advanced RAG是RAG技术的重要进步,实现了密集向量搜索和上下文重新排序等技术突破。它能够在用户查询和检索到的文档之间实现更好的语义对齐,从而提供更精准的答案。然而,Advanced RAG仍然面临计算开销和可扩展性受限等挑战,尤其是在处理大型数据集或多步骤查询时。 四、RAG的模块化发展:Modular RAG Modular RAG是RAG技术的重要发展方向,它将RAG系统拆分为可替换的模块,如检索器、生成器和工具接口,按需定制。这种灵活性使得Modular RAG能够适应不同的用例,提高了系统的可配置性和适应性。Modular RAG的出现打破了“一刀切”的解决方案,成为企业落地RAG的主流选择。 五、RAG的关系化拓展:Graph RAG Graph RAG是RAG技术的关系化拓展,通过集成基于图的数据结构来扩展传统的检索增强生成系统。它能够利用图形数据中的关系和层次结构来增强多跳推理和上下文丰富性,实现更丰富、更准确的生成输出。然而,Graph RAG也面临着可扩展性、数据依赖性和集成复杂性的挑战。 六、RAG的终极形态:Agentic RAG Agentic RAG作为RAG技术的终极形态,追求AI自主决策的能力。它通过智能代理技术实现AI系统的自主决策能力,能够自主处理复杂任务、自适应调整参数和自主优化性能。Agentic RAG的出现将带来RAG技术的重大突破,为实现真正的智能化应用提供支持。 七、文档处理在RAG系统中的重要性和相关开源项目应用 在RAG系统中,文档处理是一个核心模块,其质量直接影响后续的检索结果和回答生成效果。为了提升文档处理的效果,出现了许多开源项目,如微软的Markdown和基于模型的分片处理Agentic Chunking等。这些项目为RAG系统的文档处理提供了有效的工具和方法。 八、结论与展望 RAG技术作为自然语言处理领域的重要突破,经历了从Naive RAG到Agentic RAG的演进历程。未来,随着技术的不断发展,RAG系统将更加实用化、智能化和自主化。我们将继续关注RAG技术的发展,期待它在各个领域带来更大的突破和创新。

fast-graphrag 探索(4)- 我把模型服务干崩了!

学习 

文章摘要:本文主要描述了小胖在使用fast-graphrag模型处理研报数据的过程中所遇到的问题及解决方法。文章首先介绍了小胖按照官方example调整模型参数并写入研报数据的过程,接着出现了生成数据文件过小、数据丢失的问题,通过仔细检查代码,发现了n_checkpoints参数设置不当导致的问题。然后文章描述了小胖通过限制并发量来解决本地模型中转服务挂掉的问题。最终,小胖成功解决了所有问题,实现了程序的平稳运行。文章还介绍了fast-graphrag模型的开源性质和其在处理研报数据方面的应用。

fast-graphrag 探索(3)- insert

学习 

摘要:本文介绍了fast-graphrag的插入流程,包括state_manager属性的介绍、GraphRAG类实例的state_manager是DefaultStateManagerService的介绍、以及插入文档到GraphRAG时的具体步骤。文章详细描述了插入过程中的关键步骤,如调用state_manager的insert_start方法、读取历史数据、过滤重复数据、提取实体和关系、执行upsert操作等。此外,文章还提到了模型应用的一些经验和看法,并鼓励读者在评论区分享自己的经验。

fast-graphrag 探索(2)

学习 

本文探索了fast-graphrag库的GraphRAG类,它是基于Graph的检索增强生成系统的入口点。文章详细解释了GraphRAG类的几个关键部分,包括继承自BaseGraphRAG类的泛型特性、数据类概念、依赖注入以及如何使用泛型提高代码的灵活性。同时,文章还介绍了如何使用泛型创建简单的图类,并对比了使用和不使用泛型的区别。最后,文章展示了如何初始化GraphRAG类并实例化其中的服务和策略。整体来看,本文旨在帮助读者理解fast-graphrag库中GraphRAG类的基本结构和功能,为后续的模型应用和开发打下基础。

fast-graphrag 探索(1)

学习 

摘要: 本文主要介绍了对fast-graphrag项目的初步探索和实践。首先,简要介绍了数据准备阶段,包括使用模型生成故事以及官方demo的修改。接着,描述了测试代码的执行过程,包括环境变量的设置、GraphRAG的创建以及数据的插入和查询。然后,展示了生成的pkl文件和pklz文件的处理方式,并解释了使用这些文件的原因。最后,对fast-graphrag项目进行了拓展,包括后续的查询操作和可能的进一步应用。整体而言,这是一个有趣且富有挑战性的项目,对于理解和应用图结构数据有一定的帮助。

他会是RAG方案的王者吗?

学习 

文章讨论了RAG(Retrieval Augmented Generation)技术的几个主要问题,并介绍了RAG如何解决这些问题。通过从海量数据源中检索信息来辅助大语言模型生成答案,RAG克服了LLM的一些固有局限性,提高了生成内容的可靠性和可解释性。文章还介绍了最近两年RAG技术的发展,包括GraphRag和fast-graphrag等。其中,fast-graphrag是一个号称更加高效的框架,测试结果表现优异,安装简单,且提供测试代码示例。但具体效果需进一步测试验证。关键词:python,RAG技术,fast-graphrag。

lightrag

学习 

LightRAG是一个处理知识图谱和向量数据库的框架,主要用于信息检索和知识管理。本文主要概述了LightRAG的核心组件、主要功能和查询流程,详细介绍了aquery方法和hybrid_query方法的定义、流程和相关代码。LightRAG通过提取查询中的关键词并构建相应的上下文,最终生成响应。此外,文章还提到了好玩的项目,如使用LightRAG进行信息检索和知识管理。