技术领域
[0001] 本公开涉及人工智能技术领域,尤其涉及大模型、生成模型等领域,更具体地,本公开提供了一种推理系统的推理方法、推理方法及推理系统。
相关背景技术
[0002] 在实际应用中,可以使用推理系统来执行推理任务,例如用户输入提问信息,由推理系统来解答用户的问题。
具体实施方式
[0023] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0024] 本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
[0025] 在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
[0026] 在一些实施例中,可以使用推理系统来执行推理任务,推理系统可以包括推理模块,推理模块可以包括大语言模型,例如用户输入提问信息,由大语言模型来解答用户的问题。然而,由于大语言模型通常作为“黑匣子”运行,无法对其推理过程进行有效观测,该种方式造成推理系统的推理过程较为模糊,造成推理系统的可信度较低、可靠性较低。
[0027] 本公开实施例旨在提供一种推理系统的推理方法,该方法在获得提问信息之后,基于推理模块,执行与提问信息相对应的推理任务中的当前推理子任务来得到推理子结果,然后基于评估模块评估推理子结果得到评估结果,并在评估结果满足处理条件的情况下,基于处理模块处理对推理子结果得到处理结果。然后基于推理模块,通过提问信息和当前推理子任务的处理结果,执行当前推理任务的下一推理子任务。该方法可以对推理模块的推理过程进行有效观测,避免推理过程模糊,提高推理模块的推理可信度,并且可以提高推理模块的推理准确性和可靠性。
[0028] 以下将结合附图和具体实施例详细阐述本公开提供的技术方案。
[0029] 图1是根据本公开实施例的推理系统的推理方法的示意流程图。
[0030] 如图1所示,推理系统包括推理模块、评估模块和处理模块,该推理系统的推理方法100可以包括操作S110 操作S150。~
[0031] 在操作S110,获得提问信息。
[0032] 例如,可以通过推理系统与用户的交互来获得提问信息,或者预先配置提问信息数据库并从数据库中选择提问信息。提问信息可以是文本、语音等数据。
[0033] 例如,提问信息可以是数学类、常识类、规划类等类型的问题。例如,数学类的提问信息例如是“方程式3X+1=4的解是多少”,常识类的提问信息例如是“北京是沿海城市么”,规划类的提问信息例如是“我明天想去北京玩,给我提供一份穿衣建议”或“给我提供一份大连旅游的旅游规划”。
[0034] 在操作S120,基于推理模块,执行与提问信息相对应的推理任务中的当前推理子任务,得到当前推理子任务的推理子结果。
[0035] 例如,推理模块可以包括大语言模型(LLM,Large Language Model),推理模块可以基于提问信息确定推理任务,推理任务可以包括多个推理子任务,并且多个推理子任务之间可以存在顺序关系。
[0036] 例如,以提问信息是“方程式3X+1=4的解是多少”为例,一个推理子任务可以是“移项计算”,另一个推理子任务可以是“除法计算”。
[0037] 又例如,以提问信息是“我明天想去北京玩,给我提供一些穿衣建议”为例,一个推理子任务可以是“查询北京的天气”,另一个推理子任务可以是“根据天气提供穿衣建议”。
[0038] 例如,推理模块可以按照顺序依次执行多个推理子任务,多个推理子任务的执行顺序可以包括串行和/或并行。当前推理子任务可以表示推理模块按照顺序执行推理子任务的过程中,当前需要执行的推理子任务。
[0039] 例如,推理子结果可以表示推理模块执行推理子任务所获得的结果。需要说明的是,推理模块受限于自身推理能力的不足,推理子结果可能是正确的,也可能是错误的。例如,以提问信息是“方程式3X+1=4的解是多少”且其中一个推理子任务是“移项计算”为例,在执行该推理子任务时,若推理子结果是“3X=3”则是正确的,若推理子结果是“3X=4”则是错误的。
[0040] 在操作S130,基于评估模块,对推理子结果进行评估,得到推理子结果的评估结果。
[0041] 例如,评估模块可以包括预先训练的评估模型。在一种示例中,可以采用预先训练的大语言模型作为评估模型,在训练过程中,输入评估模型的样本可以包括问题、与问题对应的回答和预定提示信息,样本标签可以为参考答案。预定提示信息例如是“结合问题和回答进行评估,从问答的相关性、准确性、敏感性方面进行评估”,参考答案例如是“问题和回答是相关的,相关性置信度是A,准确性置信度是B,敏感性置信度是C”。在应用评估模型进行评估的过程中,评估模型的输入可以包括提问信息和推理子结果。在另一种示例中,可以采用其他用于执行回归任务的深度学习模型作为评估模型。
[0042] 例如,评估模块可以根据提问信息和推理子结果,从一个或多个评估维度对推理子结果进行评估。评估维度例如包括推理子结果正确性、推理子结果与提问信息之间相关性、推理子结果敏感性等维度。可以理解的是,评估模型可以从上述正确性、相关性、敏感性这三个维度中的至少一个维度对推理子结果进行评估。
[0043] 例如,评估结果可以包括置信度,置信度可以表示推理子结果的正确性高低程度、推理子结果与提问信息之间相关性高低程度、推理子结果的敏感性高低程度中的至少一个。
[0044] 在操作S140,在确定评估结果满足处理条件的情况下,基于处理模块,对推理子结果进行处理,得到当前推理子任务的处理结果。
[0045] 在一种示例中,处理模块对推理子结果进行处理的过程可以包括修正上述推理子结果。以提问信息是“方程式3X+1=4的解是多少”为例,处理模块可以将错误的推理子结果“3X=4”修正为“3X=3”。
[0046] 在另一种示例中,处理模块对推理子结果进行处理的过程可以包括:将参考信息与推理子结果组合,并将组合后的信息作为处理结果。以提问信息是“方程式3X+1=4的解是多少”为例,处理模块可以将“计算错误”、“准确性置信度为0”、“经评估后,移项之后应该是3X=3”等参考信息与原本的推理子结果“3X=4”组合,从而得到处理结果。
[0047] 在操作S150,基于推理模块,通过提问信息和当前推理子任务的处理结果,执行当前推理任务的下一推理子任务,以至少基于最后一个推理子任务的推理子结果确定与提问信息相对应的推理结果。
[0048] 例如,提问信息与推理结果一一对应,由于推理模块在执行推理任务的过程中按照顺序执行多个推理子任务,因此,可以将最后一个推理子任务的推理子结果作为提问信息相对应的推理结果。
[0049] 根据本公开实施例提供的技术方案,在推理模块执行推理子任务之后进行评估和处理,当推理子结果出现问题时,例如推理子结果的正确性、相关性、敏感性等出现问题,可以将推理子结果调整为处理结果。然后推理模块基于处理结果来执行下一个推理子任务,而非仅基于前一个推理子任务的存在问题的推理子结果来执行下一个推理子任务。
[0050] 采用上述技术方案,一方面,通过各个推理子任务的推理子结果和评估结果,可以对推理模块的推理过程进行有效观测,避免推理过程模糊,从而提高推理模块的推理可信度。另一方面,处理结果可以对推理子结果进行纠正,或者为推理模块执行下一次的推理子任务提供参考,这样推理模块可以在前一个推理子结果存在问题的情况下纠正后续的推理过程,避免前一个推理子任务存在问题导致后续的推理出错,从而提高推理模块的推理准确性和可靠性。并且由于可以在推理过程中进行处理,可以对中间的推理子结果进行纠错,而非得到推理结果再进行纠错,因此可以提高纠错效率。
[0051] 图2是根据本公开实施例的推理模块执行推理子任务的示意原理图。
[0052] 根据本公开另一实施例,上述基于推理模块执行推理子任务的过程可以包括:推理模块基于提问信息确定执行过程,然后利用基于执行过程确定的参数调用相对应的工具,然后根据工具的输出信息确定当前推理子任务的推理子结果。
[0053] 例如,提问信息210是“我明天想去北京玩,给我提供一些穿衣建议”。推理模块可以先确定推理任务220包括两个推理子任务,第一个推理子任务221可以是“查询8月1日北京的天气”,第二个推理子任务222可以是“根据天气提供穿衣建议”。
[0054] 接下来,推理模块可以先确定已经执行的推理子任务和获得的推理子结果。由于还未执行过第一个推理子任务221,因此,此时的执行过程可以是“查询8月1日北京的天气”。通过该执行过程,可以确定参数231为“地域:北京,时间:8月1日”,推理模块可以调用天气工具241,并以上述参数231作为天气工具241的输入,通过天气工具得到输出信息为“26℃,晴天”,可以将该输出信息作为第一个推理子任务的推理子结果251。
[0055] 接下来,推理模块得到第一个推理子任务的推理子结果251之后,对推理子结果进行评估,评估结果表示推理子结果251未满足处理条件,此时可以不对推理子结果进行处理。
[0056] 接下来,可以执行第二个推理子任务222,并将执行过程更新为“根据天气提供穿衣建议”。通过该执行过程,可以确定参数232为“26℃,晴天”。推理模块可以调用相关的规划工具242,并以上述参数232作为规划工具242的输入,通过规划工具242得到输出信息“短袖、短裤、T恤等”,可以将该“短袖、短裤、T恤等”作为第二个推理子任务的推理子结果252。可以理解的是,该推理子结果252可以作为上述提问信息210所对应的推理结果。
[0057] 本实施例对推理模块的工作过程进行了说明。本实施例将推理任务分解为多个推理子任务,通过调用对应的工具来获得推理子结果,并在多次推理之后得到推理结果。相比于进行单次推理获得推理结果的方式,可以提高推理结果的准确性
[0058] 接下来,对评估模块和评估结果进行说明。
[0059] 本实施例中,评估模块可以根据提问信息和推理子结果,从一个或多个评估维度对推理子结果进行评估。评估维度例如包括推理子结果正确性、推理子结果与提问信息之间相关性、推理子结果敏感性等维度。
[0060] 在一种示例中,评估结果可以包括置信度。例如,评估结果可以包括以下至少一个置信度:表征推理子结果正确性的置信度、表征推理子结果与提问信息之间相关性的置信度、表征推理子结果敏感性的置信度。
[0061] 当评估结果包括置信度时,例如,处理条件可以包括:至少一个置信度中的任一个置信度小于等于对应的置信度阈值。例如,可以预先配置每个置信度对应的置信度阈值,并在置信度小于等于对应的置信度阈值的情况下,判定评估结果满足处理条件。
[0062] 当评估结果包括置信度时,又例如,处理条件可以包括:基于至少一个置信度确定的总置信度小于等于总置信度阈值。例如,可以对至少一个置信度进行加权平均运算、求和运算或其他运算,来计算总置信度。并在总置信度小于等于总置信度阈值的情况下,判定评估结果满足处理条件。
[0063] 本示例中,评估结果包括置信度,并且基于置信度和对应的置信度阈值来确定是否满足处理条件。通过置信度可以准确衡量推理子结果在各个维度的质量高低程度,从而提高评估结果的准确性。
[0064] 在另一种示例中,评估结果还可以包括参考信息。
[0065] 例如,参考信息可以用于对正确性、相关性、敏感性的高低程度进行说明,例如参考信息为“推理的正确性较低”、“推理错误”等。
[0066] 又例如,参考信息可以包括正确答案。以提问信息是“方程式3X+1=4的解是多少”且其中一个推理子任务是“移项计算”且推理子结果是“3X=4”为例,参考信息可以为“推理错误,正确答案应当是3X=3”。
[0067] 又例如,参考信息可以表征推理子结果对应至少一个置信度的原因,例如推理子结果相关性的置信度为0,参考信息为“提问信息是想要解方程式,而推理子结果在查询机票,推理子结果与解方程式的逻辑无关”。本示例中,评估结果包括参考信息,参考信息可以对推理子结果获得对应置信度的原因进行说明,使得置信度更加可信,同时为推理模块执行下一个推理子任务提供更多的信息,从而对推理模块的推理过程进行有效纠错,提高下一个推理子任务的推理子结果的准确性。
[0068] 以上对评估模块和评估结果进行了说明。
[0069] 图3是根据本公开实施例的人工纠错的示意原理图。
[0070] 本实施例中,推理系统可以包括推理模块、评估模块、处理模块、交互模块和修正模块。
[0071] 该推理系统的推理方法可以包括以下操作:先获得提问信息,提问信息与推理任务一一对应,推理任务包括多个推理子任务。可以基于推理模块,执行与提问信息相对应的推理任务中的当前推理子任务,得到当前推理子任务的推理子结果。然后基于评估模块,对推理子结果进行评估,得到推理子结果的评估结果。接下来,在确定评估结果满足处理条件的情况下,基于处理模块,对推理子结果进行处理,得到当前推理子任务的处理结果。
[0072] 需要说明的是,当某个推理子任务被推理模块执行之后,可以将该推理子任务称为历史推理子任务。
[0073] 在执行与提问信息相对应的推理任务的过程中,会得到多个推理子结果,且每个推理子结果均经过评估模块的评估之后满足处理条件。例如,图3示出了推理模块执行三个推理子任务,这样得到三个处理结果。接下来,可以通过操作S361 操作S365来进行人工纠~错。
[0074] 在操作S361,确定是否满足提醒条件。例如,提醒条件可以包括:多个历史推理子任务中,连续目标数量个历史推理子任务的推理子结果均被处理,满足提醒条件表示连续目标数量个历史推理子任务的推理子结果在准确性、相关性或敏感性等维度存在问题,并且之前的纠错未成功。目标数量例如是3次。
[0075] 在操作S362,基于交互模块输出提醒信息,从而提醒用户该推理任务出现异常。可以理解的是,在连续多次的推理子任务存在问题的情况下,主动对用户进行提醒,这样用户可以根据实际的推理情况,对与推理任务相关的信息进行修改,从而提高推理结果的准确性。
[0076] 此外,还可以基于交互模块输出与推理任务相关的信息,该些信息例如包括提问信息,还可以包括各个推理任务的子任务信息,子任务信息可以包括执行过程、调用的工具、工具的输入参数、推理子结果、评估结果等。
[0077] 在操作S363,通过交互模块获取针对多个历史推理子任务中的目标推理子任务的修正信息。例如,用户在知晓上述信息之后,可以通过前端操作页面对上述信息进行修改,从而获得修正信息。以展示了3个推理子任务的子任务信息为例,若用户对第2个推理子任务的推理子结果进行了修改,则第2个推理子任务为目标推理子任务。
[0078] 在操作S364,基于修正模块,通过修正信息对目标推理子任务的推理子结果进行修正,得到目标推理子任务的修正结果。例如,可以将用户输入的修正信息添加至上述第2个推理子任务的推理子结果中,或者利用修正信息替换推理子结果。
[0079] 在操作S365,基于推理模块,通过目标推理子任务的修正结果,执行目标推理子任务之后的推理子任务。例如,推理模块根据第2个推理子任务的修正信息,重新执行第3个推理子任务,从而调整推理模块的推理链的方向或逻辑,更新与提问信息相对应的推理结果。
[0080] 需要说明的是,本实施例中,是在连续目标数量个历史推理子任务的推理子结果均已被处理的情况下基于交互模块输出提醒信息,然后基于交互模块获取修正信息来更新推理结果。在其他实施例,即使历史推理子任务的推理子结果未被处理,用户仍然可以根据实际需求对推理任务进行修改,来更新推理结果。
[0081] 采用本实施例提供的技术方案,用户可以根据实际需求修改推理子结果,使得纠错过程更加灵活,并且可以及时纠错以提高纠错效率,以及提高推理结果的准确性。
[0082] 根据本公开另一实施例,推理系统还包括分析模块,推理系统的推理方法还包括:至少基于分析模块存储的评估结果和修正信息,调整推理模块的提示信息(Prompt)。
[0083] 例如,推理模块可以包括大语言模型,大语言模型可以基于提示信息进行推理。可以预先配置提示信息,例如一个提示信息为“你是一个帮助用户解决问题的大模型,你可以使用以下工具:天气、搜索工具、地图工具、翻译软件、文生图工具去帮用户解决问题,你需要思考用户的问题通过哪些工具解决。在推理过程中,你要思考执行过程,然后调用工具,并观测调用工具得到的结果,其中,思考执行过程、调用工具、观测结果的过程可以重复多次”。
[0084] 在执行推理子任务的过程中,推理模块通过提问信息、提问信息对应的提示信息和前一个推理子任务的处理结果,执行下一推理子任务。在得到评估结果和修正信息之后,可以对提示信息进行修改,使得推理模块的推理精度更高。
[0085] 根据本公开另一实施例,推理系统还包括分析模块,推理系统的推理方法还包括:至少基于分析模块存储的提问信息和推理结果,调整推理模块的参数。
[0086] 例如,可以先基于历史的提问信息和推理结果构建训练样本,在实际应用中,同一个训练样本中的推理结果可以有两个,且两个推理结果质量不同。例如,针对同一个提问信息,基于用户的修正信息得到推理结果可以为质量较高的推理结果,而未经过用户的修正处理得到的推理结果可以为质量较低的推理结果。又例如,针对相同的两个提问信息,分别执行推理任务从而得到两个推理结果,可以人工标注两个推理结果的质量高低。训练样本的标签可以为表征推理结果的质量高低的真实评估值。
[0087] 接下来,可以利用训练样本来训练推理模块。在训练过程中,可以采用强化学习的方式进行训练,强化学习可以采用演员‑评论家架构(Actor‑Critic架构)。对于该种架构的强化学习训练过程,需要预先训练奖励网络(Reward网络),奖励网络的输入包括提问信息和推理结果,输出是预测值,可以利用预测值与标签计算损失值来调整奖励网络的参数,直至奖励网络收敛。然后可以利用奖励网络来训练演员网络(Actor)和评论家网络(Critic),可以将推理模块作为演员网络。
[0088] 本实施例利用提问信息和推理结果进一步反向调整推理模块的参数,从而提高推理模块的推理精度。
[0089] 图4是根据本公开实施例的推理系统的推理方法的示意原理图。
[0090] 本实施例中,推理系统可以包括交互模块410、推理模块420、评估模块430、处理模块440、修正模块450、存储模块460以及分析模块470。
[0091] 用户可以通过交互模块410输入提问信息,然后提问信息输入至推理模块420。提问信息与推理任务一一对应,推理任务包括多个推理子任务,且多个推理子任务可以存在执行的先后顺序。
[0092] 本实施例包括两级纠错机制,第一级纠错机制为自动纠错机制,第二级纠错机制为人工纠错机制。
[0093] 在进行自动纠错的过程中,例如,推理模块420执行当前推理子任务,得到推理子结果。然后利用评估模块430对推理对推理子结果进行评估得到评估结果。然后确定评估结果是否满足处理条件,若未满足则可以不做处理;若满足,则可以基于处理模块440处理推理子结果得到处理结果。然后可以将下一个推理子任务更新为当前推理子任务,并重新执行推理、评估、处理过程。
[0094] 在进行人工纠错的过程中,例如,在执行多个推理子任务之后,还可以确定是否满足提醒条件,提醒条件可以包括:连续目标数量个历史推理子任务的推理子结果均已被处理。若满足,则可以通过交互模块410输出提醒信息,进而通过交互模块410获取用户针对多个历史推理子任务中的目标推理子任务的修正信息。然后可以基于修正模块450,通过修正信息对目标推理子任务的推理子结果进行修正,得到目标推理子任务的修正结果。接下来,可以基于推理模块420,通过目标推理子任务的修正结果,执行目标推理子任务之后的推理子任务。
[0095] 采用上述两级纠错机制,当推理子任务的推理子结果满足处理条件时,会通过自动纠错来调整推理链中可能导致错误的推理子结果。而连续多次进行自动纠错表示自动纠错无法解决问题,此时可以触发人工纠错机制,允许用户手动干预,审核和纠正推理链。通过结合自动纠错和人工纠错,提高了错误检测的效率、纠正的效率以及推理结果的准确性,还可以提高推理模块420的可监控性和透明度。
[0096] 此外,推理系统还包括分析模块470,分析模块470用于收集数据并进行数据分析,数据分析的过程可以与自动纠错过程、人工纠错过程异步进行。
[0097] 分析模块470可以收集各个过程的数据。例如,在自动纠错过程中,可以基于存储模块460对推理子任务的相关信息进行存储,例如,可以存储提问信息、推理子任务的标识、执行推理子任务过程中的输入信息、推理子结果、时间戳等,分析模块470可以基于存储模块460所存储的信息进行分析。此外,在自动纠错过程中,还可以将评估结果等纠错信息传输至分析模块470,以便分析模块470进行数据分析。此外,在人工纠错过程中,还可以将用户的修正信息等纠错信息传输至分析模块470,以便分析模块470进行数据分析。
[0098] 分析模块470收集数据之后,可以利用收集的数据进行数据分析。
[0099] 例如,分析模块470可以实现对提示信息的优化。例如,分析模块470可以存储推理过程中的日志、自动纠错过程中的评估结果、人工纠错过程中的修正信息等数据,然后基于该些数据调整提示信息。
[0100] 又例如,分析模块470还可以实现第三级纠错,第三级纠错与上述第二级的人工纠错的区别在于:第二级的人工纠错是在多次处理之后判定满足提醒条件,并通过主动提醒的方式获取用户的修正信息。而第三级纠错不受提醒条件的限制,即,即使在自动纠错过程中未处理推理子结果,用户仍然可以根据实际需求对推理任务的相关信息进行修改。
[0101] 又例如,分析模块470还可以实现推理模块420的训练。例如,可以通过自动纠错过程、人工纠错过程的情况来分析推理模块420的准确性高低,生成推理模块420的性能分析报告。可以在准确率较低的情况下,采用强化学习的方式来训练推理模块420。这样可以使推理模块420持续优化,减少错误发生,提升推理模块420解决复杂问题的能力和可靠性。
[0102] 图5是根据本公开实施例的推理方法的示意流程图。
[0103] 如图5所示,该推理方法500可以包括操作S510 操作S550。~
[0104] 在操作S510,获得提问信息。
[0105] 在操作S520,执行与提问信息相对应的推理任务中的当前推理子任务,得到当前推理子任务的推理子结果。
[0106] 在操作S530,对推理子结果进行评估,得到推理子结果的评估结果。
[0107] 在操作S540,在确定评估结果满足处理条件的情况下,对推理子结果进行处理,得到当前推理子任务的处理结果。
[0108] 在操作S550,基于提问信息和当前推理子任务的处理结果,执行当前推理任务的下一推理子任务,以至少基于最后一个推理子任务的推理子结果确定与提问信息相对应的推理结果。
[0109] 根据本公开另一实施例,评估结果包括以下至少一个置信度:表征推理子结果正确性的置信度、表征推理子结果与提问信息之间相关性的置信度以及表征推理子结果敏感性的置信度;处理条件包括以下中的至少一个:基于至少一个置信度确定的总置信度小于等于总置信度阈值,至少一个置信度中的任一个置信度小于等于对应的置信度阈值。
[0110] 根据本公开另一实施例,评估结果还包括:参考信息,参考信息表征推理子结果对应至少一个置信度的原因。
[0111] 根据本公开另一实施例,基于评估结果对推理子结果进行处理,得到当前推理子任务的处理结果,包括:将评估结果添加至推理子结果中,得到当前推理子任务的处理结果。
[0112] 根据本公开另一实施例,方法还包括:获取针对多个历史推理子任务中的目标推理子任务的修正信息;通过修正信息对目标推理子任务的推理子结果进行修正,得到目标推理子任务的修正结果;通过目标推理子任务的修正结果,执行目标推理子任务之后的推理子任务。
[0113] 根据本公开另一实施例,方法还包括:在确定多个历史推理子任务中,连续目标数量个历史推理子任务的推理子结果均已被处理的情况下,输出提醒信息,以便获取修正信息。
[0114] 根据本公开另一实施例,执行与提问信息相对应的推理任务中的当前推理子任务,得到当前推理子任务的推理子结果包括:基于提问信息确定执行过程;利用基于执行过程确定的参数调用相对应的工具;根据工具的输出信息确定当前推理子任务的推理子结果。
[0115] 根据本公开另一实施例,方法还包括:至少基于存储的评估结果和修正信息,调整提示信息;其中,通过提问信息、提问信息对应的提示信息和当前推理子任务的处理结果,执行当前推理任务的下一推理子任务;和/或,至少基于存储的提问信息和推理结果,调整用于执行推理任务的推理模块的参数。
[0116] 图6是根据本公开实施例的推理系统的示意结构框图。
[0117] 如图6所示,该推理系统600包括:交互模块610、推理模块620、评估模块630和处理模块640。
[0118] 交互模块610用于获得提问信息。
[0119] 推理模块620用于执行与提问信息相对应的推理任务中的当前推理子任务,得到当前推理子任务的推理子结果。
[0120] 评估模块630用于对推理子结果进行评估,得到推理子结果的评估结果。
[0121] 处理模块640在确定评估结果满足处理条件的情况下,用于对推理子结果进行处理,得到当前推理子任务的处理结果。
[0122] 推理模块620还用于基于提问信息和当前推理子任务的处理结果,执行当前推理任务的下一推理子任务,以至少基于最后一个推理子任务的推理子结果确定与提问信息相对应的推理结果。
[0123] 需要说明的是,本实施例提供了一种推理系统,该推理系统工作原理和工作流程可以参考上文中的推理系统的推理方法,本实施例不再赘述。
[0124] 根据本公开的实施例,本公开还提供了一种电子设备,包括至少一个处理器;以及与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述推理方法。
[0125] 根据本公开的实施例,本公开还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述推理方法。
[0126] 根据本公开的实施例,本公开还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述推理方法。
[0127] 图7是用来实施本公开实施例的推理系统的推理方法的电子设备的结构框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0128] 如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
[0129] 设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0130] 计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如推理方法。例如,在一些实施例中,推理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的推理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行推理方法。
[0131] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0132] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0133] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0134] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0135] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0136] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。
[0137] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0138] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。