GenAI Team Introduction Siwei GU NebulaGraph GenAI LeadNebulaGraph CommitterMicrosoft MVP(Python, AI) Open-Source, GenAI, Graph, Python, …Believe in Open Source & build things with magicto help people do the same. wey-guwey_guhttps://www.siwei.io RAG范式 Retrieval Augmented 索引:准备数据以进⾏⾼效检索 查询:搜索和检索相关参考材料 Generation: 从检索到的信息中进⾏上下⽂学习 基准RAG 索引: Chunk and Embedding/BM25⽣成QA对分层块摘要 查询: Vector/Hybrid SearchRewrite Query递归搜索/复合搜索Agentic重排 RAG挑战 细粒度检索:碎⽚化知识 全局上下⽂:丢失连接 语义相似度:相关性错配 分层摘要:宏观问题挑战 ⼤海捞针(Needle in Haystack) 细粒度,分散的上下⽂检索(Chunking) 分割内容可能会使检索细粒度、分散的知识变得具有挑战性。分区可能会在多个⽚段中稀释关键信息,使其更难捕获完整的上下⽂。 穿针引线(Connecting the Dots) 全局上下⽂/⾯向连接的检索(Chunking) 线性分割⼤块知识可能会导致丢失全局上下⽂/连接。⾯向连接的检索在上下⽂分散在多来源(不具有局部性)时可能有挑战。 相似性vs.相关性 语义相似度≠上下⽂相关性(基于嵌⼊的RAG) 基础模型通常依赖于常识或字⾯意义,导致相关性(相关性幻觉)的错误正例。⾼相似度(例如,95%)并不保证相关性;上下⽂⽆关的⽚段可能看起来⾮常相似(例如,虚构的⻝谱或不存在的情节)。 盲⼈摸象(Tree vs. Forest) 全局问题挑战 难以从多个来源的分散信息中回答⼴泛、全局的问题需要从整个数据集中总体获得洞察,⽽不是某⼏个孤⽴的⽚段 图结构数据 直观上:图结构数据是⼀种以节点和边为基础的数据结构,⽤于表示实体之间的关系。 知识图谱是知识的___形式: 精炼和简洁的细粒度的分段相互连接的结构 现存知识图谱中的知识是准确的 查询知识图谱是稳定可复现的 领域知识通过图的Schema以Entity &Relationships形式被下推到图谱中 GraphRAG 定义: ⼀种利⽤图结构数据/知识来辅助检索、重排、合成的RAG⽅法。 SubGraph RAG: 低垂果实的策略、⽅法 获取任务中关键实体的⼦图与其他RAG检索结果重排 GraphRAG Examples 相关性vs相似性⼤海捞针穿针引线投影Meta/Domain知识到PipelineGraph Algo:Node Importance(HippoRAG)Community Detection(MS From Local to Global) 结构化数据RAG 相关性vs相似性 ⼤海捞针(Needle in Haystack) 穿针引线(Connect the Dots) Question: How to evaluate the impact ofregulatory changes in different countries on BankX’s credit policies in various countries followingthe 2008 globalfinancial crisis? 领域知识、数据的理解到RAG Pipeline的投射 (Projection of Meta/Domain Knowledge to Pipeline) 在优化RAG时,我们通常将对元知识/领域知识的理解投射到pipeline中。图建模,随后是GraphRAG,是⼀种将深度推理和灵活性嵌⼊系统的有效⽅法。 Community Detection Node Importance HippoRAG: Neurobiologically Inspired Long-Term Memory GraphRAG: From Local to Global refs: https://arxiv.org/abs/2405.14831 refs: https://arxiv.org/abs/2404.16130 author: Darren Edge(Microsoft Research), et al. author: Bernal Jiménez Gutiérrez, et al. 结构化数据RAG ⼀些text-to-SQL的案例在text-to-GraphQuery时可能更⾼效。 PATH SEARCH on Tabular DBMSWITHRECURSIVE AnyRelationshipPath AS(SELECTid,source_id,target_id,relationship_typeFROMRelationshipsWHERE(source_id=start_node AND target_id=end_node)UNIONALLSELECTr.id,r.source_id,r.target_id,r.relationship_typeFROMRelationships rINNERJOINAnyRelationshipPathp ON r.source_id=p.target_id)SELECTp1.name AS Person1,p2.name AS Person2,AnyRelationshipPath.relationship_typeAS RelTypeFROMAnyRelationshipPathINNERJOIN Persons p1ONAnyRelationshipPath.source_id=p1.idINNERJOIN Persons p2ONAnyRelationshipPath.target_id=p2.id; 我们的观点:GraphRAG昂贵吗?不 Graph RAG将上下⽂学习转移到索引阶段 推理成本最多约为原始知识的20倍token存在权衡取舍,有多种可选策略这是⼀种馈赠⽽⾮负担,我们可以选择哪些知识进⾏开卷考试的预先学习 索引阶段的优势:批量API使⽤微调的⼩型模型 有NER-Link模型可以利⽤ 何时/为何使⽤GraphRAG ⼤海捞针(Needle in a Haystack): 当需要细粒度检索或连接分散信息时,Graph Index和Retrieval提供最佳解决⽅案。 分层索引与摘要: 当需要分层索引和摘要时,将RAPTOR/Tree-RAG集成到Graph DB中可以将检索转化为灵活的查询模式模板。 全局搜索: 当需要全局上下⽂或全⾯理解时,GraphRAG中的社区检测摘要优于传统⽅法。预先学习的整体知识表现更好,⽽等效查询时间的(不使⽤GraphRAG的)RAG需要将所有知识传递给LLM。 领域知识集成: 当将领域知识嵌⼊到流程中时,将这些知识投影和抽象到图模式中是元⽅法,能够实现稳健的推理和⾼效的检索。 Graph RAG vs KG-RAG Graph RAG: ⼀个更⼴泛的概念,具有灵活的图形索引结构。对图结构的要求较低;更具成本效益。检索通常涉及对图的较少严格推理,对图索引质量的依赖性较低。 KG-RAG: Graph RAG的⼀个特殊(更理想)情况。 图索引涉及完整的知识图谱构建。将现有或公共知识图谱集成到RAG流程中,利⽤其结构化、⾼质量的数据进⾏精确推理和检索。 如果我们确实想要进⾏严格推理呢? Graph RAG分类 Schema: ⽆Schema知识图谱(Knowledge Graph Schema-less)有Schema知识图谱(Knowledge Graph Schema-full)图索引中的元知识(Meta Knowledge in Graph Index) 编排(Orchestration): 与其他RAG检索结果重新排序(Rerank with other RAG retrieval results)代理式图查询模板(Agentic Graph Query Template)全图处理(All in Graph) 检索(Retrieval): ⼦图检索(SubGraph Retrieval)路径检索(Path Retrieval)基于模板的复杂查询(Template based Complex Query)⽂本到图查询(Text-to-Graph Query)基于规划的图检索(Planning based Graph Retrieval) 我们的⼯作分享 在NebulaGraph GenAI Suite中实现。 Graph-IndexingText-to-QueryKG-ReasoningGraph RAG Pipeline Graph Indexing Graph Construction SDK CoT based PromptingPredefined General SchemaRemote Callable ExtractorSchema Auto-Templating(WIP) Text to Query Text2Query SDK Schema, Syntax and Performance Opt Rule based CorrectionAgentic Self-Reflection(Optional)AST based Correction(WIP) Chain of Exploration The planning based KG reasoning in Graph RAG Retrival Stratgies基于规划的KG推理⽅法的图检索策略 refs: https://www.linkedin.com/feed/update/urn:li:activity:7198589556848263168/https://arxiv.org/abs/2405.12035 GraphRAG编排 在RAG管道中引⼊GraphRAG的策略。 SubGraph RAG(less invasive)Existing KG RAG with CoEDoc-AwareDoc-Aware with Community SummaryDoc-Aware with Community Summary + CoE NebulaGraph RAG🚀 企业知识管理与应⽤构建平台 知识集管理SOTA的索引策略Meta Agent构建和迭代应⽤程序 NextJS Catalyst_APIMeta-Chat_OperationsCRUD_Meta_Thread_MessagesCatalyst_App_TenantCRUD_Tenant_ThreadLiteLLMTools Shadcn_UI Catalyst_App_OperationsCRUD_Catalyst_AppReaGraph Meta_thread_Assistant_APICRUD_Tenant_Messages 未来⼯作 Memory:⾼级Graph-BasedMemoryDAG Store:元知识持久化层原⽣向量存储:⼤规模统⼀知识层微调⼯具包/微调模型⽤于GraphRAG索引/检索 动机从低垂果实到创新探索的旅程我们的GraphRAG洞察 🔍我们分享的⽅法检索策略、图索引、⾃然语⾔到查询转换、RAG流程NebulaGra