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

2024-03-07 23:04

本文主要是介绍知识图谱与LLMs:微调 VS RAG、LLM的局限性以及如何克服,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址: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

这篇关于知识图谱与LLMs:微调 VS RAG、LLM的局限性以及如何克服的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/785117

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

【Python知识宝库】上下文管理器与with语句:资源管理的优雅方式

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、什么是上下文管理器?二、上下文管理器的实现三、使用内置上下文管理器四、使用`contextlib`模块五、总结 前言 在Python编程中,资源管理是一个重要的主题,尤其是在处理文件、网络连接和数据库

dr 航迹推算 知识介绍

DR(Dead Reckoning)航迹推算是一种在航海、航空、车辆导航等领域中广泛使用的技术,用于估算物体的位置。DR航迹推算主要通过已知的初始位置和运动参数(如速度、方向)来预测物体的当前位置。以下是 DR 航迹推算的详细知识介绍: 1. 基本概念 Dead Reckoning(DR): 定义:通过利用已知的当前位置、速度、方向和时间间隔,计算物体在下一时刻的位置。应用:用于导航和定位,

LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互