融合群体智能策略的AI链在大坝防汛抢险知识推理中的应用
2023-10-17杨阳蕊朱亚萍陈思思刘雪梅李慧敏
杨阳蕊,朱亚萍,陈思思,刘雪梅,2,李慧敏
(1.华北水利水电大学 信息工程学院,河南 郑州 450000;2.黄河流域水资源高效利用省部共建协同创新中心,河南 郑州 450000;3.华北水利水电大学 水利学院,河南 郑州 450000)
1 研究背景
精准高效完成防汛抢险工作对维护水利工程项目安全运行、保障国家水安全至关重要[1]。在大坝防汛抢险工作中涉及到的知识包括防汛实体(如风险事件、发生部位、抢护方法等)和实体间关系[2](如存在风险、采取方法、功能相似等)。这些知识广泛存在于水利工程文本中,将非结构化工程文本中散乱分布的防汛抢险实体与关系表示为知识图谱结构化形式,为防汛抢险工作提供有力知识支撑,对推进防汛抢险工作数字化、智能化发展意义重大[3-4]。
目前水利工程文本大多以非结构化文档形式存储,内容关联性弱,且实体关系语句分布不集中。由于文本的非结构化特性,文本中丰富的防汛抢险知识不易被有效利用,提高该知识可访问性的现有方法是从可利用文本中直接抽取防汛实体间关系。现有方法有基于总结句型的方法[5-6],以及利用标注实体关系标签的句子训练或微调模型[7-9]的监督或半监督方法。这些方法[10-12]可在一定程度上提高防汛实体关系知识的可访问性,但存在两方面局限:(1)可利用工程文本数量过少,即公开可利用的工程文本有限,可能无法充分涵盖各种防汛实体间关系,此外,句型描述多变使得总结句型需要大量人力成本;(2)文本质量偏低,主要表现为文本中表达防汛实体间关系的语句分布散乱,现有方法只能从当前输入句子中抽取明确陈述的防汛实体间关系[13-15],但实际中多数防汛实体间关系不是在一个句子中找到的,而是分散在可以组合的句子中通过推理得出两实体间关系,例如通过组合“发生超标准洪水时,应增大水库蓄洪能力”与“在坝顶抢筑子埝,利用大坝超高蓄洪”两条语句,可推理出超标准洪水与坝顶抢筑子埝之间的“采取方法”关系,进而得到<超标准洪水,采取方法,坝顶抢筑子埝>三元组知识。此外输入文本极易因非规范描述产生语义模糊现象,且多数复杂句包含代词指称和冗余描述,而现有方法对高质量输入文本的强依赖性决定了其从复杂语句中抽取领域知识的能力有限。
为了克服这些限制,与从现有文本中进行知识抽取的方法不同,本文采取一种截然不同的思想,即通过大型语言模型LLM(Large Language Model,如GPT-3.5[16],GPT-4)进行大坝防汛抢险知识推理(Flood Control and Rescue Knowledge Inference,FCRKI)。与抽取不同,推理的方法不要求输入语句中具有明确的防汛实体间关系,而是通过LLM分别挖掘出防汛实体相关描述,将相关语句组合,进而根据这些组合语句分析推理出防汛实体间关系。LLM经过整个互联网中语料的预训练[17],是拥有世界知识的人工智能AI(Artificial Intelligence)引擎,被称为基础模型[18],通过LLM挖掘防汛实体相关知识,可利用整个互联网作为知识库,不依赖有限的文本源,从而避免可利用工程文本数量过少的限制。LLM学习到互联网中多样的语言表达模式,且其上下文学习能力支持组合不同语句进行关系推理而不依赖于特定的文本输入,因此可避免输入文本质量偏低的限制。然而若直接使用LLM查询防汛实体间关系,其很可能由于无法深入理解领域知识产生无效响应。为了避免直接查询生成无效回答,受任务分解[19]与提示链接[20]等研究的启发,本文设计一种大坝防汛抢险知识推理新范式,这种范式将总体推理任务分解为子任务,为各个子任务设计任务提示,按特定结构将任务提示链接形成“AI链”,以驱动LLM根据AI链中任务提示逐步完成各个推理子任务,最终解决防汛实体间关系推理问题。具体来说,将防汛抢险实体间关系推理整体流程详细分解为三个步骤,依次为防汛实体抽取、实体相关知识挖掘与实体间关系推断,针对三个步骤设计三个模块与LLM进行实时交互,分别是防汛实体抽取器(Entity Extractor,Eer)、防汛实体知识解析器(Knowledge Parser,KPer)和防汛实体间关系决策器(Relation Decider,RDer),在三个模块中通过设计一系列提示,逐步引导LLM根据提示从知识库中对目标知识进行抽取、挖掘与推理。为了提高防汛实体间关系推理的可靠性,本文设计了一种群体智能策略[21],即由RDer以三种不同方式(开放式提问、限制性判断、限制性选择)对该实体对间关系做出三次决策,采用多数投票决定最终结果,从而完成防汛实体间关系推理。FCRKI主要利用LLM丰富的语言知识及上下文学习能力进行防汛实体间关系推理,打破了可利用工程文本数量过少和防汛实体关系语句分布散乱的局限。这一新范式给水利领域各种信息抽取任务提供了新的解决思路,将使研究人员更高效率地完成不仅限于大坝防汛抢险知识推理等水利信息化任务中任何一种需要AI参与的任务。
2 防汛抢险知识推理方法
2.1 关系类型描述大坝防汛抢险工作涉及的关系类型众多,以5种关系类型为例介绍防汛抢险知识推理方法,关系类型分别是:存在风险、连带险情、采取方法、功能相似、功能对比[12]。其中“存在风险”关系,即某一工程部位会出现某种风险事件;“连带险情”关系,即某一工程险情可能会连带另一种工程险情的发生;“采取方法”关系,即出现某种险情时需要采取某种方法抢护;“功能相似”关系,即不同物料之间的可替代;“功能对比”关系,即物料之间的效率对比。
2.2 总体任务分解现有的基于监督或半监督学习的方法,需要大量人力成本对数据进行收集、清理和标记[22],从而完成模型训练、评估和优化。与之不同,本文提出的知识推理方法利用LLM的强大语言处理能力以无监督学习方法进行防汛实体间关系推理。为完成知识推理总任务,该方法模仿人类思维,将推理流程分解为三个串行子任务,分别是抽取防汛实体并配对、挖掘防汛实体相关知识并组合、基于组合知识推理出防汛实体间关系。同时,针对三个子任务设计了三个子模块,分别是防汛实体抽取器Eer、防汛实体知识解析器KPer和防汛实体间关系决策器RDer,总体框架如图1(图中黑体为突出重点,下同)。在知识推理过程中,首先,Eer旨在引导LLM从输入文本中提取大坝防汛实体,将实体两两配对,这里Eer只做实体抽取,不考虑实体间关系,不受当前输入文本语义复杂度的影响。随后KPer基于LLM的庞大知识库挖掘与防汛实体对相关的语句描述,并对语句进行合并处理,最后RDer基于此组合语句推理总结出防汛实体间关系,各子模块通过串行方式完成推理工作。
图1 FCRKI总体框架
2.3 子模块分解为了更好的解决子任务,进一步将每个子模块分解为责任单一的两个子问题,针对各模块中单一子问题设计功能单元,分别是AI单元与非AI单元,如图2所示。AI单元是指基于LLM(AI知识库)进行推理的单元,非AI单元是指遵循客观规则或逻辑的单元。
图2 功能单元图
防汛实体知识解析器分解为一个AI单元(防汛实体知识挖掘)和一个非AI单元(实体知识组合)。即给定一个实体对,该模块中AI单元通过LLM挖掘实体对中每个实体的相关知识,再由非AI单元将两条知识合并为一组完整的、综合的段落。考虑到该模块需要推理5种类型的关系,为每种关系类型设计单独的知识解析器,5个知识解析器通过并行方式完成相关知识挖掘工作。
防汛实体间关系决策器分解为三个AI单元(防汛实体间关系决策1、防汛实体间关系决策2、防汛实体间关系决策3)和一个非AI单元(结果组合)。即给定一个实体对及与实体对相关的完整知识段落,该模块的三个AI单元将从不同角度和风格(直接提问、判断声明正误、制定选项),独立地评估实体间关系,再由非AI单元将三个AI单元的输出汇总,通过多数投票最终确认实体间关系。此外,为了提高FCRKI的鲁棒性,将为每种防汛实体间关系类型设计单独的关系决策器,各个决策器并行操作。
2.4 AI单元的有效提示设计充分利用LLM的上下文学习能力,通过AI单元中的有效任务提示和案例来激活LLM执行特定任务的能力。上下文学习方式无需梯度更新[23-24],只需一个任务提示和很少的案例,就可以使LLM适应新任务[25]。此外,一项实验研究[26]表明,任务提示和相关案例对语境学习十分重要。为了使提示设计更加标准,通过一系列研究[27-29]的启发开发一个模板,如图3所示,该模板包括任务提示(例如:从输入文本中抽取防汛实体)和相关输入输出案例。其中任务提示用于指导LLM完成指定任务,输入输出案例则使LLM学习到任务相关语境特征。为了确保FCRKI的准确性不受相同风格句式的影响,以非连续实体、嵌套实体、非常规缩略语、长难句、并列排比句5个不同风格特征为选取标准,选取了5个代表性案例以供LLM完成语境学习,5个特征对应的输入输出案例依次为:(1)输入:细颗粒被带走,使坝体或地基产生较大沉陷;输出:坝体沉陷、地基沉陷;(2)输入:坝顶漫溢常因原设计标准偏低或暴雨集中;输出:坝顶、坝顶漫溢;(3)输入:当口门溜势稍缓,即应抓紧推枕抛石盘筑裹头;输出:口门、盘筑裹头;(4)输入:设有事故检修闸门门槽而无检修闸门时,将临时调用的钢(木)叠梁逐条放入门槽;输出:检修闸门门槽、钢(木)叠梁;(5)输入:土坝裂缝包括龟状裂缝、横向裂缝、纵向裂缝;输出:龟状裂缝、横向裂缝、纵向裂缝。这5个案例有不同的文本长度和实体特征。
图3 防汛实体抽取器
2.4.1 防汛实体抽取器中的AI单元 Eer包含一个AI单元(防汛实体提取)。该单元提供给LLM的任务提示为“从输入文本中抽取防汛实体”。具体工作为AI单元根据任务提示提取输入文本中的实体并将其输出,非AI单元接收AI单元的输出实体作为输入,并根据客观规则和逻辑将其配对。抽取案例及其对应的输出如图3所示。
2.4.2 防汛实体知识解析器中的AI单元 为每种关系关联的实体设置独立的防汛实体知识解析器(KPer)。每个KPer都有一个AI单元(防汛实体知识挖掘),每个AI单元对应一种关系,该AI单元的重点是挖掘防汛抢险实体的相关知识。LLM是拥有世界知识的AI知识库,其不局限于有限的现存文本,可根据有效提示挖掘相关知识并将知识返回。由于使用5种关系类型测试,因此设计5组有效提示引导LLM挖掘防汛实体相关知识。提示设计如表1所示。
表1 知识挖掘的提示设计
KPer中AI单元的任务提示为“回答实体相关问题”,以“存在风险”关系为例,AI单元根据提示生成相关知识,随后,非AI单元根据规则将知识组合。实例输入及输出如图4所示。
课堂教学模式的优化需要一个具体的过程,并不是一两节课就能够解决的。它需要我们化学教师扎扎实实地进行工作,认认真真地分析自己在教学中的问题,并仔仔细细地思考其中的缘由和解决措施,从而摸索出一条具有自身教学特色的课堂优化之路,提升教学的质量。
图4 防汛实体知识解析器
2.4.3 防汛实体间关系决策器中的AI单元 为了确保关系推理的可靠性,为每种关系都设置独立的防汛实体间关系决策器(RDer),通过分裂-投票-合并的方式实现群体智能策略。具体来讲,将RDer分裂出三个子决策,每个子决策设置一个独立AI单元,分别是防汛实体间关系决策1、防汛实体间关系决策2和防汛实体间关系决策3,三个AI单元并行工作,根据LLM生成的知识通过直接提问、判断声明正误和限制性选择答案三种方式做出三次回答,最后将答案进行合并得到一个更全面、更合理的结果从而完成关系推理。决策1和决策2中有效提示需根据每种关系类型量身定制,由于中文中一词多义性,单一词语可能造成歧义,导致LLM生成无效的回答。例如:“实体_1和实体_2之间是否具有存在风险关系”,由于存在风险在不同领域中关联到知识不同,LLM会生成“它们之间具有一定的关系”这种模糊的无效回答,而不是做出“是”或“否”的直接判断。为此,本文在提示中将每种关系替换为该关系的描述,防汛实体间关系决策1中各关系类型提示如下:
存在风险:基于上述知识回答,{实体_1}和{实体_2}是否具有“某一工程部位会出现某种风险事件”这种关系?
连带险情:基于上述知识回答,{实体_1}和{实体_2}是否具有“某一工程险情可能会连带另一种工程险情的发生”这种关系?
采取方法:基于上述知识回答,{实体_1}和{实体_2}是否具有“出现某种险情时需要采取某种方法抢护”这种关系?
功能相似:基于上述知识回答,{实体_1}和{实体_2}是否具有“不同物料之间可替代”这种关系?
功能对比:基于上述知识回答,{实体_1}和{实体_2}是否具有“物料之间的效率对比”这种关系?
防汛实体间关系决策2中通过判断声明正误,再次对实体间关系类型进行决策,各关系类型声明如下:
存在风险:基于上述知识判断,{实体_1}和{实体_2}具有“某一工程部位会出现某种风险事件”这种关系。
连带险情:基于上述知识判断,{实体_1}和{实体_2}具有“某一工程险情可能会连带另一种工程险情的发生”这种关系。
采取方法:基于上述知识判断,{实体_1}和{实体_2}具有“出现某种险情时需要采取某种方法抢护”这种关系。
功能相似:基于上述知识判断,{实体_1}和{实体_2}具有“不同物料之间可替代”这种关系。
功能对比:基于上述知识判断,{实体_1}和{实体_2}具有“物料之间的效率对比”这种关系。
防汛实体间关系决策3中,将5种关系视为5个选项作为提示,引导LLM做第三次决策,如图5-Ⅰ中决策3所示。
图5 防汛实体间关系决策器
以存在风险关系推理为例,RDer将KPer挖掘并组合的实体相关知识以固定格式输入到LLM中。防汛实体间关系决策1通过开放式提问得到“是”或“否”的准确回答。防汛实体间关系决策2通过判断所设声明的正误得到“正确”或“不正确”的回答。防汛实体间关系决策3通过限制性选择答案,从5个给定选项中选择一项关系,如果无法确定,则选择“未知”。如图5-Ⅰ所示。为提高关系推理的准确性,最终结果采用群体智能策略确定,即三个决策中有2个及以上对“实体对之间存在该种关系”表示肯定,则认为此关系成立并输出最终三元组。群体智能策略实现如图5-Ⅱ所示。
3 实验设置
3.1 文本预处理本文主要以防洪抢险应急预案文档、防汛条例、防汛抢险知识文本作为主要案例源。在获得相关文本后,对文本进行段落筛选,过滤掉与防汛知识无关的描述,利用自然语言处理工具PyLTP(Python Language Technology Platform)[30]对筛选后的段落以句号为分隔符进行分句处理,最终获得3104条文本,将3104条文本输入到防汛抢险实体抽取器中,获得5601个实体对。以此5601个实体对为基础测试数据,通过实验检验防汛抢险知识推理方法的有效性。
3.2 基准实验设置
3.2.1 子模块中AI单元的有效性检验 采用抽样方法[31]检验AI单元准确性。对于防汛实体抽取单元的检验将从初始3104条文本中随机抽取310条文本进行评估;对于防汛实体间关系决策单元的检验,将从5601个实体对中随机抽取560个进行评估;对于防汛实体知识挖掘单元,该单元主要用来挖掘防汛抢险实体相关知识,此单元所返回的答案是利用LLM从广泛的世界知识中抽取并生成的,所涉及知识并无标准答案,故允许防汛实体知识挖掘单元存在噪声。因此本文不对该单元进行评估,只要该单元能提取到相关的、正确的防汛抢险知识,即认为KPer模块可靠。
针对防汛实体抽取单元,对该单元抽取所得实体进行判断,判断其是否属于防汛抢险实体。针对防汛实体间关系决策单元,通过判断最终推理所得结果的准确率来评估该单元的可靠程度。
3.2.2 防汛知识推理有效性验证 将FCRKI与实体关系联合抽取框架WRERJE[12]进行比较,验证FCRKI在防汛实体关系三元组知识推理任务中的可靠性。将3.2.1节中得到的310条初始文本作为输入,分别使用WRERJE 和FCRKI提取防汛实体关系三元组。此外,为了验证文本特征对FCRKI的影响,将310条样本分为简单文本和复杂文本,如果1条文本中含有两个以上的防汛抢险实体且模式复杂,即划定为复杂文本,否则为简单文本,最终得到156条简单文本和154条复杂文本。分别测试FCRKI方法对复杂文本和简单文本的推理性能。
3.2.3 AI链和群体智能策略有效性检验 为了验证本文所提AI链的有效性,设计2种方法:(1)FCRKIw/oAI,其不使用AI链思想,采取直接询问实体间关系的方式,如图6中FCRKIw/oAI,输入为1条工程文本,输出为LLM根据自身逻辑推理出的该条语句中表达的关系;(2)FCRKIAI-CoT,其使用AI链思想,但不进行子模块和功能单元的划分,只在1个文本块中描述所有步骤,LLM通过任务步骤来完成防汛实体间关系推理,如图6中所示,输入为1条工程文本,输出为LLM根据步骤推理得到的文本中表达关系。采用初始310条工程文本进行上述两种方法的测试。
为了评估群体智能策略对FCRKI鲁棒性的影响,设计了4种方法,第1种方法为FCRKIw/OMV,该方法省略多数投票环节,在3个决策单元的输出结果中,只要有一个输出为正,该结果就为正,该方法主要验证多数投票的有效性。其余3种方法则是针对防汛实体间关系决策单元设计了3种独立变体,分别是只回答开放式问题的决策1(RDer_1)、只判断声明正误的决策2(RDer_2)、只做限制性选择的决策3(RDer_3),每种方法都将其对应的独立决策单元的输出作为最终结果,3种独立变体用于验证群体智能策略的有效性。
4 实验结果
4.1 子模块中AI单元有效性检验结果对于子模块和AI单元的准确性检验结果如表2所示。防汛实体抽取器的准确率取决于该子模块内进行实体抽取的AI单元准确率,实体抽取AI单元对初始的310条文本进行抽取,共抽取出525个实体,通过人工对525个实体进行注释,其中正确的有457个,准确率为87%。防汛实体间关系决策器从3.2.1中得到的560个实体对中推理出769条关系三元组,通过人工对769条关系三元组进行注释,正确数量为661,准确率为86%。在769条关系三元组中,通过开放式提问方式进行决策的决策1回答正确个数为630,准确率为82%;通过限制性判断声明正误方式进行决策的决策2判断正确个数为607,准确率为79%。通过限制性选择方式进行决策的决策3选择正确个数为592,准确率为77%。
实体抽取错误主要表现为无效实体与文本中不存在实体,具体案例如表3。从第1条文本中抽取出的“土粒”实体,与从第2条文本中抽取出的“填筑”实体,其在日常生活和各个领域中被广泛使用,这类实体属于通用实体,对于大坝防汛抢险任务缺乏针对性,本文注释时将该类实体视为无效实体。从第1条文本中抽取的“堤坝”实体,虽属于该领域内特定实体,但并不存在于文本中,这是由于LLM有时可能会根据语义生成与当前文本语义较相似,但实际不存在于文本中的实体,本文中注释时将该实体视为错误实体。关系推断不正确主要由于进行实体相关知识挖掘时,LLM生成的防汛实体相关知识可能存在噪声,因为此模块所返回的答案是利用LLM从广泛的世界知识中挖掘并生成的,所涉及知识并无标准答案,而本文设计的群体智能策略可以缓解噪声带来的挑战,提高关系推理结果的可靠性。总体来看,AI单元表现出的高准确率,证实了融合群体智能策略的AI链能够有效地连接AI单元完成大坝防汛抢险知识推理任务。
表3 实体抽取错误案例
4.2 防汛知识推理有效性检验结果FCRKI和WRERJE的对比结果如表4。FCRKI和WRERJE分别从随机抽取的310条初始工程文本中推理得到335条和274条防汛实体关系三元组。对于简单文本,FCRKI能够正确推理出192条防汛实体关系三元组,高于WRERJE提取的169条,对于复杂文本,FCRKI正确推理出143条防汛实体关系三元组,多于WRERJE提取的105条关系三元组。因为简单文本的语义复杂度较低,对方法推理能力要求不高。复杂文本的语义复杂度较高,涉及到很多从句和代词指称,使得WREEJE提取关系较为困难,因为WRERJE仅从输入文本中提取表意明确关系三元组,推理能力弱。而FCRKI利用LLM具备的世界知识和强大的生成能力来推理出防汛实体间关系,不受文本来源和语义复杂度的限制,因此,FCRKI可以更好的地处理复杂文本中的实体与实体间关系。
表4 FCRKI和WRERJE的验证结果
4.3 AI链和群体智能策略有效性检验结果6种方法的结果如表5所示。从表中得知FCRKIw/oAI准确预测180条关系三元组,少于FCRKI的335条,这表明即便LLM学习到海量互联网知识,但没有明确的任务提示,也很难直接推理出二者关系。FCRKIAI-CoT准确预测198条关系三元组,这表明在单个文本块中进行全部步骤的描述,LLM很难将各部分的输入输出紧密联系起来,这两种方法验证了AI链思想和子模块以及功能单元设计对FCRKI鲁棒性的影响。FCRKIw/OMV准确预测361个关系,虽高于FCRKI的335个,但其准确率远低于FCRKI,验证了多数投票的有效性。而对于独立的防汛实体间关系决策单元(RDer_1,RDer_2,RDer_3),表4结果表明,RDer_1的准确率为3个独立决策单元中最高,但也远远低于FCRKI,这验证了引入群体智能策略可以提高FCRKI的鲁棒性。此外,独立的防汛实体间关系决策单元结果也表明,在3种提示风格(开放式问题风格、限制性判断风格、限制性选择风格)中开放式风格对防汛实体间关系推理是最有效的。与直接向LLM查询防汛知识相比,通过设计一系列提示组成AI链在实体抽取、知识挖掘和关系推理多个步骤中与LLM逐步进行交互可以有效提高LLM响应的可靠性。群体智能策略可以缓解设计完美提示带来的挑战,进一步提高防汛知识推理的鲁棒性。
表5 AI链和群体智能策略有效性检验结果
将采用FCRKI方法推理得到的防汛三元组知识存储进图数据库Neo4j以构建防汛知识图谱,其中部分实体关系三元组如图7所示。
图7 部分防汛抢险实体关系知识
5 结论及展望
本文提出使用LLM作为AI知识库进行大坝防汛知识推理的思路。FCRKI通过将任务分解为单步的执行流程,并设计有效提示来提高LLM响应的可靠性。所总结3个任务分析原则:(1)模块化任务分解,即将总任务分解为子问题,设计子模块,并进一步设计功能单元;(2)子模块链接,即以特定结构链接各子模块;(3)AI单元与非AI单元组合,即编程逻辑清晰,规则定义明确的作为非AI单元,设计提示引导LLM作用于AI单元。
与现有方法相比,FCRKI有3个主要优点:(1)利用LLM丰富世界知识,打破了可利用文本数量过少和文本质量偏低的局限;(2)使用无监督学习方法,省去了传统监督或半监督学习方法中由于人工标注大规模数据带来的劳动开销;(3)上下文学习能力,可通过上下文学习有效捕捉到复杂长难句中实体之间的关系。此外为了降低LLM响应错误的潜在风险,采用AI链思想,分解任务步骤、设计有效提示以及群体智能策略,大大提高了FCRKI的可靠性和鲁棒性,实验结果表明,FCRKI可以高效率地推理不同类型的防汛实体间关系。
FCRKI在防汛知识推理任务上取得了较好的效果,但仍存在问题,由于本文使用5种关系类型进行测试,但大坝防汛领域还存在其他关系类型,后续工作中需要进一步探索不同关系类型中不同风格的提示对FCRKI推理性能的影响,并尝试将这一新范式应用到各种水利工程文本中领域知识的智能推理任务上,以推进新阶段水利工程文本处理数字化、智能化发展。