导读
OpenKG新开设“TOC专家谈”栏目,推送OpenKG TOC(技术监督委员会)专家成员的观点文章。本期邀请到国防科技大学赵翔教授介绍“知识融合视角下的检索增强生成技术”方面的一些思考,尝试将RAG放到经典知识融合的框架下,重新审视并引出若干借鉴经典方法对RAG过程进行优化的思路和例证。
摘要
大数据智能时代,知识已成为人类创造力与高新信息技术有机协同的根源性驱动力。知识融合旨在关联不同来源的知识,提升知识的覆盖度和准确度,为下游任务提供更全面和高质量的知识支撑。近年来,大语言模型(large language models, LLMs)相关研究兴起。有观点认为,LLMs通过预训练过程,从大规模语料中习得了事实、常识等丰富的知识,并用参数化的形式将其存储起来,以响应用户的各类查询。然而,LLMs的生成式回复依然面临幻觉等问题,为提升LLMs回复的准确性和可靠性,检索增强生成(retrieval augmented generation,RAG)技术通过检索外部知识源(如知识图谱等),获取相关知识,为LLMs提供更加充分可靠的上下文信息用于生成。该过程可视为外部检索所得知识和LLMs内部参数化知识的一种融合与应用。
本文从知识融合的视角出发,重新审视和分析RAG技术,旨在通过参考借鉴经典知识融合的思想和方法,优化RAG过程中的知识融合环节,提升RAG的质量与可解释性。具体地,首先介绍知识融合的背景,描述经典知识融合过程中输入输出的形式,阐述预处理、对齐以及去噪等三个融合的关键步骤;随后,介绍知识融合视角下的RAG技术,在知识融合的框架下重述RAG过程,并指出在融合框架的各阶段,现有技术可从经典知识融合中借鉴和进一步优化之处,为相关研究人员提供新的研究视角与探索方向。
1.知识融合背景及经典方法
伴随着信息化建设和数字化转型的进程,知识工程的研究在40多年中不断发展和创新。在大数据智能时代,大数据知识工程方法与技术逐渐引发关注并得到广泛研究。简言之,大数据知识工程的研究框架始于“数据知识化”,经由“知识体系化”,最终实现“知识可推理”[1]。
在知识体系化过程中,知识融合发挥了至关重要的作用。当前,知识多以知识图谱或类似的形态存在[2],它通过图这种结构化的建模方式,配以符号化的文本描述,刻画客观世界中的概念、实体及其之间的关联关系。因此,狭义上的知识融合就是通过关联多源知识图谱中的符号化知识,辅助形成对事物更充分的描述和更深入的理解。
图1. 经典知识融合的基本流程
如图1所示,经典知识融合中,输入是结构化的知识图谱、非结构化的文本等各类知识,输出是一个融合后的知识图谱,融合过程一般包含三个关键的处理步骤:
(1)预处理:预处理阶段旨在对输入的知识源进行处理,获取待融合的多源知识,形成知识融合的基础。具体地,从非结构化或结构化的知识源中提取待融合的知识,对知识进行清洗和分块等操作,并通过表示学习技术将其转化为低维嵌入表示,以便后续阶段工作。
(2)对齐:对齐阶段旨在找出不同知识源之间的对等实体(及关系),为知识的合并找到锚点。具体地,其将不同知识图谱的嵌入表示映射到统一空间,计算不同知识图谱的嵌入表示之间的相似度,为每个待对齐的实体或关系选择相似度最高的对象进行配对;亦可利用更精确的推理算法获得对齐结果。
(3)去噪:去噪阶段旨在利用对齐得到的对等锚点知识,通过冲突检测和真值发现等手段,解决不同知识源间的冲突与矛盾,并进一步规范融合后的知识表达形式,提升知识质量。
经典知识融合的研究较为广泛,经过多年积累已形成一系列阶段性成果,感兴趣的读者可以进一步参考和阅读文献[3-5],以求更加完整的认知和深入的理解。本文的主要目的是带领读者从知识融合的新视角,看待、分析和优化检索增强生成(retrieval augmented generation,RAG)技术。
2.知识融合视角下的RAG技术
由于复合性、涌现性、扩展性等特性,生成式人工智能正在引发新一轮的信息技术变革。其中,在大规模语料库上预训练的大语言模型(large language models, LLMs)在多项自然语言处理任务上展现出部分超越人类的卓越性能,并在若干行业场景中得到了初步应用[6]。然而,LLMs中的知识隐式地存储在神经网络的模型参数之中,因而难以显式地对这些参数化知识(parametric knowledge)进行直接利用。此外,LLMs存在着幻觉、信息过时、缺乏专业领域深度知识、更新训练复杂度高等棘手问题,暂难以满足实际应用中存在的数据频繁更新、成本可控等现实约束。
为此,作为应对方案之一的RAG技术应运而生。RAG利用从外部知识源中检索得到的相关知识,构建LLMs生成时的上下文来辅助其生成回复,在一定程度上缓解了LLMs生成幻觉的问题,提升了回复的准确性[7]。一般认为,RAG主要包含索引、检索和生成等三个步骤:索引步骤旨在将外部知识源分块并编码为向量;检索步骤旨在根据输入查询与分块知识之间的语义相关性,检索得到最相关的外部知识;生成步骤则将检索到的相关外部知识作为上下文,和用户的查询一起输入LLMs,生成最终的回复。
图2通过一个例子,对比展示了RAG的基本流程及其优势。当直接输入查询的时候,由于内部不具备相关的知识,LLMs无法提供一个恰当的回复。相较而言,引入RAG技术后,模型能从外部知识源中检索相关的知识,并将这些外部知识作为给LLMs提示(prompt)的一部分输入LLMs;通过结合外部检索到的相关知识和LLMs中的内部知识,LLMs生成了较为准确的回复。随着研究的深入,RAG过程中具体使用到的索引、检索与生成方法,可根据下游任务需要而有所变化[8]。
图2. RAG的基本流程
不难看出,RAG技术通过融合外部检索得到的符号化知识与LLMs中所隐含的参数化知识,能够更好地服务下游任务——这实质上是一种超越了传统符号化知识融合的广义知识融合。据此,笔者思考并试图将RAG纳入知识融合的框架下,进行重新审视,以期引发一些新的讨论和发现。
具体而言,可将RAG过程重构为预处理、对齐、去噪等三个知识融合的步骤。如图3所示,输入是用户查询、外部知识源以及LLMs,输出则是针对用户查询的回复。其中,预处理步骤旨在对外部知识源进行清洗、分块、索引、嵌入等,并结合输入的查询进行检索;对齐和去噪两个步骤主要在LLMs内部隐式地完成,通过融合外部符号化知识与LLMs内部参数化知识推理得到输出回复。接下来,具体描述各个步骤,并介绍可参考和利用经典知识融合方法进行优化的一些思路。
图3. 知识融合视角下的RAG技术
2.1 预处理
预处理旨在对外部知识源进行清洗和准备,获取与用户查询更相关、更丰富的高质量知识,为后续融合过程做好准备。RAG的预处理主要包含知识清洗、知识分块与索引、知识嵌入以及知识检索四个步骤。知识清洗旨在去掉噪声数据,提升输入的质量,为后续处理步骤打下基础。现有方法Telco-RAG [9],通过应用“3GPP规范词汇(vocabulary for 3GPP specification)”来规范数据格式、移除噪声,进而提高外部知识源的质量;还有工作通过对输入查询的表达方式进行优化来提高RAG的效果[10]。知识分块与索引旨在对外部知识源进行有效的逻辑分割,创建精炼且高度相关的小型知识单元,并建立索引以加速分块定位过程[8];例如,多表示索引方法[11],为外部文档生成摘要和ID作为索引。知识嵌入旨在将分块后的知识映射到向量空间,形成向量数据库,以便后续检索时进行相关性计算。已有方法大多通过在领域或任务特定的数据集上微调(fine-tune)嵌入模型;例如使用BERT预训练模型在代码文档、API名称上微调,以求在相关领域获得更准确的嵌入表示[12]。知识检索旨在从外部知识源中定位和提取相关的知识,为后续融合做好准备,主要包括三个步骤——检索需求判断、检索获取与查询相关的内容、重排序等检索后处理技术以优化检索结果[8]。
上述RAG预处理方法从效果上看还比较局限,导致检索结果准确性较低,且关联性不高。因此,可考虑采用经典知识融合过程中常用的图结构来优化外部知识源的组织;例如,GraphRAG等工作已进行了类似的探索,通过图结构的方式存储知识以提取关键核心信息,并采用子图划分技术进行更灵活的知识分块[13][14]。进一步地,可考虑采用图神经网络对外部知识源中的实体、关系及子图进行多层次嵌入,以更准确地捕获上下文及全局信息,提高检索结果的质量。
2.2 对齐
RAG通过将检索得到的知识转化为文本提示,与LLMs中的参数化知识融合后,推理得到下游任务所需的回复[15]。但由于LLMs的内部机制复杂且不透明,这种方式的知识对齐主要以参数的形式在LLMs内部完成,难以直观呈现其具体的运行逻辑,缺乏可解释性,导致可能出现预期外的结果。而经典知识融合过程中的对齐能够建立不同知识源中相同对象的关联,其过程有较强的可解释性。因此,可考虑采用经典知识融合的思路对现有RAG的融合过程进行优化,使对齐过程变得可解释和易溯源,进而提升融合的效果。
具体地,一种可行的思路是将对齐过程转移到符号空间(symbolic space),首先利用事实探查(factual probing)技术让LLMs基于其内部参数化知识生成关于给定查询的符号化知识(如文本、三元组等),再进一步利用符号化知识对齐的手段,建立由LLMs所生成的符号化知识和由检索所得的外部符号化知识之间的关联,筛选对齐知识以辅助生成,增强融合可解释性的同时提升RAG的效果;以COMBO框架[16]为例,它利用半监督训练的判别器评估LLMs生成的内部符号化知识与检索到的外部符号化知识之间的相容性,在符号化空间对两者进行匹配,再选择高一致性的匹配结果用于生成最终的回复。进一步地,可利用经典融合方法中的实体对齐等技术,建立外部知识和内部知识在实体、关系层面的对等关联,并将融合后的知识送入LLMs中,使之利用更完备的检索知识来生成最终的回复。这种方法在有效融合内外部知识的基础上结合了LLMs的深度推理能力,同时借助明确的标注和溯源机制,保留了知识来源的可追溯性和生成结果的可解释性。
2.3 去噪
RAG过程中检索得到的符号化知识和LLMs内部参数化知识之间是可能会存在冲突的。因此,需通过去噪操作识别不同知识源之间的冲突,去除错误知识,进而保证最终输出的准确性。现有RAG方法的去噪策略多假设外部符号化知识是正确的,进而利用外部符号化知识改变LLMs的输出;例如知识感知微调(KAFT)方法[17],通过数据增强和负采样技术提升模型处理噪声数据的能力,在训练数据中加入反事实(counterfeit)或无关上下文,提升模型应对冲突信息的鲁棒性。还有方法假设外部符号化知识存在错误,旨在使LLMs能够辨别外部知识中存在的无关噪声信息;例如,通过训练判别器对外部知识中的噪声进行识别,并提示LLMs外部知识中可能存在的错误信息[18]。
值得注意的是,现有面向RAG的去噪方法通常假设噪声仅存在于LLMs中或外部知识中,然而现实中的内外部知识可能同时存在噪声。因此,可借鉴经典知识融合方法,动态判断外部符号化知识与LLMs内部知识的可信度,进而更准确地消除噪声知识;例如,提出利用数据增强技术构造数据集并微调训练模型,使其能将两类知识分开处理并识别噪声[19]。进一步地,可考虑在上节符号化对齐方案的基础上,利用经典知识融合方法中的去噪策略,在符号化空间中检测LLMs输出知识与外部检索知识之间存在的冲突,评估不同知识来源的可靠度与其提供知识的置信度,从而识别并去除LLMs或外部检索的知识中存在的噪声。
2.4 输出
现有RAG方法旨在融合检索得到的外部知识和LLMs中的内部知识,生成响应用户查询的回复。然而,这种输出仅能用于回答某一特定查询,但未将融合后的知识固化,以便后续使用;换言之,LLMs仍可能无法准确回答这类问题。而经典的知识融合方法的输出是融合后的知识图谱,并通过融合过程提升了图谱的覆盖程度和准确性,具有可扩展性和可复用性,从而能更好地支撑下游应用。因此,可借鉴经典融合方法的思想,对RAG的输出进行优化,使其在生成准确回复的同时,能用融合后的知识对外部符号化知识源和大模型中的参数化知识进行维护或更新,进而保证知识的时效性和准确性,使其具备长期复用的能力。
具体地,可考虑借助知识编辑(knowledge editing)技术,利用融合后的知识对LLMs中错误的参数化知识进行补充或修正。一种方案是通过在前向传播网络中添加神经元或适配器(adapter)以整合新知识与原有知识;例如,使用动态更新的代码本(code notebook)作为适配器来修改模型输出[20]。还有一种方案是直接修改模型参数权重以更新知识;例如,ROME通过因果分析定位关键隐藏状态后对其进行参数权重优化[21]。对于外部符号化知识源的维护更新,则可直接利用经典知识融合方法,使用融合后的知识对外部知识源中不完整或过时的知识进行补充或更新。此外,还可基于融合后的知识维护一个额外的外部知识库,使得在后续生成时能够高效复用前序融合所得的相关知识,更好地辅助LLMs生成。
总结与展望
RAG技术通过融合外部检索得到的符号化知识与LLMs中所隐含的参数化知识,能够更好地服务于下游任务,因此RAG符合知识融合的思想,可视为是对经典知识融合的一种推广。据此,本文尝试将RAG放到经典知识融合的框架下,进行重新审视并引出若干借鉴经典方法对RAG过程进行优化的思路和例证。
关于下一步研究,尚有良多值得探索和创新的方向,这里仅举两例加以说明。一是探索外部符号化知识与LLMs内部参数化知识深度融合的形式;以CRITIC框架[22]为例,首先利用LLMs生成回复,随后使LLMs对回复进行批判,并调用外部知识源或者工具修复回复中不正确的地方,由此迭代提升。二是进一步扩展知识融合的范畴,可考虑动态融合多源符号化知识和多个LLMs参数化知识,提升融合后知识的覆盖度和质量,进而更好地辅助决策过程;以RoleAgentQG框架[23]为例,通过动态融合外部知识源以及多个LLMs中的参数化知识,实现更准确的回复生成。
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈