构建由 LLM 驱动的 Neo4j 应用程序——LLM、RAG 与 Neo4j 知识图谱简介

人工智能(AI)正从小众和专业领域逐渐走向大众,更加易于使用,能够辅助日常任务。其中最典型的例子便是生成式人工智能(Generative AI,简称 GenAI)的爆发式发展。近年来,GenAI 以其易用性和能够像人类一样理解并回答问题的能力,激发了技术开发者和普通用户的极大兴趣。大型语言模型(LLMs)的突破推动了 GenAI 走到前沿,给企业带来了改变客户互动方式的诸多机遇。客户可以用自然语言提出问题,并直接获得答案,无需人工理解问题或从数据中提取信息。

虽然 GenAI 在文本、音频、视频等多种模态领域均取得了重大进展,但本书的重点将聚焦于 LLM 及其在商业和工业场景中的应用。

本章将从 LLM 的视角审视 GenAI,探讨其影响、潜在陷阱以及伦理问题。为本书奠定基础,我们还将简要介绍能够增强 LLM 效果的技术手段。

本章主要内容包括:

  • 从 LLM 视角勾勒 GenAI 的演进
  • 理解 RAG(检索增强生成)和知识图谱在 LLM 中的重要性
  • 介绍 Neo4j 知识图谱

通过 LLM 视角勾勒 GenAI 的演进

2022 年底,OpenAI 震惊全球,发布了一个名为 ChatGPT 的 AI 引擎,能够像人类一样理解语言,并以自然语言与用户互动。这是近年来生成式人工智能(GenAI)的最佳代表。人工智能的概念起初是基于规则的系统,90 年代演进为机器学习算法。随着深度学习和大型语言模型(LLMs)的兴起,GenAI 的概念变得更加流行。这些 AI 系统经过对现有内容的训练后,能够生成新的内容。OpenAI 的 GPT-3 LLM 模型是最早吸引大众关注的 LLM 之一。GenAI 不仅可以以类似人类交互的方式回答问题,还能通过文本描述生成图像,将图像描述为文本内容,利用文本生成视频,以及许多其他功能。它能够提升创造力,加速研发,帮助简化复杂概念的理解,并提升个性化体验。

LLM 的演进是 GenAI 流行的核心。下面让我们看看 LLM 以及它们如何推动了 GenAI。

LLM 简介

大型语言模型(LLM)是一种机器学习模型,专为自然语言处理构建,能够理解语言结构并基于训练数据生成相应语言的内容。

在 GPT-3 流行之前,LLM 领域已进行了多年的大量研究。一些开创性的工作包括谷歌的双向编码器表示转换器(BERT,github.com/google-rese...)和 OpenAI 的生成式预训练变换器(GPT)。训练 LLM 需要大量参数和计算资源。

从本质上讲,LLM 是一种递归神经网络(RNN)架构。传统 RNN 在处理序列数据的长期依赖关系时表现欠佳。为解决这一问题,LLM 通常采用长短期记忆网络(LSTM)或 Transformer 架构。这些架构使模型能够学习词与词之间复杂的关系,即使这些词在训练文本中相隔很远。

以下是一个基础 LLM 架构的简单示意图:

让我们来解析这套架构

  • 输入层:接收初始的文本提示或序列。
  • 嵌入层:将输入序列中的词转换为数值向量,捕捉它们的语义信息。
  • 编码器:这是一个多层的递归神经网络(例如 LSTM)或 Transformer,用于处理嵌入后的词序列,捕捉上下文信息。
  • 解码器:利用编码后的表示,逐词生成输出序列。

你可以阅读这篇论文了解更多关于 LLM 的内容:arxiv.org/pdf/2307.06...。

构建一个 LLM 需要大量的投入和资源。我们来看一下 OpenAI 用于训练各代 GPT 模型的参数规模:

  • GPT-1:首个模型,使用了1.17亿参数。
  • GPT-2:使用了15亿参数进行训练。
  • GPT-3:首个通用型模型,训练时使用了1750亿参数。
  • GPT-4 系列:OpenAI 最新发布的模型,训练时使用了170 万亿参数。

这些训练数据表明,每一代新模型的参数数量都增加了几个数量级,这也意味着训练这些模型需要越来越多的计算能力。其他大型语言模型的训练参数规模也有类似趋势。

虽然 GenAI 是一项伟大的技术,但其应用也存在陷阱以及法律和伦理方面的顾虑。接下来我们将对此进行探讨。

理解 GenAI 的陷阱与伦理问题

尽管大型语言模型(LLMs)在总结内容、生成上下文等方面表现出色,但它们并不真正理解语言本身。它们是基于训练文本识别模式来生成新的文本,而非真正理解事实、情感或伦理。它们仅仅是在预测下一个词元并生成文本。正因为这些局限,GenAI 生成的内容可能会带来严重后果。

为了理解并应对这些问题,我们首先需要识别任何有害或不准确的生成内容,并通过重新训练模型或增加独立的审查机制,确保这类内容不会被当作输出使用。

例如,近期就有使用 LLM 生成法律摘要的案例,LLM 却创造出了不存在的案件,并基于这些虚构的案件生成了法律摘要。尽管技术上它可能生成了请求的"解决方案",但在法律层面这是不正确的。还有些案例中,LLM 被用来生成带有攻击性的图像和视频并在网络上传播。由于难以辨别 AI 生成的内容,人们很容易被误导。这既不符合社会规范,也不合法,更不道德。LLM "编造事实"的例子也屡见不鲜。

微软官网的这个教程(learn.microsoft.com/en-us/train...)对这些问题及识别方法做了详细讲解。

检索增强生成(RAG)技术与知识图谱的结合,可以帮助解决这些问题,下面我们将进行讨论。

理解 RAG 与知识图谱在 LLM 中的重要性

为了解决生成式 AI(GenAI)的缺陷,我们可以选择微调模型,或者通过其他数据源来为回答提供依据。

微调是指用额外的信息对现有模型进行训练,以获得更高质量的回答,但这通常是一个复杂且耗时的过程。

RAG(检索增强生成)方法则是在向 LLM 提问时,额外提供相关信息。在这种方式下,可以将知识库整合进生成流程中。LLM 利用从其他来源检索到的补充信息,调整回答内容以匹配所提供的信息,从而使输出有据可依。

这些知识库和数据源可以包括:

  • 公开的结构化数据集(例如科学数据库如 PubMed,或公开的百科资源如维基百科)
  • 企业知识库(例如公司内部文档、产品目录,或涉及严格隐私和安全要求的合规内容)
  • 特定领域的专业数据源(例如法律案例记录、医疗指南或针对特定行业的技术手册)

通过引入这些相关数据,RAG 赋能 LLM 生成不仅在事实层面准确,而且与当前任务上下文高度契合的内容。与 LLM 训练数据中静态的知识不同,这些附加数据源支持实时检索最新且专业的信息,有效解决了数据时效性、准确性和针对性的问题。我们将在第二章详细介绍 RAG。

另一个支持 RAG 的重要信息源是知识图谱。下面我们简要介绍知识图谱及其在 LLM 领域的作用。

知识图谱在 LLM 中的作用

知识图谱对生成富有创意且上下文丰富的内容起到巨大作用。它们提供了结构化且相互关联的基础,使信息检索更具相关性和深度,通过在多层次复杂的数据理解上"落地"AI 结果。

将数据表示为图结构,开辟了更多理解数据的途径。与此同时,知识图谱不是一个仅表示单一固定维度数据的静态实体,其真正威力在于动态多维的能力。它可以通过实时数据流捕捉时间、空间和上下文信息。

除了作为存储信息的重要工具,知识图谱还是智能、上下文感知型 AI 的骨干。

知识图谱对 GenAI 至关重要的几个原因包括:

  • 增强上下文理解:知识图谱允许 GenAI 系统基于实体之间的关系检索相关信息,而非孤立事实。例如在医疗领域,知识图谱可连接症状、疾病和治疗方案,使 GenAI 基于相互关联的医学知识,提供更精准的诊断建议。
  • 高效数据检索:与传统数据库不同,知识图谱支持多跳推理,GenAI 可从多层级关系中挖掘洞见。在金融领域,这极为宝贵,GenAI 可借助知识图谱揭示客户、交易和市场趋势等实体间的隐秘关联。
  • 向量嵌入的集成:结合向量嵌入,知识图谱帮助 GenAI 理解并响应更细微的查询。向量嵌入捕捉数据点间的语义相似度,知识图谱则为其赋予上下文,二者结合提升回答的准确性与相关性。
  • 现实世界影响力:许多大型机构已在利用知识图谱增强 GenAI 应用。例如,电商企业借助知识图谱提供不仅相关且上下文丰富的产品推荐,综合客户评价、购买历史和产品特征等多样数据源。

通过整合知识图谱,GenAI 模型突破了传统数据的限制,助力打造更智能、更可靠的跨领域应用。

接下来,我们来了解一下 Neo4j 知识图谱。

介绍 Neo4j 知识图谱

知识图谱是动态的,会随着数据及数据内部关系随时间演变而不断发展。

Neo4j 是一个擅长以图形方式存储数据的数据库。例如,在一家商店里,大多数产品都按照一定的分类摆放并保持在各自的区域,但也存在例外。当商店想推广某些产品时,会将它们放在店铺前端。我们应当为知识图谱实现采用这种灵活的思维方式。随着数据语义的发展,知识图谱应能捕捉这种变化。

Neo4j 通过对节点赋予多重标签和采用可选的模式设计,帮助我们保持图数据的相关性------它可以将我们对数据的理解以额外标签形式持久化到节点上,或者以特定的关系表现节点之间更有意义的上下文。我们将在后续章节深入探讨如何从零开始构建 Neo4j 知识图谱。

现在,让我们先看看 Neo4j 知识图谱如何增强大型语言模型(LLM)的回答能力。

Neo4j 知识图谱与 LLM 的结合

假设有一个基于 LLM 的聊天机器人,并且集成了 Neo4j 知识图谱。这个生成式 AI 聊天机器人专门用于回答医学相关问题。图 1.2 展示了 Neo4j 知识图谱如何通过将结构化的患者症状记录与医学研究论文和临床试验中的非结构化见解关联起来,增强聊天机器人的医学推理能力。

非结构化文本通过 Ollama、OpenAI、Hugging Face 等提供商的模型进行基于嵌入的处理,随后执行命名实体识别(NER),提取诸如症状和治疗等关键实体。这些数据被整合进 Neo4j 知识图谱中,图谱中包含文档提及的症状和治疗方案、患者表现的症状,以及症状与潜在治疗方案之间的关联。这使得多跳推理成为可能,聊天机器人能够高效回答诸如以下复杂查询:

"哪些患者目前表现出类似流感的症状,且过去曾出现过新冠肺炎的症状?"

要检索该查询的结果,将按以下顺序执行多跳知识图谱查询路径(见图 1.2):

  1. 从研究文献中检索与流感相关的症状。
  2. 识别当前表现出这些症状的患者。
  3. 交叉比对患者过往记录中的新冠肺炎症状。
  4. 返回同时满足这两种条件的患者名单,并附带支持的文献来源。

通过这种方法,LLM 的回答能够有据可依,生成事实准确、相关且最新的结果,从而支持医学决策。

类似的方法也可以用来增强支持其他应用场景的 LLM。

我们已经了解了知识图谱如何增强生成式 AI(GenAI)在提供上下文丰富、准确洞见方面的能力。但这种变革性的力量如何转化为现实中的具体效益?我们将在本书后续章节继续探讨。

总结

本章中,我们讨论了生成式 AI 在大型语言模型(LLM)背景下的发展演进,也介绍了检索增强生成(RAG)和知识图谱如何成为这一变革的关键推动力,帮助为 LLM 提供结构和上下文,提升其准确性和推理能力。

展望未来,下一章将深入探讨 RAG ------ 一种通过基于检索的验证信息"落地"回答,显著提升 GenAI 准确性的技术。

相关推荐
我真会写代码41 分钟前
LangChain 从0入门:模型、消息、Prompt、Tools、记忆、Agent与LangSmith实战
langchain·prompt
stormzhangV3 小时前
未来十年的建议
人工智能·aigc·agent
孟健5 小时前
我用Grok Bot本地剪口播视频,3段提示词搞定气口切除、字幕与封面
人工智能·python·aigc
小碗细面6 小时前
Magpie 实战教程:一个本地网关,让 Claude Code 跑 Kimi、Codex 跑 DeepSeek
aigc·ai编程
GISer_Jing8 小时前
SuperAgent
ai·langchain
前端精髓9 小时前
langchain 短期记忆(状态)动态运行时上下文
python·langchain
threerocks9 小时前
2027 年最赚钱的 AI 创业方向
aigc·openai·ai编程
lyai00710 小时前
读完 DeepSeek Harness 源码,我给自己画了一张「最小 CLI Agent」施工图
llm·agent
西安小哥12 小时前
大模型 Agent 做日常任务,卡住的从来不是模型能力
aigc
goehou13 小时前
缓存该删还是该改,LLM 服务里的双写问题
redis·缓存·llm·一致性·系统设计