首页 > 其他分享 >基于图和个性化PageRank的RAG方法HippoRAG

基于图和个性化PageRank的RAG方法HippoRAG

时间:2024-12-05 20:58:28浏览次数:6  
标签:检索 RAG PageRank vec LLM 节点 HippoRAG

HippoRAG是2024年5月的一篇论文《HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models》(github),它受人脑长期记忆的启发(Hippo是海马体英文单词的前缀),用知识图谱(KG)来存储知识,并用检索编码器和个性化PageRank来检索回答问题所需的上下文,再让LLM根据上下文回答问题。

WeChatWorkScreenshot_79f4d142-6ca5-4d4b-91b0-e38eaaeabbb5

海马体记忆索引理论(Hippocampal Memory Indexing Theory)提供了对人类长期记忆中涉及的组件和电路的功能描述。提出者Teyler和Discenna认为,人类长期记忆和三个组件有关,分别是新皮层(Neocortex)、海马体(Hippocampus)和海马旁回区域(Parahippocampal regions),这三个组件协同工作,使得人类能够存储大量的世界知识并持续整合新的体验,而不会丢失先前的记忆。这三个组件一起完成两个主要目标pattern separation(确保不同的感知经验是独特的)和pattern completion(使得部分刺激能检索到完整记忆)。

WeChatWorkScreenshot_40c056a0-e648-4b74-9947-ee69b5dd84dc

HippoRAG通过模仿人脑组件的功能来增强LLMs的知识整合能力,其过程如下:

离线索引阶段

  1. 让LLM充当新皮层的角色,从文本中抽取出知识图谱(KG)三元组,而知识图谱相当于海马体索引。在让LLM提取三元组时,不定义schema,三元组提取过程分为两步,先让LLM提取文本中的实体,再让LLM根据提取的实体得到最终的三元组,两个prompt都采用了1-shot技巧。

WeChatWorkScreenshot_48c64898-d26d-4ed8-8e02-d2ffac4272bc

WeChatWorkScreenshot_af91c607-382a-4804-8747-dd55bdf077f6

  1. 检索编码器(retrieval encoder)会充当海马旁回区域的角色,HippoRAG用检索编码器来判断两个实体表征之间的余弦相似度,如果余弦相似度大于阈值 τ \tau τ,则在两个实体之间添加一条边。
  2. 定义矩阵大小为 ∣ N ∣ × ∣ P ∣ |N| \times |P| ∣N∣×∣P∣的矩阵 P \mathbf{P} P来记录每一个实体在原始文本中出现的次数。(|N|是实体数, |P|是文本数)

在线检索阶段

  1. 对于一个query,先让LLM提取问题中的查询实体(query named entities),prompt如下:

WeChatWorkScreenshot_04bdd950-c836-4641-827d-fa62c9afecc1

  1. 用检索编码器基于相似度从KG中检索出与第一步的查询实体最相似的topK个节点,这些节点被称为查询节点(query nodes)。
  2. 在图谱上应用个性化PageRank(Personalized PageRank,PPR),算法初始化时,N个节点的概率分布为 n ⃗ \vec{n} n ,其中第二步的查询节点的概率相同,其他节点的概率为0。PPR算法得到的N个节点的最终概率分布为 n ′ ⃗ \vec{n^{\prime}} n′ ,将 n ′ ⃗ \vec{n^{\prime}} n′ 与离线索引时定义的矩阵 P \mathbf{P} P相乘得到每个文本的排序分数 p ⃗ \vec{p} p ​。

此外为了提高检索性能,借鉴了单词重要性如逆文档词频IDF的概念,但考虑到IDF计算上的复杂性,使用了node specificity这个概念来代替IDF,一个节点i的node specificity为 s i = ∣ P i ∣ − 1 s_i = |P_i|^{-1} si​=∣Pi​∣−1,P是节点i提取来源的文档集合。在应用PPR算法之前,将查询节点的概率 n ⃗ \vec{n} n 乘以 s i s_i si​。这意味在检索时不仅仅考虑邻居也考虑节点本身的重要性。

总结

HippoRAG也是一种基于图结构来增强RAG的方法,它在检索上下文时很特别地使用了个性化PageRank,所以它对于解决多跳问答有一定的帮助。

标签:检索,RAG,PageRank,vec,LLM,节点,HippoRAG
From: https://blog.csdn.net/beingstrong/article/details/144275375

相关文章

  • Exponential Recency Weighted Average Branching Heuristic for SAT SolversExponent
    1.CHB(conflicthistory-basedbranchingheuristic)分支策略1.1奖励函数\(numConflicts\)从搜索开始发生冲突的总次数\(lastConflict[v]\)文字\(v\)在冲突分析出现,则\(lastConflict[v]=numConflicts\)\(multiplier\)取值为1.0或0.9。\(multiplier=1.0\)当分支、传播......
  • Simulink Coverage基础概念和应用
    SimulinkCoverage是MATLABSimulink中的一个功能,它用于测量和报告代码覆盖率,帮助用户验证模型的测试是否全面。本文将介绍SimulinkCoverage的基本概念、覆盖率指标的评估和收集模型覆盖率的方法,探讨如何对覆盖率进行分析和记录,生成覆盖度结果和报告的相关内容。首先介绍S......
  • RAG vs 微调:大模型知识的进化之路
    2024年,大模型应用落地迎来全面提速。越来越多的企业在加大对大模型的投入,抢抓变革机遇,加速应用落地。大模型应用落地绕不开的两个关键词“RAG”和“微调”。那么什么是RAG?什么是大模型微调?大模型项目建设中RAG和微调如何选择?前排提示,文末有大模型AGI-CSDN独家资料包哦!什......
  • AI - RAG(Retrieval-Augmented Generation,检索增强生成)
    RAG(Retrieval-Augmented Generation,检索增强生成)技术是一种结合了检索和生成功能的自然语言处理(NLP)技术。它通过从大型外部数据库中检索与输入问题相关的信息,来辅助生成模型回答问题。以下是对RAG技术的详细解析:一、技术原理RAG技术的核心思想是将传统的检索技术与现代的自然语......
  • 【Azure ADLS】为Azure Data Lake Storage的Container赋予了操作权限后创建子文件夹遇
    问题描述在ADF操作StorageAccount(AzureDataLakeStorage),在已经为根Container赋予了权限后,创建子文件夹的时候还是报错403"Thisrequestisnotauthorizedtoperformthisoperationusingthispermission"403  问题解答这是因为ADLSContainer的ACL权限有两......
  • RAG与长上下文LLM(Long-Context LLM):一场AI领域的对决
    当前AI领域快速发展,各种新概念层出不穷,其中Retrieval-AugmentedGeneration(简称RAG)和长上下文LargeLanguageModels(LLMs,以下简称长上下文LLM)成为了当下热议的话题。开发者和研究人员在特定AI场景中,往往难以抉择是选择基于检索增强生成的系统架构(RAG(RetrievalAugmentedGenera......
  • use-case-airflow-llm-rag-finance
    use-case-airflow-llm-rag-financehttps://github.com/fanqingsong/use-case-airflow-llm-rag-finance/tree/mainairflow更新文档到向量数据库,应用使用向量数据库。LLMOps:Automaticretrieval-augmentedgenerationwithAirflow,GPT-4andWeaviateThisrepositoryco......
  • 4. langgraph实现高级RAG (Corrective RAG)
    数据准备fromlangchain.text_splitterimportRecursiveCharacterTextSplitterfromlangchain_community.document_loadersimportWebBaseLoaderfromlangchain_community.vectorstoresimportChromaurls=["https://lilianweng.github.io/posts/2023-06-23-a......
  • 一文读懂大模型RAG(非常详细),零基础入门到精通,看这一篇就够了
    文章目录一、RAG介绍1)局限性2)通过检索增强生成二、RAG系统的基本搭建流程1)搭建流程简介2)文档的加载和切割3)检索引擎4)LLM接口封装零基础入门AI大模型1.学习路线图2.视频教程3.技术文档和电子书4.LLM面试题和面经合集5.免费获取一、RAG介绍1)局限性1、LLM的知识......
  • 对代码中涉及 `localStorage` 的部分的详细注释和讲解
    在你提供的React代码中,localStorage被用来存储和恢复树节点的展开/收起状态。以下是对代码中涉及localStorage的部分的详细注释和讲解,帮助更好地理解程序的逻辑://递归渲染树结构constCubeOutlineTree=({cube,initialTree})=>{//从localStorage获取树的展......