知识图谱与LLMs:微调 VS RAG、LLM的局限性以及如何克服

news2024/10/6 13:21:29

原文地址:Knowledge Graphs & LLMs: Fine-Tuning Vs. Retrieval-Augmented Generation

2023 年 6 月 6 日

GitHub:https://github.com/neo4j/NaLLM

大型语言模型 (LLM) 的第一波炒作来自 ChatGPT 和类似的基于网络的聊天机器人,相信在座的各位都并不陌生了,甚至不少人也已经以不同的方式试用过它的功能,这些模型非常擅长理解和生成文本,但是也存在一些问题。

LLM 的一大问题是所谓的知识截止。知识截止术语表明大模型不知道训练后发生的任何事件。例如,如果我们向 ChatGPT 询问 2023 年的事件,我们将得到以下响应。

图片

如果我们向大模型询问其训练数据集中不存在的事件,也会出现同样的问题。因为大模型不仅无法获取知识截止日期以后的知识,也不了解任何可能可用的私人或机密信息。更不用说大模型知道的许多公开信息可能已经过时了。

因此,更新和扩展大模型的知识在今天非常重要。

大模型的另一个问题是,他们接受的训练是尽可能生成听起来逼真的文本,但这些文本可能并不准确。有些虚假的信息比其他信息更难发现。特别是对于缺失的数据,LLM 很可能会编造一个听起来令人信服但实际上是错误的答案,也就是我们所说的大模型会产生幻觉。

因此,我们在使用时必须非常小心,不要盲目相信大模型所提供的一切。验证大模型的答案或产生更准确的结果是另一个需要解决的大问题。

当然,大模型还有其他问题,比如偏见、快速注入等等。不过,我们不会在这里讨论它们。在这篇文章中,我们将介绍并重点讨论微调和检索增强大模型(RAG)的概念,并评估它们的优缺点。

01

LLM 的监督微调

我们可以通过提供额外的问答对在监督训练阶段微调大模型,以此来优化大模型的性能。

此外,我们还确定了两种不同的方法来微调大模型。

一个方法是微调模型以更新和扩展其内部知识。

另一个方法侧重于针对特定任务(例如文本摘要或将自然语言翻译为数据库查询)微调模型。

首先,我们将讨论第一个方法,使用微调技术来更新和扩展大模型的内部知识。

图片

通常,大多数人倾向于使用已经预训练好的基础大模型,以此避免对大模型进行预训练。因为基础大模型需要使用庞大的文本语料库进行预训练的,通常有数十亿甚至数万亿个标记,这意味着成本可能高达数十万甚至数百万美元。

选择基础大模型后,便可以开始下一步对其进行微调。由于 LoRa 和 QLoRA 等可用技术,微调这一步骤的成本相对便宜。

然而,构建训练数据集更加复杂并且可能会变得昂贵。如果负担不起聘请专门的注释团队的费用,使用 LLM 构建训练数据集来微调想要的 LLM 是一个比较好的选择。

例如,斯坦福大学的 Alpaca 训练数据集就是使用 OpenAI 的大模型创建的。制作5.2万份训练说明的成本约为500美元,相对比较便宜。

图片

Vicuna 模型是通过从 ShareGPT 收集的用户共享对话来对大模型进行微调。

图片

H2O 还有一个相对较新的项目,名为 WizardLM,旨在将文档转换为问答对,可用于微调 LLM。

我们有一些利用大模型从知识图谱上下文构建问答对的想法。

然而,目前还有很多未知数。例如,能否为同一问题提供两个不同的答案,然后大模型以某种方式将它们组合到内部知识库中?

另一个考虑因素是,如果不考虑其关系,知识图中的某些信息是不相关的。因此,我们是否必须预先定义相关查询,或者是否有更通用的方法来实现?或者我们可以使用表示主语-谓语-宾语表达式的节点-关系-节点模式来生成相关对吗?

想象一下,我们以某种方式设法根据知识图谱中存储的信息生成包含问答对的训练数据集并对大模型进行微调,因此现在大模型包含了更新的知识。但是,对模型进行微调并没有解决知识截止问题,因为它只是将知识截止推迟到了更晚的日期。

因此,建议仅在数据更新的速度较缓的情况下通过微调技术来更新 LLM 的内部知识。例如,我们可以使用微调模型来提供旅游信息。

然而,当我们想要在响应中包含特定时间(实时)的内容或个性化的促销活动时,我们就会遇到麻烦。同样,微调模型并不适合分析工作流程,例如在分析工作流程中我们会询问公司在上周获得了多少新客户。

除了知识截止问题,目前微调还可以帮助减轻幻觉,但不能完全消除它们。

一方面原因在于大模型在提供答案时没有引用其来源。因此,你不知道答案是来自预训练数据、微调数据集,还是大模型编造的。

另一方面,如果我们使用 LLM 创建微调数据集,则可能存在另一个可能的虚假来源。

最后,经过微调的模型无法根据提出问题的用户自动提供不同的响应。同样,不存在访问限制的概念,这意味着与大模型互动的任何人都可以访问其所有信息,所以从根本上大模型就不能够获取机密信息。

02

检索增强生成(RAG)

大模型在自然语言应用程序中表现非常好,例如:文字概括、提取相关信息、实体消歧、从一种语言翻译成另一种语言,甚至可以将自然语言转换为数据库查询或脚本代码。

此外,以前的 NLP 模型通常是特定于领域和任务的,这意味着我们很可能需要根据我们的用例和领域来训练自定义自然语言模型。然而,由于大模型的泛化能力,单个模型可以应用于解决各种任务集合。

我们观察到使用检索增强大模型的强烈趋势,我们不再使用大模型来访问其内部知识,而是使用大模型作为我们的公司或私人信息的自然语言接口。

图片

RAG 使用大模型根据数据源中额外提供的相关文档生成答案。

因此,我们不必依赖大模型的内部知识来得出答案。相反,大模型仅用于从我们传入的文档中提取相关信息并进行总结。

图片

例如,ChatGPT 插件可以被视为 LLM 应用程序的 RAG。启用浏览插件的 ChatGPT 界面允许大模型搜索互联网以访问最新信息并使用它来构建最终答案。

图片

在这个例子中,ChatGPT 能够回答谁赢得了 2023 年各个类别的奥斯卡奖。但是,请记住,ChatGPT 的截止知识日期是 2021 年,因此它无法从其内部知识知道谁赢得了 2023 年奥斯卡奖。因此,它是通过浏览插件访问外部信息,以使得它能够用最新的信息来回答问题。这些插件在 OpenAI 平台内提供了一个集成的增强机制。

如果一直在关注 LLM 领域,可能听说过 LangChain 库。我们之前也有出过一篇文章来介绍如何使用。

它就能作为插件来增强大模型。

LangChain 库可用于允许大模型从各种来源(例如 Google 搜索、矢量数据库或知识图谱)访问实时信息。例如,LangChain 添加了 Cypher 搜索链,它将自然语言问题转换为 Cypher 语句,用它从 Neo4j 数据库中检索信息,并根据提供的信息构造最终答案。

图片

通过 Cypher 搜索链,LLM 不仅用于构建最终答案,还用于将自然语言问题翻译为 Cypher 查询。

图片

另一个用于检索增强 LLM 工作流程的流行库是 LlamaIndex (GPT Index)。LlamaIndex 是一个综合数据框架,旨在通过使大型语言模型 (LLM) 能够利用私有或自定义数据来增强其性能。

首先,LlamaIndex 提供数据连接器,方便摄取各种数据源和格式,涵盖从 API、PDF、文档到 SQL 或图形数据的所有内容。此功能可以轻松地将现有数据集成到大模型中。

其次,它提供了使用索引和图表构建摄取数据的有效机制,确保数据得到适当安排以供大模型使用。

此外,它还包括一个高级检索和查询界面,使用户能够输入 LLM 提示并接收回上下文检索的知识增强输出。

ChatGPT 插件和 LangChain 等检索增强的 LLM 应用程序背后的想法是避免仅依赖内部 LLM 知识来生成答案。相反,大模型用于解决诸如从自然语言构建数据库查询以及基于外部提供的信息或利用插件/代理进行检索构建答案等任务。

与微调方法相比,RAG 具有一些明显的优势:

答案可以引用其信息来源,这使我们可以验证信息并可能根据要求更改或更新基础信息

不太可能产生幻觉,因为我们不依赖大模型的内部知识来回答问题,而仅使用相关文件中提供的信息

当我们将问题从 LLM 维护转换为数据库维护、查询和上下文构建问题时,更改、更新和维护 LLM 使用的基础信息会变得更加容易

可以根据用户上下文或其访问权限对答案进行个性化

另一方面,在使用检索增强方法时,我们应该考虑以下限制:

答案取决于智能搜索工具

应用程序需要访问我们的特定知识库,无论是数据库还是其他数据存储

完全无视语言模型的内部知识限制了可以回答的问题数量

有时大模型无法遵循指示,因此如果在上下文中找不到相关答案数据,则存在上下文可能被忽略或出现幻觉的风险。

总结

这篇文章深入探讨了大型语言模型 (LLM) 的局限性,例如:知识截止,幻觉,以及缺乏用户定制。

为了克服这些问题,我们了解了两个概念,即大模型的微调和检索增强生成(RAG)。

克服大模型局限性的第一种方法是微调。大模型的微调涉及监督训练阶段,其中提供问答对来优化大模型的表现。这可用于更新和扩展大模型的内部知识或针对特定任务对其进行微调。

然而,微调并不能解决知识截止问题,因为它只是将截止日期推后。它也不能完全消除幻觉。因此,我们建议对缓慢变化的数据集使用微调方法,其中允许出现一些幻觉。由于微调大模型相对较新,我们渴望了解更多有关微调方法和最佳实践的信息。

克服大模型局限性的第二种方法是所谓的检索增强生成,其中大模型充当访问外部信息的自然语言接口,从而不仅仅依赖其内部知识来产生答案。检索增强方法的优点包括引用来源、可忽略的幻觉、易于更改和更新信息以及个性化。

然而,它严重依赖智能搜索工具来检索相关信息,并且需要访问用户的知识库。此外,它只能回答查询,前提是它具有解决问题所需的信息

我们可以根据自己的需要来选择适合自己的方法。

拓展阅读

https://medium.com/neo4j/harnessing-large-language-models-with-neo4j-306ccbdd2867

https://youtu.be/bZQun8Y4L2A

https://huggingface.co/blog/lora

https://crfm.stanford.edu/2023/03/13/alpaca.html

https://lmsys.org/blog/2023-03-30-vicuna/

https://towardsdatascience.com/getting-started-with-langchain-a-beginners-guide-to-building-llm-powered-applications-95fc8898732c

https://towardsdatascience.com/langchain-has-added-cypher-search-cb9d821120d5

https://blog.llamaindex.ai/llamaindex-on-twiml-ai-a-distilled-summary-using-llamaindex-de2a88551595

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1493700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国货当自强,亿道3款手持新品同步上市

深圳市亿道信息股份有限公司是国内知名的加固型移动计算机提供商,同时也是国内较大的行业定制及终端产品方案公司之一。 过去我们一直专注于平板电脑集成RFID射频识别、电子标签技术的研发生产与销售,以成熟的平板电脑制造技术,为客户提供RF…

重学SpringBoot3-日志Logging

重学SpringBoot3-日志Logging 引言默认日志配置日志门面如何实现默认配置 自定义日志配置日志级别日志分组日志格式日志输出自定义 Logback 配置切换日志框架 日志使用方式一:LoggerFactory 获取Logger对象方式二:引入 lombok 总结 引言 日志记录是任何…

记录一则 线上域名证书更新及cdn证书更新

本篇为阿里云免费证书更新记录。 登录阿里云账号 搜索数字证书管理服务管理控制台 点击创建证书 输入你的域名 填写相关信息(注:域名验证方式选择文件验证) 等待审核通过(时间不久,一般为半小时内) …

RabbitMQ(三):AMQP协议

目录 1 AMQP协议1.1 AMQP协议介绍1、AMQP是什么2、消息代理中间件的职责 1.2 AMQP 0-9-1模型1、AMQP的工作过程2、交换器和交换器类型3、队列队列属性队列名称队列持久化 1.3 几个概念1、绑定2、消费者3、消息确认4、预取消息5、消息属性和有效载荷(消息主体&#x…

leetcode 经典题目42.接雨水

链接:https://leetcode.cn/problems/trapping-rain-water 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 思路分析 首先,我们需要遍历数组,对于每个元素&am…

探秘C语言:如何轻松求解正整数公因子个数?

本篇博客会讲解力扣“2427. 公因子的数目”的解题思路,这是题目链接。 本题的思路是: 由于a和b公因子的个数就是a和b的最大公约数的因子的个数,所以我们需要思考以下2个问题: 如何求解最大公约数?如何求解正整数的因…

性能测试总结 —— 基础理论篇!

随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除了需要保证基本的功能测试质量,性能也随越来越受到人们的关注。但是一提到性能测试,很多人就直接连想到Loadrunner。认为LR就等于性能测试&a…

事件流、事件捕获、事件冒泡、事件委托

一、事件流 事件流指的是事件完整执行过程中的流动路径,分为捕获阶段、冒泡阶段。如上图 二、事件捕获 当一个元素的事件被触发时,会从DOM的根元素开始,依次调用同名事件(从外到里,从父到子)。 DOM.addEve…

【MySQL】数据库设计

目录 数据库设计基本任务 软件项目开发周期中数据库设计数据库设计的基本步骤解释需求分析需求分析的三个步骤:1.需求调查:2.分析数据字典内容定义数据的方法案例 3. 评审 概念结构设计概念模型概念结构设计E-R图概念模型组成元素:关系解释案例分析 逻辑…

网络安全: Kali Linux 进行 SSH 渗透与防御

目录 一、实验 1.环境 2.nmap扫描目标主机 3.Kali Linux 进行 SSH 渗透 3.Kali Linux 进行 SSH 防御 二、问题 1.SSH有哪些安全配置 一、实验 1.环境 (1)主机 表1 主机 系统版本IP备注Kali Linux2022.4 192.168.204.154(动态&…

基于springboot+vue的农商对接系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

110. 平衡二叉树【简单】

110. 平衡二叉树【简单】 题目描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:r…

Vivado HLS学习笔记

任意精度的数据类型 u 代表 unsigned&#xff0c;fixed代表定点数据&#xff0c;即常数 采用任意精度的数据类型可以使用更少的资源&#xff0c;硬件友好性 数据类型定义在 header file 中 表示任意进制 ap_int<6> a("101010",2); //二进制数据101010 ap_in…

DR模式下部署LVS负载均衡集群的详细原理

目录 一、LVS-DR模式 1、基本原理 2、数据包流向分析 二、LVS-DR中的ARP问题 三、LVS-DR 特点 3.1 DR模式的特点 3.2 LVS-DR的优缺点 四、RS设置lo:0而不设置ens33:0的原因 一、LVS-DR模式 1、基本原理 Director Server作为群集的访问入口&#xff0c;但不作为网关使…

【C++实战项目】Date日期类 --- 运算符重载的深入探索

&#x1f4f7; 江池俊&#xff1a;个人主页 &#x1f525; 个人专栏&#xff1a;✅C那些事儿 ✅Linux技术宝典 &#x1f305; 此去关山万里&#xff0c;定不负云起之望 文章目录 引言一、为什么需要运算符重载&#xff1f;二、日期类的实现1. 基本框架2. 预备工作3. Date 类…

【MySQL】数据库的操作(1)

【MySQL】数据库的操作&#xff08;1&#xff09; 目录 【MySQL】数据库的操作&#xff08;1&#xff09;创建数据库数据库的编码集和校验集查看系统默认字符集以及校验规则查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响数据库的删除 数据库的备…

预算有限,3D渲染更该升级显卡还是CPU?升级电脑配置推荐!

在当今数字化时代&#xff0c;影视、游戏和效果图设计等领域都需要强大的计算机来支持3D渲染工作。受当前国际和市场环境影响&#xff0c;硬件价格持续上涨&#xff0c;有专家预测这种局面将至少持续半年以上。因此&#xff0c;在预算有限的情况下&#xff0c;很多设计师在电脑…

Spring Cloud Gateway核心之Predicate

路由 Predicate 工厂 Spring Cloud Gateway 将路由作为 Spring WebFluxHandlerMapping基础设施的一部分进行匹配。Spring Cloud Gateway 包含许多内置的路由Predicate 工厂。所有这些谓词都匹配 HTTP 请求的不同属性。多个 Route Predicate Factory 可以组合&#xff0c;并通过…

【VTKExamples::PolyData】第四十八期 ShrinkPolyData

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享VTK样例ShrinkPolyData,并解析接口vtkShrinkPolyData,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. ShrinkPol…

基于RFID技术+WMS仓储管理应用设计

一、项目背景 1.1 背景 仓储管理是企业对仓库及其内部物资进行计划、组织、控制和协调的管理过程。它在整个物流和经济活动中扮演着重要的角色&#xff0c;连接着生产者和消费者。 不同规模和产品种类的企业有不同的仓储管理流程和需求&#xff0c;但核心部分都包括仓库作业…