具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,现有模型推理方法存在因部分知识稀缺、不能及时更新同步,导致推理结果不准确的问题,而在此基础上所提出的检索增强虽然能够提供更多的额外信息,在一定程度上提升了模型推理准确度,但是,检索增强并非总是起到正向作用,有时候反而会起到反作用,影响模型推理,从而导致推理结果偏离正确答案。
例如,将问题“德国牧羊犬在机场受欢迎吗?”直接输入至大语言模型中,其会输出“是的。德国牧羊犬经常作为导盲犬,可以在机场出现。”,该输出是正确的。
而如果同时适用检索增强,提供一些德国牧羊犬的相关信息,经将检索得到的相关信息,与问题“德国牧羊犬在机场受欢迎吗?”一同输入至大语言模型中,此时大语言模型会输出“不。机场对动物有严格的管制。”,该输出受检索到的相关信息干扰,推理错误。
考虑到上述问题,本发明提供了一种基于自我认知的模型推理方法。具体地,图1示出了本发明所提供的基于自我认知的模型推理方法的流程示意图。
如图1所示,该方法包括:
S110,接收用户端的待解答问题。
容易理解的是,当用户端有解决问题的需求时,可以通过对话框输入待求证或待解答的问题,语言大模型接收到待解答问题后,会对其做出反馈。
其中,待解答问题可以为任一用户端想要问的问题,问题内容不限于简单或复杂。
S120,基于待解答问题,获取语言大模型的自我认知结果。
容易理解的是,在步骤S110接收用户端的待解答问题的基础上,进一步地,基于用户端输入的待解答问题,获取语言大模型的自我认知结果,以语言大模型的角度确定自己是否能够回答用户端输入的待解答问题,从而得到语言大模型的自我认知结果。
其中,语言大模型的自我认知结果可以根据实际需求进行不同的分类。
例如,可以根据对待解答问题的了解程度划分等级。在一个具体的实施例中,自我认知结果为完全不了解(待解答问题的答案)、不太了解、较了解、非常了解中的一项。
当然,也可以将语言大模型的自我认知结果简单划分为两种。例如,在另一个具体的实施例中,自我认知结果为模型知道答案,以及模型不知道答案。
此处可以了解的是,大语言模型是一种语言模型,由具有许多参数(通常数十亿个权重或更多)的神经网络组成,使用自监督学习或半监督学习对大量未标记文本进行训练。
大语言模型在各种任务中表现都非常出色,功能十分强大。例如,大语言模型可以根据聊天的上下文进行互动,真正像人类一样聊天交流,甚至也可以完成撰写邮件、视频脚本、文案、翻译、代码以及写论文等任务。
本实施例主要针对于语言大模型与用户端进行交互的场景。
需要说明的是,语言大模型的不同自我认知结果,会使得语言大模型以不同的推理模式,对待解答问题进行推理,以得到更准确的推理结果。
S130,根据自我认知结果,推理得到待解答问题的答案。
在步骤S120基于用户端的待解答问题,获取语言大模型的自我认知结果的基础上,进一步地,根据语言大模型的自我认知结果,采用不同的问题解答模式,对待解答问题进行推理,得到待解答问题的答案。
值得一提的是,相较于现有模型推理方法而言,本实施例并未直接通过语言大模型进行推理,也并未直接适用检索增强以提升推理准确度,而是通过引入大语言模型的自我认知,在确定模型自身是否能够更好解决用户端的待解答问题的情况下,采用不同的推理模式,得到推理结果。
语言大模型的自我认知的引入,能够有效避免现有模型推理方法单独适用语言大模型或检索增强进行推理所带来的模型推理准确度不高的情况。
还需要说明的是,本实施例所提供的基于自我认知的模型推理方法,以语言大模型为执行主体。
在本实施例中,通过接收用户端的待解答问题,并基于待解答问题,获取语言大模型的自我认知结果,进而根据自我认知结果,推理得到待解答问题的答案。该方法通过引入语言大模型的自我认知,根据语言大模型的自我认知情况,采用不同的推理模式对用户端的待解答问题进行推理,避免了单独通过语言大模型或检索增强进行推理而带来的模型推理准确度不高的情况,能够根据语言大模型的实际推理情况,适用最合适的推理模式,得到更准确的推理结果,有效提升了模型推理的准确度,也进一步提升了用户端的体验感。
在上述实施例的基础上,进一步地,基于待解答问题,获取语言大模型的自我认知结果,包括:构建自我认知样本数据集,自我认知样本数据集包括模型知道答案样本和模型不知道答案样本;基于自我认知样本数据集,通过语言大模型或预设模型,获取语言大模型的自我认知结果。
可以理解的是,在接收到用户端输入的待解答问题之后,推理得到待解答问题的答案之前,需要获取语言大模型的自我认知结果,以确定最合适的推理模式对待解答问题进行推理。
在本实施例中,语言大模型的自我认知结果可以通过语言大模型自身获取,也可以通过预设模型模仿语言大模型自我认知的方式获取得到,在此不作具体限定。
具体展开地,首先,收集语言大模型的自我认知,构建自我认知样本数据集,包括:采集预设数量的训练问题,以及训练问题对应的检索信息;根据训练问题,获取语言大模型的直接推理结果;根据训练问题及其对应的检索信息,获取语言大模型的检索增强推理结果;根据直接推理结果、检索增强推理结果以及训练问题的正确参考答案,对预设数量的训练问题进行样本分类,得到自我认知样本数据集。
采集预设数量的训练问题,可以从公开网站或公开数据库采集得到,也可以人为构建得到,在此不作具体限定。
其中,预设数量可以根据实际需求进行设置,在此不做具体限定。例如,在一个具体的实施例中,从公开数据库中采集了3万个训练问题。
采集训练问题对应的检索信息,可以基于任意训练问题,利用公开检索网站检索得到。其中,检索信息为与训练问题相关的一些信息,例如,检索信息为与训练问题中关键名词或动词的解释说明。
根据每一个训练问题,获取语言大模型的直接推理结果,具体地,将训练问题输入至语言大模型中,以对话交互的方式,获取语言大模型的输出,即直接推理结果。
根据每一个训练问题及其对应的检索信息,获取语言大模型的检索增强推理结果,具体地,将训练问题及其对应检索信息一同输入到语言大模型中,得到语言大模型输出的检索增强推理结果。
其中,直接推理结果和检索增强结果为通过不同推理模式推理得到的训练问题的解答。
在针对每一个训练问题,获取对应的直接推理结果和检索增强推理结果的基础上,根据直接推理结果、检索增强推理结果以及训练问题的正确参考答案,对采集的大量训练问题进行样本分类,即可得到相应的自我认知样本数据集。
根据直接推理结果、检索增强推理结果以及训练问题的正确参考答案,对预设数量的训练问题进行样本分类,包括:计算直接推理结果与所述正确参考答案的第一相似度;计算检索增强推理结果与正确参考答案的第二相似度;确定第一相似度大于第二相似度,将训练问题记为模型知道答案样本;确定第一相似度小于第二相似度,将训练问题记为模型不知道答案样本。
容易理解的是,在得到每一个训练问题的直接推理结果和检索增强推理结果之后,将每一个训练问题的直接推理结果和检索增强推理结果,分别与该训练问题的正确答案进行比较,确定其相似度,从而对该训练问题进行样本分类。
首先,计算直接推理结果与正确参考答案的相似度,记为第一相似度。
然后,计算检索增强推理结果与正确参考答案的相似度,记为第二相似度。
其中,对于第一相似度与第二相似度的计算,可以对直接推理结果、检索增强推理结果以及正确参考答案分别进行编码处理,得到相应的编码向量,然后计算对应向量之间的距离,即可得到第一相似度和第二相似度。
最后,比较第一相似度与第二相似度。
在第一相似度大于第二相似度的情况下,说明语言大模型的直接推理结果效果更好,此时补充检索增强信息只会降低语言大模型的推理准确度,可以将训练问题分类为模型知道答案样本。
在第二相似度大于第一相似度的情况下,说明补充检索增强信息进行模型推理,会比模型直接推理的效果更好,此时直接通过语言大模型进行推理会损失一定的准确度,可以将训练问题分类为模型不知道答案样本。
根据上述分类方法,可以将预设数量的训练问题分类为模型知道答案样本或模型不知道答案样本,从而得到相应的自我认知样本数据集。
在构建得到自我认知样本数据集的基础上,基于自我认知样本数据集,结合用户端输入的待解答问题,通过语言大模型或预设模型,可以获取得到语言大模型的自我认知结果。
其中,预设模型为可训练的任意模型,语言大模型的自我认知结果包括模型知道答案和模型不知道答案。
在一个具体的实施例中,预设模型为一个编码器。
在另一个具体的实施例中,预设模型为一个二分类器。
在本实施例中,通过构建自我认知样本数据集,并基于该自我认知样本数据集,通过语言大模型或预设模型,获取语言大模型的自我认知结果,进而根据自我认知结果,推理得到待解答问题的答案。该方法通过构建自我认知样本数据集,引入语言大模型的自我认知,根据语言大模型的自我认知情况,采用不同的推理模式对用户端的待解答问题进行推理,避免了单独通过语言大模型或检索增强进行推理而带来的模型推理准确度不高的情况,能够根据语言大模型的实际推理情况,适用最合适的推理模式,得到更准确的推理结果,有效提升了模型推理的准确度,也进一步提升了用户端的体验感。
在上述实施例的基础上,进一步地,基于认知样本数据集,通过语言大模型或预设模型,获取语言大模型的自我认知结果,可以通过多种方法实现,以下对获取语言大模型的自我认知结果的具体方式进行一一介绍。
在一个具体的实施例中,基于自我认知样本数据集,通过语言大模型或预设模型,获取语言大模型的自我认知结果,包括:将待解答问题,以及自我认知样本数据集中的至少一个训练问题,输入至语言大模型,得到自我认知结果。
可以理解的是,在本具体实施例中,通过上下文学习的方式获取语言大模型的自我认知结果,具体地,将自我认知样本数据集中的一个或多个训练问题,以及待解答问题,一同输入至语言大模型中,语言大模型在训练问题及其样本类别,与待解答问题之间建立上下文联系,以更好地捕捉语言大模型的自我认知,得到语言大模型的自我认知结果(模型知道答案或模型不知道答案)。
其中,需要说明的是,自我认知样本数据集中的一个或多个训练问题,包括训练问题本身,以及该训练问题对应的样本类别(模型知道答案样本或者模型不知道答案样本)。
图2示出了本发明所提供的基于自我认知的模型推理方法的自我认知结果获取示意图之一。
如图2所示,以输入的训练问题为2个为例,语言大模型的输入包括3个:“{问题q+},苹果好吃吗?”;“{问题q-},香蕉好吃吗?”;“{问题qt},西瓜好吃吗?”。其中,q+表示该训练问题为模型知道答案样本,q-表示该训练问题为模型不知道答案样本,qt为待解答问题。
语言大模型的输出亦有两种:“答案是……,能回答这个问题”,表征自我认知结果为模型知道答案;“我不清楚这个问题的答案,我不能回答这个问题”,表征自我认知结果为模型不知道答案。
在另一个具体的实施例中,基于自我认知样本数据集,通过语言大模型或预设模型,获取语言大模型的自我认知结果,包括:将待解答问题输入至预先训练的预设模型,得到自我认知结果;其中,预设模型为二分类器,二分类器通过根据自我认知样本数据集进行训练优化得到。
可以理解的是,在本具体实施例中,通过预先训练的一个小规模二分类器获取语言大模型的自我认知结果,具体地,首先利用构建好的自我认知样本数据集训练二分类器至收敛,然后将待解答问题输入至训练好的二分类器中,即可得到大语言模型对待解答问题的自我认知结果。
图3示出了本发明所提供的基于自我认知的模型推理方法的自我认知结果获取示意图之二。
如图3所示,首先利用自我认知样本数据集训练小规模二分类器至收敛。其中,q1 +,q2 +,…,qm +为模型知道答案样本,q1 -,q2 -,…,qn -为模型不知道答案样本,m和n分别为模型知道答案样本的数量、模型不知道答案样本的数量。
训练完成之后,将待解答问题qt输入至该小规模二分类器中,输出自我认知结果,自我认知结果包括两种类别,即模型知道答案和模型不知道答案。
在又一个具体的实施例中,基于认知样本数据集,通过语言大模型或预设模型,获取语言大模型的自我认知结果,包括:将自我认知样本数据集中的所有训练问题,以及待解答问题,输入至预先训练的预设模型,得到中间输出向量,中间输出向量包括每一训练问题对应的训练问题向量,以及待解答问题对应的待解答问题向量;计算每一训练问题向量与待解答问题向量之间的距离值,并对所有的距离值从小到大进行排序;筛选出排序在前的第一数量个距离值,并确定第一数量个距离值分别对应的训练问题的样本类别;根据第一数量的样本类别的分布情况,确定自我认知结果;其中,预设模型为编码器。
可以理解的是,在本具体实施例中,通过基于K邻近检索的方法获取语言大模型的自我认知结果,具体地,将自我认知样本数据集中所有训练问题,以及待解答问题,一同输入至预先训练好的编码器中,由编码器对所有的训练问题,以及待解答问题,进行编码处理,得到相应的中间输出向量。
其中,中间输出向量包括训练问题对应的训练问题向量,以及待解答问题对应的待解答问题向量。
在得到编码器输出的中间输出向量之后,分别计算每一个训练问题向量与待解答问题向量之间的距离值,即预设数量个距离值,在此基础上对这预设数量个距离值按照从小到大的顺序进行排序,并筛选出排序在前的第一数量个距离值。
其中,第一数量K可以根据实际情况进行设置。
例如,在有一个实施例中,筛选出排序在前的30个距离值。
进一步地,每一个距离值对应着一个训练问题,确定筛选出来的第一数量个距离值对应的第一数量个训练问题,及其对应的样本类别(模型知道答案样本和模型不知道答案样本)。
根据第一数量的样本类别的分布情况,确定自我认知结果,具体地,确定筛选出来的第一数量个训练问题中,样本类别属于模型知道答案样本的数量更多,还是属于模型不知道答案样本的数量更多。
在第一数量个训练问题中属于模型知道答案样本的数量更多的情况下,说明语言大模型对待解答问题有着充足的认知,自我认知结果为模型知道答案。
在第一数量个训练问题中属于模型不知道答案样本的数量更多的情况下,说明语言大模型需要检索增强信息的辅助推理,自我认知结果为模型不知道答案。
图4示出了本发明所提供的基于自我认知的模型推理方法的自我认知结果获取示意图之三。
如图4所示,将自我认知样本数据集中的模型知道答案样本q1 +,q2 +,…,qm +和模型不知道答案样本q1 -,q2 -,…,qn -,以及待解答问题qt,一同输入至编码器中,即可得到中间输出向量,中间输出向量与输入样本和待解答问题相对应。
通过中间输出向量,可以知晓在一定范围内(挑选K=30个邻近样本),与待解答问题向量比较接近的样本类别为模型知道答案样本的数量,以及样本类别为模型不知道答案样本的数量,从而可以根据两种样本类别的数量,确定语言大模型的自我认知结果。
需要说明的是,上文基于自我认知样本数据集,通过语言大模型或预设模型获取语言大模型的自我认知结果,其中,通过语言大模型获取其自身的自我认知结果比较容易理解,而通过预设模型来获取语言大模型的自我认知结果,其实是通过利用语言大模型构建得到的自我认知样本数据集,使用预设模型模仿语言大模型的自我认知结果的过程。
在还有一个具体的实施例中,基于待解答问题,获取语言大模型的自我认知结果,包括:将待解答问题输入至语言大模型,得到自我认知结果,自我认知结果包括模型知道答案,以及模型不知道答案。
可以理解的是,无论是通过上下文学习获取语言大模型的自我认知结果,还是通过可训练模型(二分类器或编码器)获取语言大模型的自我认知结果,都需要使用到构建的自我认知样本数据集。
在本具体实施例中,无需利用自我认知样本数据集,可以直接通过语言大模型进行问答互动(直接询问语言大模型),得到语言大模型的自我认知结果。
具体地,将待解答问题输入至语言大模型中,得到输出的结果,即自我认知结果,包括模型知道答案和模型不知道答案。
图5示出了本发明所提供的基于自我认知的模型推理方法的自我认知结果获取示意图之四。
如图5所示,直接将待解答问题qt输入至语言大模型中,语言大模型要么输出“答案是……,能回答这个问题”,表征模型知道答案;要么输出“我不清楚这个问题的答案,我不能回答这个问题”,表征模型不知道答案。
在本实施例中,通过基于认知样本数据集,获取语言大模型对待解答问题的自我认知结果,进而根据自我认知结果,推理得到待解答问题的答案。该方法通过根据语言大模型的自我认知情况,采用不同的推理模式对用户端的待解答问题进行推理,避免了单独通过语言大模型或检索增强进行推理而带来的模型推理准确度不高的情况,能够根据语言大模型的实际推理情况,适用最合适的推理模式,得到更准确的推理结果,有效提升了模型推理的准确度,也进一步提升了用户端的体验感。
在上述实施例的基础上,进一步地,根据自我认知结果,推理得到待解答问题的答案,包括:根据自我认知结果,确定问题解答模式,问题解答模式包括模型直接推理模式,以及检索增强推理模式;根据问题解答模式对待解答问题进行推理,得到待解答问题的答案。
展开地,在本实施例中,语言大模型的自我认知结果包括模型知道答案,以及模型不知道答案。
在语言大模型的自我认知结果为模型知道答案的情况下,说明语言大模型能够更好地回答用户端的待解答问题,此时可以适用模型直接推理模式,也即,将用户端的待解答问题直接输入至语言大模型中,由语言大模型输出待解答问题的答案。
此时若适用检索增强推理模式,与待解答问题相关的检索信息会影响语言大模型的推理,使得语言大模型的推理结果偏离待解答问题的正确答案。
在语言大模型的自我认知结果为模型不知道答案的情况下,说明语言大模型并不能够很好地回答用户端的待解答问题,此时可以适用检索增强推理模式,也即,首先检索与待解答问题相关的检索信息,将检索信息与待解答问题一同输入至语言大模型中,得到语言大模型输出的待解答问题的答案。
此时若适用模型直接推理模式,由于语言大模型缺乏与待解答问题相关的知识体系,其输出的推理结果的准确度会比较低。
在本实施例中,通过根据语言大模型的自我认知结果,确定适用模型直接推理模式或者检索增强推理模式对待解答问题进行推理,避免了直接通过语言大模型进行推理或适用检索增强进行推理而带来的模型推理准确度不高的情况,能够根据语言大模型的实际推理情况,适用最合适的推理模式,得到更准确的推理结果,进一步提升了用户端的体验感。
与此同时,图6示出了本发明所提供的基于自我认知的模型推理方法的整体框架示意图。
如图6所示,首先,接收用户端输入的待解答问题qt,然后,基于该待解答问题,通过语言大模型或预设模型获取语言大模型的自我认知结果,即图6中的“知道”(模型知道答案)或“不知道”(模型不知道答案),最后,根据语言大模型的自我认知结果,推理得到待解答问题的答案。如果模型知道答案,则通过大语言模型直接输出推理结果即可;如果模型不知道答案,则借助外部检索知识,给出推理结果。
另外,在一些实施例中,将本发明所提供的基于自我认知的模型推理方法在分别时序回答、常识推理、表格问题、策略问答以及真实性问答等五个测试集上进行了实验,得到的实验结果如下表:
根据上表可以看出,在现有技术所提供的技术方案中,基于大模型直接回答的结果由于缺乏外部知识,结果的准确度普遍较低,而纯基于检索的方法由于外部知识的噪声或者问题本身不需要额外知识的原因等,结果的准确度提升并不稳定。
在本发明所提供的基于自我认知的模型推理方法中,由于大模型能根据自我认知结果自适应地调用外部知识,能普遍提升表现。其中,方案一为上文所述直接问答的方法,方案二为上文所述上下文学习的方法,方案三为上文所述训练一个小规模二分类器的方法,方案四为上文所述基于K邻近检索的方法。明显地,方案四给出的结果最好。
图7示出了本发明所提供的基于自我认知的模型推理装置的结构示意图。
如图7所示,该装置包括:问题接收模块710,用于接收用户端的待解答问题;自我认知模块720,用于基于所述待解答问题,获取语言大模型的自我认知结果;模型推理模块730,用于根据所述自我认知结果,推理得到所述待解答问题的答案。
在本实施例中,通过问题接收模块710接收用户端的待解答问题,自我认知模块720基于待解答问题,获取语言大模型的自我认知结果,进而模型推理模块730根据自我认知结果,推理得到待解答问题的答案。该装置通过引入语言大模型的自我认知,根据语言大模型的自我认知情况,采用不同的推理模式对用户端的待解答问题进行推理,避免了单独通过语言大模型或检索增强进行推理而带来的模型推理准确度不高的情况,能够根据语言大模型的实际推理情况,适用最合适的推理模式,得到更准确的推理结果,有效提升了模型推理的准确度,也进一步提升了用户端的体验感。
需要说明的是,本实施例所提供的基于自我认知的模型推理装置,与上文描述的基于自我认知的模型推理方法可相互对应参照,在此不再赘述。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行基于自我认知的模型推理方法,该方法包括:接收用户端的待解答问题;基于所述待解答问题,获取语言大模型的自我认知结果;根据所述自我认知结果,推理得到所述待解答问题的答案。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于自我认知的模型推理方法,该方法包括:接收用户端的待解答问题;基于所述待解答问题,获取语言大模型的自我认知结果;根据所述自我认知结果,推理得到所述待解答问题的答案。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。