本发明属于自然语言处理,具体涉及一种基于大语言模型的水利领域工具驱动的智能体构建方法。
背景技术:
1、大语言模型(large language model,llm)是参数量在1000亿以上的自然语言处理系统,通过在大量语料数据集上训练得到的,主要应用于自然语言理解、文本生成、摘要生成、聊天机器人等自然语言处理任务上的高级人工智能算法。大语言模型智能体(largelanguage modelagent,llm agent),是一种利用大语言模型进行复杂任务执行的大模型应用。llmagent通过结合llm与任务规划器、记忆器、工具执行用户提出的任务。其中llm充当着控制中心或“大脑”的角色,负责管理完成任务并响应用户请求所需的一系列操作,使得大语言模型在很大程度上获得了增强,表现在agent系统能够对复杂任务进行拆解规划,生成执行计划,然后执行计划中的每一项任务。
2、目前现有的支持复杂任务处理的llm agent框架例如open ai的gpts、chatglm3原生支持function call(工具调用)功能。其实现方式是:首先将工具的配置信息注入到大语言模型agent系统中,然后在大模型微调时引入特殊的工具标识符。当在实际的推理环节中llm agent会推理出当前任务所需要的工具标识符。产生工具标识符后就会触发工具调用,调用注册在系统中的工具。
3、但是经研究发现,现有的llmagent框架调用工具的正确率仅在30%~60%之间,上述流程虽然可以满足简单的function call,但是存在很多问题。第一,工具数量增加到一定程度,上下文变长,模型非常容易出现“遗忘”现象;第二,对于自定义的工具,如果在预训练时未曾出现过,有很大的概率无法触发工具调用,即十分依赖大模型微调,自适应能力很差;第三,当前的function call对于一个工具调用多个工具的支持能力非常弱,调用成功率很低。尽管llmagent拥有处理复杂任务的能力,其能力远未达到领域落地应用的可靠性的要求。其根本原因是llm的“幻觉”问题,即生成的文本不遵循原文或者不符合事实。在llm agent系统的推理阶段,“幻觉”问题通常表现为工具调用不可控,即大模型在工具流构建中使用错误的工具,不能正确的解决问题;第四,水利领域工具驱动智能体的构建中,存在缺乏数据融合处理、多工具融合运作等问题,现有的智能体构建系统无法多数偏向于简单、已编制好的流程,工具无法自适应组装,同时缺少工具间的配合。
技术实现思路
1、发明目的:本发明为解决大型语言模型在处理复杂任务时可能出现的“遗忘”问题,提供了一种基于大语言模型的水利领域工具驱动的智能体构建方法。
2、技术方案:本发明所述的一种基于大语言模型的水利领域工具驱动的智能体构建方法,包括以下步骤:
3、(1)工具集聚合阶段:首先,对于用户需要使用的外部服务以及通用工具分别聚合为针对水利工程的工具集;对于每个工具集,提供工具集意图信息、提示策略的模板,进行注册管理;
4、(2)工具注入阶段:对于已完成注册的工具集,注册相应的水利领域工具;所述水利领域工具为外部供应方提供的有明确边界条件的服务或程序,以服务调用的形式进行使用;
5、(3)对大语言模型做微调训练,获取微调后的模型权重,强化大语言模型在工具集选择阶段推理的准确性;
6、(4)基于工具集选择的方法分析用户问题,根据用户问题选择能够解决该问题的工具集;
7、(5)根据用户意图进行自适应工具流构建,构建出一个工具的可执行方案;
8、(6)根据步骤(5)中生成的工具流可执行方案,执行工具流,得到工具流的最后执行结果,然后进入步骤(6);
9、(7)校验工具流结果,将用户问题、意图识别结果和工具流执行的过程的日志文件第三提示策略模板耦合,同时将上述内容分别作为五个基座大模型的输入,每个大模型根据用户基于对用户问题的意图理解、对工具执行流程的把控以及问题被解决程度进行评估,将五个模型的输出结果进行归纳,如果有四个及以上的模型给出通过的答复,则进入步骤(8);若没有,进入步骤(4);
10、(8)将工具流执行结果反馈给用户;利用大语言模型进行结果总结,输出多种模态格式。
11、进一步地,步骤(1)所述工具集提示策略模板包括工具集选择阶段的提示策略和工具流推理阶段的提示策略;所述工具集选择阶段的提示策略包括洪水预测、智能调度、防洪规划、应急预案生成;所述工具流推理阶段的提示策略用于任务规划阶段,描述工具集中每个工具的功能,以及每个工具的输入和输出信息概要,以使大语言模型能够理解和提示工具的正确使用方法。
12、进一步地,所述步骤(2)实现过程如下:
13、(21)根据工具内容按照服务配置文件规范编写服务的配置文件,包括工具功能描述信息、工具的调用请求描述信息、工具参数提取的提示策略以及相关用例;其中工具功能描述信息用于大语言模型工具流构建阶段提示策略的动态生成,工具的api请求描述信息用于工具调用阶段进行api调用,并作为输入输出的规范;工具参数提取的提示策略以及相关用例用于工具执行阶段前进行参数提取;
14、(22)工具配置文件校验与注册,完成工具配置文件数据格式校验、服务url可达性测试、工具可用性测试;
15、若工具配置文件数据格式校验通过,则进入步骤(23);若工具配置文件数据格式校验未通过,则重新进入步骤(21);
16、(23)依据已有工具功能描述信息对工具集的提示词进行动态拼接维护。
17、进一步地,所述步骤(22)实现过程如下:
18、(221)工具配置文件数据格式校验:采用json schema校验方法,对工具配置文件的数据格式进行校验;校验通过的标准为文件满足预定的json数据结构、所有必填字段完整且字段值类型符合预定格式要求;
19、(222)服务url可达性测试:对配置文件中指定的服务url进行可达性测试;测试通过的标准为url能够成功响应,且响应状态码为200,同时返回的数据格式符合预定要求;
20、(223)工具可用性测试:对配置文件中指定的工具进行可用性测试;测试通过的标准为工具能够按照预期执行指定功能,且在执行过程中无异常抛出,功能执行结果满足预期效果。
21、进一步地,步骤(3)所述大语言模型为chatglm3-6b-8k。
22、进一步地,所述步骤(3)实现过程如下:
23、(31)准备领域问题集,对于每个工具集,收集用户问题并聚合为领域问题集qw;对于微调数据集,其中每一条包含问题引导的提示词pinstruction、问题qj∈q和其对应的工具集标识符sj;
24、(32)配置微调模型信息,设置学习率、学习率预热比例、权重衰减系数、批大小、模型基本信息、微调训练集位置;
25、(33)微调大语言模型,模式选择lora模式,待微调完成后取出微调后的模型权重,作为工具集选择阶段的模型进行使用。
26、进一步地,所述步骤(4)实现过程如下:
27、(41)接收用户输入的问题,并将用户问题和第一提示策略模板拼接,输入微调后的大语言模型,推理用户意图使用的工具集标识符,然后对生成的标识符进行校验;
28、若推理结果中,用户意图使用的工具集明确,即输出中有且仅有一个工具集标识符,则进入步骤(42);
29、若推理结果中,用户问题的意图使用的工具集不明确或存在歧义,即生成了零个或者多个工具集标识符,则需要用户重新补充信息,由大语言模型生成澄清问题,反馈给用户并提示用户进行回答,以进一步明确用户意图,然后重复(41),直到用户意图使用的工具集明确;
30、(42)根据推理输出的工具集标识符,选择其为目标工具集。
31、进一步地,所述步骤(5)实现过程如下:
32、(51)一个工具集解决一类业务需求,其中包含若干个工具,是完成业务需求中需要用到的工具;对于一个用户的问题,至少可以通过工具的组合形成一条可执行的工具链条;基于大语言模型选择的工具集,根据工具集的内容,取出该工具集中所有工具的功能描述信息;
33、(52)执行工具自适应编排任务,自适应编排工具流,形成工具流执行列表l;
34、(53)对生成的工具流执行列表l进行校验检查,确保工具流逻辑连贯性和参数完整性;具体包括流程结构验证、依赖关系检查、条件分支验证、异常处理检查以及参数存在性、类型、值范围和格式的校验;校验通过则允许执行,不通过则提供错误报告。
35、进一步地,所述步骤(52)实现过程如下:
36、(521)组合提示策略,将每个工具的功能描述信息以及用户的输入组合聚合,与第二提示策略模板动态拼接为提示策略p作为大语言模型的输入参数;提示策略p通过思维链的方式设计组合,包含模型角色、模型问题拆解任务提示策略、模型工具自适应工具映射任务提示策略;p=concat(p1,p2),其中,p1是通过few-shot与引导式的提示策略引导大语言模型将用户问题q拆解为若干子问题q1,q2,...,qx,每个子问题qi间是承接关系和并列关系;p2是作自适应工具映射;将已选定的工具集和基础工具集所拥有的工具的描述信息和输入输出规范等信息作为输入,期望输出子问题qi和工具标识符的对应关系;其中,0<=i<=x;
37、(522)将提示策略作为大语言模型的输入,得到每个子问题对应的工具标识符组成工具编排表h,对于表中的每个元素hi,由子问题qi和工具标识符s组成;
38、(523)对于(522)中所述的工具编排表h中的所有元素hi,从开始的节点对与工具标识符表示的工具进行自适应装填,并记录每一个步骤中的输入、输出参数,直到列表中最后一个元素处理完成,将处理结果与工具编排表的信息耦合,组成工具流执行列表l。
39、进一步地,所述步骤(6)实现过程如下:
40、(61)维护一个元数据表,用于记录工具执行期间工具调用产生的信息,首先从用户问题中抽取参数作为元数据表中的内容;
41、(62)对于工具流执行列表l,按顺序取出每一条元素,然后从资源管理模块装载当前工具相应的调用请求信息,根据每个元素中的元数据类型进行匹配装载,然后进行工具调用执行;等待执行完成后,将输出内容加入元数据表,然后反复执行本步骤,直到所有元素都执行完成。
42、有益效果:与现有技术相比,本发明的有益效果:本发明采用了一种半自适应的方式,根据领域业务应用场景约束大语言模型工具选择,并实现其能力范围内自适应的组装技能;不仅避免了大型语言模型在处理复杂任务时可能出现的“遗忘”问题,而且省去了传统方法中繁琐的预编制流程,提升了工具流构建的灵活性和效率;相比于一般的工具流调用系统在工具选择阶段采用千亿参数级别的大语言模型作工具集选择,本发明利用lora微调手段对于十亿参数级别的大语言模型模型进行微调,并在工具集选择阶段取得良好的效果,大幅降低了模型推理成本,同时实现了内网部署的效果。
1.一种基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,步骤(1)所述工具集提示策略模板包括工具集选择阶段的提示策略和工具流推理阶段的提示策略;所述工具集选择阶段的提示策略包括洪水预测、智能调度、防洪规划、应急预案生成;所述工具流推理阶段的提示策略用于任务规划阶段,描述工具集中每个工具的功能,以及每个工具的输入和输出信息概要,以使大语言模型能够理解和提示工具的正确使用方法。
3.根据权利要求1所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,所述步骤(2)实现过程如下:
4.根据权利要求3所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,所述步骤(22)实现过程如下:
5.根据权利要求1所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,步骤(3)所述大语言模型为chatglm3-6b-8k。
6.根据权利要求1所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,所述步骤(3)实现过程如下:
7.根据权利要求1所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,所述步骤(4)实现过程如下:
8.根据权利要求1所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,所述步骤(5)实现过程如下:
9.根据权利要求8所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,所述步骤(52)实现过程如下:
10.根据权利要求1所述的基于大语言模型的水利领域工具驱动的智能体构建方法,其特征在于,所述步骤(6)实现过程如下:
