从传统 RAG 到知识图谱 RAG

当大型语言模型与知识图谱相遇时

介绍

众所周知,大型语言模型 (LLM) 在固定数据集上运行,其知识在上次训练更新时被冻结。

ChatGPT 的普通用户可能会认识到众所周知的限制:“截至 2021 年 9 月的训练数据”。

这种限制可能导致不准确或过时的响应,因为这些模型会“幻觉”信息。

在不进行再培训或微调的情况下,用新信息更新它们或增强上下文理解在资源和人力方面都可能具有挑战性。

检索增强生成 (RAG)

检索增强生成(或简称RAG)是一种技术,通过整合来自外部可靠知识库的信息来改进大型语言模型(LLM)。

RAG 背后的原理很简单;当一个LLM被问到一个问题时,它不仅仅依赖于它已经知道的东西。

相反,它首先从指定的知识源中查找相关信息。

这种方法确保生成的输出引用大量上下文丰富的数据,并由最新和最相关的可用信息进行补充。

RAG 主要通过两个阶段运行:检索和内容生成。

检索阶段

在检索阶段,该算法定位并收集与用户提示或查询相关的相关信息片段。

例如,如果您正在搜索福建面的食谱,您的提示可能是“福建面的成分是什么?

该系统识别具有与查询语义相关的内容的文档,并使用相似度度量计算相关性,通常是其向量之间的余弦相似度(嵌入的余弦相似性真的与相似性有关吗?

整理外部知识后,它会将其附加到用户的提示符中,并将其作为扩充的输入发送到语言模型。

内容生成阶段

在随后的生成阶段,LLM 将此增强提示与其自己的训练数据表示相结合,以生成针对用户查询自定义的响应。

此响应提供了个性化和可验证信息的组合,适合通过聊天机器人等应用程序使用。

在这里插入图片描述

Retrieval Augmented Generation

为什么 RAG 很重要

在当今的技术环境中,LLM 推动了许多能够理解或生成类似人类的文本的自然语言应用程序。

虽然这些模型非常强大,但有时也会不足。

有时,他们可能过于自信地产生不正确的回答,以至于人们很容易被他们极其有说服力的论点所说服。

RAG 试图通过引导 LLM 从可信来源获取信息来缓解这些问题,从而保持模型输出的相关性和准确性。

RAG的局限性

与生活中的所有事情一样,传统的 RAG 方法也有其复杂性和挑战。

虽然 RAG 在增强 LLM 的能力方面具有开创性,但也存在某些局限性,可能会影响其有效性和适用性。

主要挑战之一涉及检索信息的准确性和数据源的异质性。

为了使 RAG 有效,它通常依赖于多个外部来源,这些来源可能具有不同的格式、标准和可靠性级别。(想想 PDF、平面文件、Markdown、CSV、Web 内容等)

RAG 实现在处理模棱两可的查询或需要深入理解上下文的查询时也会遇到困难。

这些问题是该技术设计所固有的,主要源于检索过程,在检索过程中,它偶尔会忽略精确响应所必需的细微差别。

Context is important, a well-placed comma too

对 RAG 的改进

提高RAG系统的检索准确性和效率是自然语言处理和机器学习中一个正在进行的研究领域。

有几种策略可以实现这些改进,但我想强调使用当今技术可以实现的两个值得注意的增强。

  1. 实现更复杂的检索算法,可以更好地理解查询的语义,可以提高获取文档的相关性。

  2. 有效地索引知识库,以在不牺牲结果质量的情况下加快检索过程。

Graph RAG:RAG x 知识图谱

Graph RAG 通过利用知识图谱 (KG) 建立在 RAG 的概念之上。

这种创新方法是由 NebulaGraph 率先提出的一个概念,它通过图形数据库的集成改变了 LLM 解释和响应查询的方式。

Graph RAG 通过将来自 KG 的结构化数据集成到 LLM 的处理中来运行,为模型的响应提供更细致和更明智的基础。

KG 是真实世界实体及其之间关系的结构化表示,由节点组成,节点表示人、地点、对象或概念等实体以及边缘。

反过来,这些节点表示这些实体之间的关系或连接。

在这里插入图片描述

A simple knowledge graph

这种结构使模型能够访问精确且与上下文相关的数据,从而大大提高了 LLM 生成明智响应的能力。

Graph RAG 的创新之处在于它将图数据库与 LLM 集成在一起,以在生成响应之前丰富模型的上下文。

一些流行的 graphDB 产品是 Ontotext、NebulaGraph 和 Neo4J。

是什么让 Graph RAG 如此重要?

随着 LLM 的复杂性和能力不断提高,Graph RAG 有可能对 AI 领域产生重大影响。

以下是我对这种集成发展的设想:

  1. 未来的 LLM 有望表现出对复杂查询和推理能力的更好理解。

Graph RAG 可以利用这些进步来提供更精确、上下文更丰富的答案。

来自知识图谱的结构化知识,与更复杂的LLM相结合,可以使人工智能掌握抽象想法、通过它们进行推理并产生细微反应的能力取得突破。

  1. 随着LLM看似不可阻挡的进步,它们与知识图谱的集成可能会变得更加动态和无缝。

这可能涉及根据全球事件或发现对幼稚园进行实时更新。

LLM 可以通过整合从用户交互或其他数据源收集的新信息,在自动增强和更新知识图谱方面发挥作用。

使用人类反馈强化学习 (RLHF) 和人工智能反馈强化学习 (RLAIF) 等技术可以进一步帮助模型与人类偏好保持一致,并遵守 HHH(不是摔跤手,而是乐于助人、诚实、无害)原则。

  1. 随着 Nvidia 努力实现 AI 计算的民主化,LLM 和 Graph RAG 实现的未来进展将侧重于提高计算效率和可扩展性。

这种转变将使 Graph RAG 能够用于更广泛的应用程序,包括那些需要实时响应或在资源有限的环境中运行的应用程序。

  1. 未来,LLM有望在多个领域拥有更广泛、更深入的知识。Graph RAG可以促进不同领域之间的知识转移,从而能够产生利用不同领域信息的见解或解决方案。

例如,应用认知科学的发现可能会导致开发更自然的人机交互模型,或者将网络安全与心理学相结合可能会提高安全措施的有效性。

  1. 随着 Graph RAG 技术的发展,采用资源描述框架 (RDF) 等标准进行知识图谱可以提高各种系统之间的互操作性。

这可能意味着不同的实现相互作用和协作,从而推动更广泛的采用和创新。

在这里插入图片描述

Copyright © TechTarget

Graph RAG 演示

在本演示中,我们将使用 Govtech 开发人员门户中的产品信息作为我们的知识库。
在这里插入图片描述

A sample of the dataset. We are going to convert it to a usable format shortly.

1. Setup

  • 使用 Neo4j 桌面启动 Neo4j 本地实例

在这里插入图片描述

The New4j Desktop Interface

  • 使用LangChain本地连接到Neo4j数据库。好消息是LangChain有一个现成的模板,易于设置。

2. 提取

  • 使用提示工程和 LLM 来提取信息、节点及其连接。下面的提示示例:
# Instructions for Creating Knowledge Graphs
## Overview
You are engineered for organising data into knowledge graphs.
- **Nodes**: Represent entities and ideas.
- The objective is to ensure the knowledge graph is straightforward and intelligible for broad use.

## Node Labeling
- **Uniformity**: Stick to simple labels for nodes. For instance, label any entity that is an organisation as "company", rather than using terms like "Facebook" or "Amazon".
- **Identifiers for Nodes**: Opt for textual or comprehensible identifiers over numerical ones.
  - **Permissible Node Labels**: If there are specific allowed node labels, list them here.
  - **Permissible Relationship Types**: If there are specific allowed relationship types, list them here.

## Managing Numerical Data and Dates
- Integrate numerical information directly as attributes of nodes.
- **Integrated Dates/Numbers**: Refrain from creating distinct nodes for dates or numbers, attaching them instead as attributes.
- **Format for Properties**: Use a key-value pairing format.
- **Avoiding Quotation Marks**: Do not use escaped quotes within property values.
- **Key Naming**: Adopt camelCase for naming keys, such as `dateTime`.

## Uniformity
- **Entity Uniformity**: Ensure consistent identification for entities across various mentions or references.
  
## Adherence to Guidelines
Strict adherence to these instructions is mandatory. Non-adherence will result in termination.

3. 图形构造

  • 使用 CSVLoader 和文档分段来处理我们的文档
  • 将提取的信息映射到图形节点和关系
  • 通过我们的提取管道处理文档并将信息存储在 Neo4j 中

在这里插入图片描述

The process took nearly an hour, resulting in the final list of extracted node labels

  • 不幸的是,并非所有节点标签都对我们的上下文有用或符合我们的需求。
{
  "identity": 1040,
  "labels": [
    "Feedbackstatus"
  ],
  "properties": {
    "id": "Feedback-Success",
    "message": "Sent. Thank you for the feedback!"
  },
  "elementId": "4:81cd2613-0f18-49c1-8134-761643e88b7a:1040"
},
{
  "identity": 1582,
  "labels": [
    "Feedbackstatus"
  ],
  "properties": {
    "id": "Feedbacksuccess",
    "status": "Sent. Thank you for the feedback!"
  },
  "elementId": "4:81cd2613-0f18-49c1-8134-761643e88b7a:1582"
},
{
  "identity": 1405,
  "labels": [
    "Header"
  ],
  "properties": {
    "id": "Modalcardhead",
    "class": "sgds-modal-card-head"
  },
  "elementId": "4:81cd2613-0f18-49c1-8134-761643e88b7a:1405"
},
{
  "identity": 1112,
  "labels": [
    "Feedbackindicator"
  ],
  "properties": {
    "id": "Feedbacksuccess",
    "title": "check",
    "message": "Sent. Thank you for the feedback!"
  },
  "elementId": "4:81cd2613-0f18-49c1-8134-761643e88b7a:1112"
...

4. 评估和完善

  • 我们将指定 LLM 应该提取哪些节点标签来优化我们的方法
permissible_nodes_to_extract = [
    "Aisubfield",
    "Application",
    "Cloudservice",
    "Concept",
    "Digitalsolution",
    "Division",
    "Entity",
    "Feature",
    "Fundinginitiative",
    "Initiative",
    "Link",
    "Location",
    "Organization",
    "Person",
    "Platform",
    "Policy",
    "Program"
    "Resource",
    "Role",
    "Schema",
    "Service",
    "Standard",
    "Technology",
    "Technologyplatform",
    "Technologystack",
    "Webframework",
    "Webresource",
    "Website"
]
  • 使用 Neo4j 浏览器探索我们新构建的知识图谱
    在这里插入图片描述

Much better!

  • 不断完善我们的提取和图形构建方法
    经过一番努力,魔法终于开始了!

请考虑以下查询:

问:“请介绍一下开发该产品的 AiSay 及其优势和应用。另外,请告诉我AiSay的独特之处。

Base RAG:“AiSay
是新加坡政府开发的人工智能文档阅读器。它可以自动检测、扫描和理解各种类型的文档,包括手写笔记、打印文章、多语言文本和结构化/非结构化文档。与传统的
OCR 系统不同,AiSay 可以为图像和 PDF 文件等文档提供结构化响应。它使用
OCR、文档问答技术和大型语言模型来派生上下文和回答查询。AiSay
可通过同步和异步调用选项进行扩展,允许处理大文件大小。它在云上无服务器托管,使其在数量上可扩展并能够处理大文件大小。AiSay
正在积极开发中,支持高达 RESTRICTED/SENSITIVE NORMAL 的安全和数据分类。今后,将支持更多文档类型。AiSay
的独特功能包括它能够为各种文档类型提供结构化响应、可扩展性以及对安全和数据分类的支持。

Graph RAG:“AiSay
是新加坡政府开发的人工智能文档阅读器。它是一个文档解析器,可以提供结构化响应、提取各种文档中的信息并将其集成到现有系统中。AiSay
可以自动检测、扫描和理解各种文档,包括手写笔记、打印文章、多语言文本和结构化/非结构化文档。与传统的光学字符识别 (OCR)
系统不同,AiSay 可以为图像(JPEG、PNG、TFIF)和 PDF 文件等文档提供结构化响应。

AiSay 的一些主要优势包括:

  1. 减少人为错误,提高数据准确性,因为从文档上传中自动填写表单提交的关键数据。

  2. 提升了数字化服务体验,因为一旦文件上传,AiSay就可以自动填写关键数据。

AiSay
的独特之处在于它能够为各种文档类型提供结构化响应,支持各种格式和语言。它还为每个任务提供置信度分数,以确定是否需要额外的支持,从而允许在具有高置信度的任务中进行最少的人工干预。此外,AiSay
是可扩展的,因为它是无服务器托管在云上,使其能够异步处理大文件大小和提取过程。

在这里插入图片描述

Graph RAG vs Base RAG

与传统的RAG方法相比,Graph RAG的优势在这种情况下是显而易见的。

该响应不仅展示了准确性,而且还丰富了上下文和关系,提供了标准 RAG 方法所没有的深度水平。

Graph RAG的秘密在于它能够分析用户的查询,在图形数据库中精确定位相关数据,并结合这种上下文洞察力来指导LLM的响应。

这种方法利用了传统方法可能遗漏的相互关联的信息网络,从而对查询有更细致的理解。

让我们再举几个例子

问:“我需要从我的一些文档中删除敏感信息。Govtech 提供哪些具有这些功能的产品?

Base RAG:“Govtech 提供 Cloak 和 FileSG 产品,它们能够帮助从文档中删除敏感信息。

Graph
RAG:“GovTech提供了一款名为Cloak的产品,这是一个用于符合政策的数据匿名化的中央隐私工具包。该产品可帮助公职人员将数据匿名化技术应用于数据集,并按照指南审查重新识别风险。

在这里插入图片描述

We need to address your frequent gaslighting behaviour

问:“DIAB与SIaC有何不同?

Base RAG:“所提供的文档没有直接将 Data Infrastructure in a Box (DIAB) 与任何名为 SIaC
的东西进行比较,也没有提到 SIaC。因此,根据给定的上下文,无法直接概述 DIAB 和 SIaC
之间的差异。但是,我们可以将DIAB的关键方面总结如下:

  1. 目的与发展:DIAB由GovTech的数据科学和人工智能部门(DSAID)开发,旨在作为政府在商业云(GCC)上部署和维护数据基础设施的加速器。它专门设计用于帮助政府机构构建、部署和保护数据基础设施。

  2. 聚焦数据基础设施:DIAB强调构建一致、可扩展的数据基础设施,让机构在设计和实施云基础设施时节省时间,减少开销。这种关注使机构能够更专注于构建应用程序层。

  3. 基础设施即代码 (IaC) 的使用:DIAB利用 IaC 模板和参考架构来帮助考虑数据工程问题,从而简化设置和管理数据基础设施的过程。

如果没有关于SIaC的信息,就无法进行比较。DIAB的特点凸显了其作为政府机构在云中高效部署和管理数据基础设施的工具的作用,利用IaC提高效率和可扩展性。

Graph
RAG:“DIAB(盒装数据基础设施)和SIaC(安全基础设施即代码)都是旨在促进政府机构云基础设施部署的产品。但是,它们的具体重点和功能不同。

DIAB是政府商业云 (GCC)
上数据基础设施部署和维护的加速器。它帮助机构构建、部署和保护数据基础架构,重点关注数据工程注意事项并提供基础架构即代码 (IaC)
模板。DIAB旨在帮助机构构建一致且可扩展的数据基础设施,其主要优势包括易用性、提高效率、内置合规性、部署灵活性和面向未来。

另一方面,SIaC
提供了可定制的模板,用于以安全、合规和自动化的方式部署云基础设施。它专注于安全配置来自云服务提供商的托管服务和工具,具有模块化且易于调整的模板。SIaC
的主要功能包括符合新加坡政府标准、针对不同用例的模块化、与 SGTS 组件的可集成性以及云原生设计。

总而言之,DIAB和SIaC都旨在简化政府机构的云基础设施部署,而DIAB则专注于数据基础设施部署,重点关注数据工程考虑因素和IaC模板,而SIaC则专注于通过可定制模板和模块化设计实现安全合规的云基础设施部署。

在这里插入图片描述

Win liao

结论

从传统的检索增强生成 (RAG) 到图形 RAG 的转变代表了我们如何与大型语言模型 (LLM) 交互的重要一步

这种转变解决了一个根本性的挑战:如何提高 LLM 为复杂查询提供上下文准确答案的能力。

在比较这两种方法时,Graph RAG 在处理上下文复杂查询方面的优势变得显而易见。

传统的 RAG 技术经常在上下文复杂的问题上失误。

相比之下,Graph RAG 利用更复杂的数据网络,提供响应,以更深刻地理解查询的微妙之处。

然而,Graph RAG 的有效性并不是一个放之四海而皆准的解决方案。

它仍然高度取决于基础KG的质量、深度和广度。

在KG受到限制或偏向于特定域的情况下,Graph 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%免费

在这里插入图片描述

  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值