使用 Llamaindex、Neo4j 和 Llama 3 构建具有知识图谱的高级 RAG 聊天机器人
检索增强生成(RAG)是一种先进的技术,结合了基于检索的模型和生成模型,以提高生成响应的质量和相关性。它特别适用于问答等应用,其中系统需要提供详细且上下文准确的答案。
什么是 RAG?
检索增强生成(RAG)是一种先进的技术,结合了基于检索的模型和生成模型,以提高生成响应的质量和相关性。它特别适用于问答等应用,其中系统需要提供详细且上下文准确的答案。
RAG 如何工作?
RAG 主要分为两个阶段:
- 检索阶段
在此阶段,系统从预构建的索引或数据库中检索相关文档或信息。检索模型使用嵌入来查找最相关的文本片段,以帮助回答用户的查询。通常使用向量相似度或余弦相似度搜索来完成此操作。
- 生成阶段
在此阶段,模型将检索到的文档和用户的查询作为输入,然后处理这些信息以生成上下文相关的响应。生成模型通过结合来自检索文档(知识库)的信息来改善其响应,利用其内容提供信息丰富且准确的答案。
知识图谱在RAG中的应用
什么是知识图谱?
知识图谱是以节点和边的形式对信息进行结构化表示。节点通常代表实体(如人、地点、概念或对象),而边则表示这些实体之间的关系。知识图谱建模复杂的关系,并提供了一种高效查询和检索互联信息的方法。知识图谱的典型场景是建模社交媒体关系,以形成用户及其连接之间的链接。
知识图谱如何在RAG解决方案中工作?
知识图谱可以以多种方式工作,但我将专注于一个用例,即我们在这里使用的用例。
- 实体和关系提取:
使用自然语言处理(NLP)技术或像spaCy这样的工具从数据源中提取实体及其关系。
- 图结构组织:
将提取的实体和关系组织成图结构,其中节点代表实体,边代表关系。该图结构可以存储在像Neo4j这样的图数据库中,或使用像NetworkX这样的库构建。
- 查询知识图谱:
当用户提交查询时,系统可以查询知识图谱以检索相关实体及其关系。例如,如果用户询问如何使用特定的Python模块,知识图谱可以提供有关相关模块、用例和替代解决方案的信息。将知识图谱与RAG解决方案集成,通过提供结构化和关系上下文,增强了检索和生成过程,提高了响应的相关性和深度。
接下来的步骤中,我将演示如何通过集成知识图谱来增强RAG解决方案。
第一步:设置环境
首先,我们需要一个开发环境,在这里我们可以安装和配置必要的库和工具。这包括设置我们的 Neo4j 实例以及导入用于数据处理、嵌入生成和语言模型使用的基本 Python 库。
- 附注: Neo4j 是一个图形数据库管理系统,提供强大的功能用于创建和查询知识图谱。我们将使用它来存储和管理从文档中提取的实体之间的关系。
您还需要一个 Groq API 密钥 来访问模型,以及一个明确的提示,以指导您希望从聊天机器人获得的响应类型。
第2步:数据摄取与索引
要构建一个强大的信息检索系统,我们需要一个数据源或知识库。对于本指南,我们使用存储为文本文件的Python文档库。Llamaindex 提供了一系列数据加载器,我们将使用 SimpleDirectoryReader 模块从本地设备加载文档。我们还将加载spaCy模型“en_core_web_sm”用于实体识别,该模型将提取的实体存储在知识图谱中。
第3步:填充知识图谱
populate_graph 函数处理我们的文档以提取实体及其关系,然后使用这些信息填充 Neo4j 知识图谱。使用我们加载的 spaCy 模型,该函数通过 机器学习方法 在文本中识别相关实体。对于每个实体,它在 Neo4j 数据库中创建节点,确保没有重复。此外,该函数在文档中找到的实体之间创建 RELATED_TO 关系,有效地构建了一个互联概念的网络。这种在知识图谱中的结构化表示使得基于提取实体之间关系的高级查询和洞察成为可能。
第4步:拆分文档并创建索引
在这里,我们将使用 SimpleDirectoryReader 读取的文档拆分成更小、更易管理的块,指定的块大小为 1024。然后,我们设置一个嵌入模型(可以更改为适合您的模型)和 Llama 3,这对于将文本转换为数值向量和生成上下文响应至关重要。这些模型组合成一个服务上下文,用于排序索引和查询过程。文档块使用向量存储进行索引,根据其嵌入进行组织,以实现高效检索。此索引随后保存到您的存储中的文件中,以备将来使用,并随后加载以准备查询。整个过程确保文档被高效索引,并可以快速查询以根据用户输入检索相关信息,有效地充当缓存解决方案。
第5步:创建交互式小部件
这为与聊天机器人交互提供了一个用户友好的界面,而无需构建前端。
第6步:使用Neo4j进行查询增强
函数get_graph_insights查询我们的Neo4j知识图谱,以查找并返回与用户的问题或查询相关的概念。它启动一个Neo4j会话并运行查询,以识别问题文本/用户查询中提到的概念(本质上执行相似性检查)。该查询还检索与这些识别出的概念相关的概念。然后处理结果,以创建主要概念及其相关概念的摘要。如果未找到相关见解,函数将返回默认消息。
这就是我们的Neo4j知识图谱的样子:如上所述,它存储了找到的实体及其之间的关系,存储在已创建的Neo4j实例中。
第7步:处理用户输入和生成响应
最后,根据用户输入的内容,我们从知识图谱中获取相关概念。这些信息与用户的问题和我们预定义的上下文一起格式化为查询提示。然后将提示发送到查询引擎,生成的响应会返回给用户。
查询/聊天引擎
最后,我们可以开始测试我们的 RAG 实现。
在下面的截图中,我尝试展示它如何使用知识图谱的结果,通过给它提问:解释小数,并从图谱中提取与之相关的任何信息。您可以看到结果展示了它所连接的任何概念。
在检索增强生成(RAG)解决方案中集成知识图谱显著提高了响应的相关性和深度,因为它提供了结构化和关系性的上下文。在 RAG 解决方案中,知识图谱在许多情况下极为有用,例如在医疗领域。例如,知识图谱可以帮助医疗聊天机器人通过链接症状、诊断、治疗和相关医疗条件,提供更准确和全面的答案。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)