具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,大语言模型的参数量巨大,对其进行训练或参数微调将会耗费巨大的时间成本和资源成本,而现有技术所提供的基于人工定制提示词或反馈优化提示词的模型推理方法,其更多关注于全局的反馈,缺乏对在线学习场景的研究。
也即是说,现有模型推理方法并不能够实现在不对模型进行微调的情况下,让模型适应不同特定应用场景的需求,完成不同特定应用场景的任务。
对此,本发明提出了一种基于规则累积的模型推理方法,具体地,图1示出了本发明所提供的基于规则累积的模型推理方法的流程示意图。
如图1所示,该方法包括:
S110,获取目标任务对应的模型推理结果。
可以理解的是,获取目标任务对应的模型推理结果,将目标任务对应的输入数据输入至大语言模型中,得到大语言模型的输出结果,即模型推理结果。
其中,目标任务为大语言模型可处理的任意类型的任务,例如文本分类、问答、文档总结以及文本生成等任务,在此不作具体限定。
相应地,目标任务对应的输入数据根据目标任务的类型不同而有所不同,在此亦不作具体限定。
在一个具体的实施例中,目标任务对应的输入数据为文本数据:请帮我完成一个新闻文本分类的任务,类别分别是:“故事”,…,“教育”,“游戏”;新闻文本是:“游戏原画设计培训适合高中生吗?”,请帮我判断类别。
需要说明的是,上文所述大语言模型是一种语言模型,由具有许多参数(通常数十亿个权重或更多)的神经网络组成,使用自监督学习或半监督学习对大量未标记文本进行训练。
大语言模型在各种任务中表现都非常出色,功能十分强大,在现实世界只能够得到了广泛的应用。例如,大语言模型可以根据聊天的上下文进行互动,也可以完成撰写邮件、视频脚本、文案、翻译、代码以及写论文等任务。
S120,获取对模型推理结果的用户端反馈,用户端反馈包括模型推理结果对应的推理标签,以及目标任务对应的正确答案。
在步骤S110获取目标任务对应的模型推理结果的基础上,进一步地,获取用户端对该模型推理结果的用户端反馈。
具体地,大语言模型输出目标任务对应的模型推理结果之后,用户端会自行判断模型推理结果的正确与否。
在模型推理结果正确的情况下,用户正常反馈,模型可不再执行后续操作;在模型推理结果错误的情况下,用户向大语言模型输入其对模型推理结果的用户端反馈,以引导模型执行下一步操作。
其中,用户端反馈由两部分构成,即模型推理结果对应的推理标签,以及目标任务对应的正确答案。
推理标签包括回答/推理正确,以及回答/推理错误。
需要说明的是,用户端对目标任务的正确答案有着大概的方向,或有着定量的结果,故可以用户端反馈引导模型累积规则。
还需要说明的是,用户端反馈可以包括推理标签与正确答案以外的其他内容,例如,引导模型生成目标任务对应的推理规则的文本数据。
S130,基于用户端反馈,在预设规则库中检索目标任务对应的推理规则。
在步骤S120获取对模型推理结果的用户端反馈的基础上,进一步地,基于该用户端反馈,对预设规则库进行更新,并在更新后的预设规则库中检索目标任务对应的推理规则。
预设规则库可以为预先建立的规则库,也可以为根据大语言模型的实时推理而累积得到的规则库,在此不作具体限定。
对预设规则库进行更新,包括新的推理规则的生成、有效规则的保留,以及根据多个错误算例总结经验规则。
在更新后的预设规则库中检索目标任务对应的推理规则,可以通过计算目标任务与更新后的预设规则库中每一条推理规则之间的文本相似度来实现。
其中,目标任务对应的推理规则可以是预设规则库中原有推理规则,也可以是根据用户端反馈新生成的推理规则,还可以是根据多个错误算例总结出来的经验规则,在此不作具体限定。
S140,根据推理规则,推理得到目标任务的正确推理结果。
在步骤S130基于用户端反馈,在预设规则库中检索目标任务对应的推理规则的基础上,进一步地,将目标任务对应的推理规则,以及目标任务对应的输入数据,一同输入至大语言模型中,得到大语言模型的输出,即目标任务的正确推理结果。
在此推理过程中,将目标任务对应的推理规则作为提示词,以引导大语言模型做出对目标任务的正确推理,提升模型推理结果的准确度。
正确推理结果可以与上文中所述的正确答案完全相同,也可以为含义相同的不同文本或其他模态数据,在此不作具体限定。
需要说明的是,步骤S110-S140是一个循环往复的过程,也是模型不断适应当前场景特定需求的过程,目的在于得到目标任务的正确推理结果。
在本实施例中,通过获取目标任务对应的模型推理结果,并获取对模型推理结果的用户端反馈,用户端反馈包括模型推理结果对应的推理标签,以及目标任务对应的正确答案,进而基于用户端反馈,在预设规则库中检索目标任务对应的推理规则,从而根据推理规则,推理得到目标任务的正确推理结果。该方法通过额外提供规则引导,在无需微调的情况下,引导大语言模型逐渐适应当前场景的特定需求,实现了轻量级的模型优化,克服了现有模型推理方法需要耗费巨大时间/资源成本,且推理结果准确度不高的缺陷,提升了模型推理结果的准确度。
在上述实施例的基础上,进一步地,基于用户端反馈,在预设规则库中检索目标任务对应的推理规则,包括:对预设规则库进行更新,得到更新后规则库;计算目标任务与更新后规则库中每一条推理规则的文本相似度;根据文本相似度,确定目标任务对应的推理规则。
可以理解的是,在获取对模型推理结果的用户端反馈之后,基于该用户端反馈,在预设规则库中检索目标任务对应的推理规则,具体地,首先对预设规则库进行更新,避免预设规则库中存在无效、重复、冲突的推理规则,从而得到更新后规则库;然后,基于更新后规则库,计算目标任务与更新后规则库中每一个推理规则之间的文本相似度;从而,从更新后规则库中选择出目标任务对应的推理规则。
图2示出了本发明所提供的对预设规则库进行更新的流程示意图。具体地,如图2所示,对预设规则库进行更新,包括:
S210,根据用户端反馈,生成当前推理规则。
容易理解的是,在确定目标任务对应的模型推理结果错误的情况下,获取用户端反馈,用户端反馈所包括的两部分内容,即模型推理结果对应的推理标签,以及目标任务对应的正确答案,足以引导模型自动生成新的、符合当前场景特定需求的推理规则。
例如,在一个具体的实施例中,针对文本分类任务回答错误的一个用户端反馈为:“你给出的答案是错误的,应该是正确答案A”。
大语言模型在接收到上述用户端反馈之后,结合模型内部模拟生成的引导文本“请给出属于A类别的理由,并分点说明,请把这些理由写成用于做判断的推理规则”,模型会自己摸索正确答案A与目标任务之间的逻辑关系(推理规则),从而一步步生成与目标任务相适应的推理规则,即当前推理规则。
需要说明的是,新的推理规则的生成,按照预设格式生成,预设格式可以根据实际需求进行设置,在此不作具体限定。
在一个具体的实施例中,生成当前推理规则时,按照“如果,则”的形式生成。
S220,确定当前推理规则为有效规则。
容易理解的是,在步骤S210根据用户端反馈生成当前推理规则的基础上,进一步地,由于在流式数据场景中,随着场景变化,规则不断迭代,可能会存在冗余或冲突的情况,故需要考虑根据用户端反馈生成的当前推理规则是否为有效规则,有效的规则保留,而无效的规则则应做删除处理。
具体地,将当前推理规则作为提示词,利用模型再次对目标任务进行推理,得到二次推理结果;确定二次推理结果为正确推理结果,当前推理规则为有效规则;或者,确定二次推理结果为错误推理结果,当前推理规则为无效规则,并对其进行删除。
展开地,将当前推理规则与目标任务对应的输入数据一同输入至大语言模型中,经其处理,得到输出的二次推理结果。
在二次推理结果为正确推理结果的情况下,则确定当前推理规则为有效规则,当前推理规则能够有效地完成目标任务。
在二次推理结果为错误推理结果的情况下,则确定当前推理规则为无效规则,当前推理规则并不能很好地完成目标任务,需要进一步地摸索与目标任务相适应的推理规则。
需要说明的是,本实施例通过额外提供规则引导,并将其与提示词优化的方法相结合,能够更进一步的提升模型优化效果。
S230,根据当前推理规则,更新预设规则库。
可以理解的是,在步骤S220确定当前推理规则为有效规则的情况下,并不能理所应当的保留该规则,还应当对其进行规则管理,防止规则冗余或冲突。
具体地,在确定当前推理规则与预设规则库中已有规则重复的情况下,删除重复的推理规则。
删除的重复的推理规则可以是新生成的当前推理规则,也可以是预设规则库中已有的一样的规则。
在确定当前推理规则与预设规则库中已有规则冲突的情况下,删除预设规则库中的已有规则,以淘汰过时的规则。
在对预设规则库进行更新的基础上,在更新后规则库中进行检索,通过计算目标任务与更新后规则库中每一条推理规则的文本相似度,确定目标任务对应的推理规则。
在计算出多个文本相似度之后,可以将其按照从高到低的顺序进行排序,选择文本相似度排序在前的第一数量条推理规则,作为目标任务对应的推理规则。
或者,设定一个相似度阈值,在计算出多个文本相似度之后,将超出相似度阈值的文本相似度所对应的推理规则,作为目标任务对应的推理规则。
其中,第一数量可以根据实际需求或文本相似度的数值进行设定,在此不作具体限定。
相应地,在预设规则库中检索出目标任务对应的推理规则之后,将目标任务对应的多条推理规则进行拼接,将拼接后的推理规则作为提示词,与目标任务对应的输入数据一同输入至大语言模型中,即可得到目标任务的正确推理结果。
在本实施例中,通过对预设规则库进行更新,得到更新后规则库,并计算目标任务与更新后规则库中每一条推理规则的文本相似度,进而根据文本相似度,确定目标任务对应的推理规则,从而根据推理规则,推理得到目标任务的正确推理结果。该方法通过额外提供规则引导,在无需微调的情况下,引导大语言模型逐渐适应当前场景的特定需求,实现了轻量级的模型优化,克服了现有模型推理方法需要耗费巨大时间/资源成本,且推理结果准确度不高的缺陷,提升了模型推理结果的准确度。
在上述实施例的基础上,进一步地,确定二次推理结果为错误推理结果,当前推理规则为无效规则,之后包括:根据错题本中的多个错误算例,对目标任务做相似任务检索,并进行规则总结,得到经验规则;确定经验规则为有效规则,并根据经验规则更新所述预设规则库;其中,错题本在每一次模型推理错误时进行更新,错题本包括目标任务、目标任务对应的错误推理结果,以及目标任务对应的正确答案。
可以理解的是,大语言模型在完成目标任务的过程中,可能经过“多次”推理仍然无法摸索到与目标任务相适应的推理规则。这里的多次可以根据实际需求进行设置,例如设置为3次。
对此,本实施例设有一个错题本,该错题本中存储有历史的模型推理错误的算例,每一个错误算例包括其所对应的目标任务、该目标任务对应的错误推理结果,以及该目标任务对应的正确答案。
根据错题本中的多个错误算例,对目标任务做相似任务检索,从错题本中检索出与目标任务相似度最高的几个错误算例,并对这几个错误算例进行全局规则总结,得到经验规则。
在得到经验规则的基础上,同样需要确定该经验规则是否为有效规则,具体判断过程同上文相应描述,在此不再展开。
在确定经验规则为有效规则的情况下,根据该经验规则更新预设规则库,计算目标任务与更新后规则库中每一条推理规则的文本相似度,进而根据文本相似度确定目标任务对应的推理规则,从而根据目标任务对应的推理规则,推理得到目标任务的正确推理结果。
图3示出了本发明所提供的预设规则库的更新示意图。
如图3所示,根据模型推理错误的算例,生成新的规则,即当前推理规则。在确定当前推理规则能够推理得到目标任务的正确推理结果的情况下,将当前推理规则认定为有效规则,并对预设规则库进行更新。
在确定当前推理规则不能够推理得到目标任务的正确推理结果的情况下,将当前推理规则认定为无效规则,并在错题本中针对目标任务进行相似任务检索,并进行全局规则总结,得到经验规则,即图3中的总结规则。
在确定经验规则为有效规则的情况下,根据经验规则对预设规则库进行更新。
在确定经验规则为无效规则的情况下,重复相似任务检索操作,进行全局规则总结,直至确定经验规则为有效规则为止。
在本实施例中,在确定二次推理结果为错误推理结果,当前推理规则为无效规则的情况下,根据错题本中的多个错误算例,对目标任务做相似任务检索,并进行规则总结,得到经验规则,进而在确定经验规则为有效规则的情况下,根据经验规则更新预设规则库,并计算目标任务与更新后规则库中每一条推理规则的文本相似度,根据文本相似度确定目标任务对应的推理规则,从而根据目标任务对应的推理规则,推理得到目标任务的正确推理结果。该方法通过额外提供规则引导,在无需微调的情况下,引导大语言模型逐渐适应当前场景的特定需求,实现了轻量级的模型优化,克服了现有模型推理方法需要耗费巨大时间/资源成本,且推理结果准确度不高的缺陷,提升了模型推理结果的准确度。
在上述实施例的基础上,进一步地,基于规则累积的模型推理方法还包括:获取预设规则库中推理规则的总数量;确定总数量高于预设数量阈值,采用LRU置换算法删除设定数量的推理规则。
容易理解的是,在流式数据场景中,除了上文所描述到的可能存在冗余或冲突的情况下,往往还会出现参数/存储***性增长的问题。
考虑及此,本实施例设置里一个预设数量阈值,实时地对预设规则库中推理规则的总数量进行监控,在规则库中推理规则的总数量超过预设数量阈值的情况下,采用LRU置换算法将设定数量的推理规则进行删除,以避免出现规则数量***的情况发生,也在一定程度上保证了模型的推理性能。
其中,预设数量阈值和设定数量可以根据存储容量具体设置,在此不作具体限定。
LRU(Least Recently Used,最近最少使用淘汰算法)置换算法在本实施例中用于淘汰最长时间没有被使用的推理规则。
在本实施例中,通过获取预设规则库中推理规则的总数量,在确定总数量高于预设数量阈值的情况下,采用LRU置换算法删除设定数量的推理规则,避免了参数/存储***性增长的情况发生。
图4示出了本发明所提供的基于规则累积的模型推理方法的整体示意图。
如图4所示,在整体模型推理框架(输入、模型处理、输出)的基础上,引入了额外的规则引导。其中,输入即为目标任务对应的输入数据,输出为模型推理结果或正确推理结果。
在图4中,目标任务为:请帮我完成一个新闻文本分类的任务,类别分别是:“故事”,…,“教育”,“游戏”;新闻文本是:“游戏原画设计培训适合高中生吗?”;请帮我判断类别。
第一步(步骤1),在确定大语言模型ChatGPT的模型推理结果错误的情况下,用户给用户端反馈:你给出的答案是错的,应该是“游戏”。
基于用户端反馈,结合模型模拟生成的引导文本“请给出属于“游戏”类别的理由,分点说明,请把这些理由改写成做判断的规则”让模型自动抽取辅助决策的推理规则。
第二步(步骤2),从预设规则库中检索目标任务相对应的推理规则。
比如,预设规则库中存储有规则1,即规则1:如果新闻中出现了“游戏”、“原画设计”、“培训”等与游戏相关的关键词,则属于“游戏”类别。
当然,预设规则库中还可能存在与目标任务相关的规则2、规则3……,以实际检索的推理规则为准。
第三步(步骤3),将检索到的目标任务对应的推理规则进行拼接,并将拼接后的推理规则作为提示词,对目标任务进行再次推理,得到正确推理结果,即“游戏”类别。
需要说明的是,在图4的处理过程中,还包括对预设规则库的更新与管理,具体同上文相应描述,在此不再展开。
需要说明的是,现有技术所提供的大语言模型由于参数规定,在部署过程中无法不断改进,会重复相同的错误;而本发明所提供的基于规则累积的模型推理方法,通过引入额外规则库,让大语言模型在部署过程中,从错误中学习,可以有效重复出现同样的错误,在部署中出现错误之后,引导大语言模型自动从错误中总结规则,从而,在后续遇到同类型输入时,可以通过之前总结的规则进行正确的推理。
另外,在一个实施例中,还示出了本发明所提供的基于规则累积的模型推理方法,在不同场景下的实验数据,具体参见下表1和表2。
表1:
表2:
在上述表1和表2中,表格行属性(BBQ-Lite)均为与较受关注话题有关的问题,表格列属性均包括各种现有模型推理方法,以及本发明所提供的模型推理方法。
在表格行属性中,Age表示与年龄有关的问题;Sexual表示与性别有关的问题;Disability表示与身体缺陷有关的问题;SES表示与经济有关的问题;Physical表示与游戏有关的问题。
根据表1和表2均可以看出,相较于少样本或无样本的现有模型推理方法,本发明所提供的基于规则累积的模型推理方法,在推理准确度上最优。
图5示出了本发明所提供的基于规则累积的模型推理装置的结构示意图。
如图5所示,该装置包括:模型推理结果第一获取模块510,用于获取目标任务对应的模型推理结果;用户端反馈获取模块520,用于获取对所述模型推理结果的用户端反馈,所述用户端反馈包括所述模型推理结果对应的推理标签,以及所述目标任务对应的正确答案;推理规则确定模块530,用于基于所述用户端反馈,在预设规则库中检索所述目标任务对应的推理规则;模型推理结果第二获取模块540,用于根据所述推理规则,推理得到所述目标任务的正确推理结果。
需要说明的是,本实施例所提供的基于规则累积的模型推理装置,与上文描述的基于规则累积的模型推理方法可相互对应参照,在此不再赘述。
在本实施例中,通过模型推理结果第一获取模块510获取目标任务对应的模型推理结果,用户端反馈获取模块520获取对模型推理结果的用户端反馈,用户端反馈包括模型推理结果对应的推理标签,以及目标任务对应的正确答案,进而推理规则确定模块530基于用户端反馈,在预设规则库中检索目标任务对应的推理规则,从而模型推理结果第二获取模块540根据推理规则,推理得到目标任务的正确推理结果。该装置通过额外提供规则引导,在无需微调的情况下,引导大语言模型逐渐适应当前场景的特定需求,实现了轻量级的模型优化,克服了现有模型推理方法需要耗费巨大时间/资源成本,且推理结果准确度不高的缺陷,提升了模型推理结果的准确度。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行基于规则累积的模型推理方法,该方法包括:获取目标任务对应的模型推理结果;获取对所述模型推理结果的用户端反馈,所述用户端反馈包括所述模型推理结果对应的推理标签,以及所述目标任务对应的正确答案;基于所述用户端反馈,在预设规则库中检索所述目标任务对应的推理规则;根据所述推理规则,推理得到所述目标任务的正确推理结果。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于规则累积的模型推理方法,该方法包括:获取目标任务对应的模型推理结果;获取对所述模型推理结果的用户端反馈,所述用户端反馈包括所述模型推理结果对应的推理标签,以及所述目标任务对应的正确答案;基于所述用户端反馈,在预设规则库中检索所述目标任务对应的推理规则;根据所述推理规则,推理得到所述目标任务的正确推理结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。