程序代码生成方法及装置、模型训练方法及装置制造方法及图纸

技术编号:39037023 阅读:12 留言:0更新日期:2023-10-10 11:50
本公开提供了一种程序代码生成方法、程序代码生成模型的训练方法、装置、电子设备、计算机可读存储介质和计算机程序产品,涉及人工智能技术领域,尤其涉及自然语言处理、大语言模型、智能对话技术领域。实现方案为:获取用户的问题文本;基于问题文本、每个第一预设工具的功能描述信息以及至少一个第一程序代码示例,确定至少一个目标工具;基于问题文本、至少一个目标工具中每个的功能描述信息以及至少一个第一程序代码示例,生成至少一个目标工具中每个的工具调用代码;以及基于至少一个目标工具中每个的工具调用代码,生成目标程序代码。生成目标程序代码。生成目标程序代码。

【技术实现步骤摘要】
程序代码生成方法及装置、模型训练方法及装置


[0001]本公开涉及人工智能
,尤其涉及自然语言处理、大语言模型、智能对话
,具体涉及一种程序代码生成方法、程序代码生成模型的训练方法、装置、电子设备、计算机可读存储介质和计算机程序产品。

技术介绍

[0002]人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
[0003]基于大语言模型的任务式对话生成技术是当前人工智能领域的研究热点之一。这种技术利用大语言模型的自然语言生成能力,结合任务式对话的特定需求,可以生成符合特定任务要求的对话内容。
[0004]在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

技术实现思路

[0005]本公开提供了一种程序代码生成方法、程序代码生成模型的训练方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
[0006]根据本公开的一方面,提供了一种程序代码生成方法,包括:获取用户的问题文本,问题文本包括用户需求;以及基于问题文本、至少一个第一预设工具中每个的功能描述信息以及至少一个第一程序代码示例,执行下述第一操作,以生成目标程序代码:基于问题文本、至少一个第一预设工具中每个的功能描述信息以及至少一个第一程序代码示例,在至少一个第一预设工具中确定用于解决用户需求的至少一个目标工具,其中,至少一个第一程序代码示例对应至少一个示例问题,并且每个第一程序代码示例中包括用于解决相应示例问题的至少一个示例工具以及至少一个示例工具中每个的工具调用代码;基于问题文本、至少一个目标工具中每个的功能描述信息以及至少一个第一程序代码示例,生成至少一个目标工具中每个的工具调用代码;以及基于至少一个目标工具中每个的工具调用代码,生成目标程序代码。
[0007]根据本公开的另一方面,提供了一种程序代码生成模型的训练方法,包括:获取样本数据,样本数据包括样本问题文本、至少一个样本工具、至少一个程序代码示例以及样本程序代码,其中,样本文本包括用户需求,至少一个样本工具中的每个包括功能描述信息,样本程序代码包括至少一个样本工具中的用于解决用户需求的至少一个目标工具以及至少一个目标工具中每个的工具调用代码,至少一个程序代码示例对应至少一个示例问题并
且每个程序代码示例中包括用于解决相应示例问题的至少一个示例工具以及至少一个示例工具中每个的工具调用代码;基于样本问题文本、至少一个样本工具中每个的功能描述信息以及至少一个程序代码示例,利用程序代码生成模型执行下述第一操作,以生成程序代码预测结果:基于样本问题文本、至少一个样本工具的每个的功能描述信息以及至少一个程序代码示例,在至少一个样本工具中确定用于解决用户需求的至少一个预测工具;基于样本问题文本、至少一个预测工具中每个的功能描述信息以及至少一个程序代码示例,生成至少一个预测工具中每个的工具调用代码;以及基于至少一个预测工具中每个的工具调用代码,生成程序代码预测结果;以及基于程序代码预测结果和样本程序代码,调整程序代码生成模型的参数。
[0008]根据本公开的另一方面,提供了一种程序代码生成装置,包括:第一获取单元,被配置为获取用户的问题文本,问题文本包括用户需求;以及生成单元,被配置为基于问题文本、至少一个第一预设工具中每个的功能描述信息以及至少一个第一程序代码示例,执行下述第一操作,以生成目标程序代码:基于问题文本、至少一个第一预设工具中每个的功能描述信息以及至少一个第一程序代码示例,在至少一个第一预设工具中确定用于解决用户需求的至少一个目标工具,其中,至少一个第一程序代码示例对应至少一个示例问题,并且每个第一程序代码示例中包括用于解决相应示例问题的至少一个示例工具以及至少一个示例工具中每个的工具调用代码;基于问题文本、至少一个目标工具中每个的功能描述信息以及至少一个第一程序代码示例,生成至少一个目标工具中每个的工具调用代码;以及基于至少一个目标工具中每个的工具调用代码,生成目标程序代码。
[0009]根据本公开的另一方面,提供了一种程序代码生成模型的训练装置,包括:第一获取单元,被配置为获取样本数据,样本数据包括样本问题文本、至少一个样本工具、至少一个程序代码示例以及样本程序代码,其中,样本文本包括用户需求,至少一个样本工具中的每个包括功能描述信息,样本程序代码包括至少一个样本工具中的用于解决用户需求的至少一个目标工具以及至少一个目标工具中每个的工具调用代码,至少一个程序代码示例对应至少一个示例问题并且每个程序代码示例中包括用于解决相应示例问题的至少一个示例工具以及至少一个示例工具中每个的工具调用代码;生成单元,被配置为基于样本问题文本、至少一个样本工具中每个的功能描述信息以及至少一个程序代码示例,利用程序代码生成模型执行下述第一操作,以生成程序代码预测结果:基于样本问题文本、至少一个样本工具的每个的功能描述信息以及至少一个程序代码示例,在至少一个样本工具中确定用于解决用户需求的至少一个预测工具;基于样本问题文本、至少一个预测工具中每个的功能描述信息以及至少一个程序代码示例,生成至少一个预测工具中每个的工具调用代码;以及基于至少一个预测工具中每个的工具调用代码,生成程序代码预测结果;以及调整单元,被配置为基于程序代码预测结果和样本程序代码,调整程序代码生成模型的参数。
[0010]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述程序代码生成方法或程序代码生成模型的训练方法。
[0011]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述程序代码生成方法或程序代码生成模型的
训练方法。
[0012]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述程序代码生成方法或程序代码生成模型的训练方法。
[0013]根据本公开的一个或多个实施例,通过将程序代码示例以及工具的功能描述信息引入到程序代码生成过程中,从而使得在程序代码生成的过程中,能够参考功能描述信息以及示例中的代码语句进行目标工具的选择、工具调用代码等程序代码的生成,使得当将新工具添加到预设工具库以扩展工具库时,无需重新进行生成模型的训练,即可基于上述信息进行程序代码生成,提升了预设工具库和程序代码生成方案整体的可扩展性。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序代码生成方法,包括:获取用户的问题文本,所述问题文本包括用户需求;以及基于所述问题文本、至少一个第一预设工具中每个的功能描述信息以及至少一个第一程序代码示例,执行下述第一操作,以生成目标程序代码:基于所述问题文本、所述至少一个第一预设工具中每个的功能描述信息以及所述至少一个第一程序代码示例,在所述至少一个第一预设工具中确定用于解决所述用户需求的至少一个目标工具,其中,所述至少一个第一程序代码示例对应至少一个示例问题,并且每个第一程序代码示例中包括用于解决相应示例问题的至少一个示例工具以及所述至少一个示例工具中每个的工具调用代码;基于所述问题文本、所述至少一个目标工具中每个的功能描述信息以及所述至少一个第一程序代码示例,生成所述至少一个目标工具中每个的工具调用代码;以及基于所述至少一个目标工具中每个的工具调用代码,生成所述目标程序代码。2.根据权利要求1所述的方法,还包括:基于所述问题文本与预设工具库中的多个第二预设工具中每个的功能描述信息的语义相似度,在所述多个第二预设工具中确定所述至少一个第一预设工具;以及基于所述问题文本与预设示例库中的至少一个第二程序代码示例中每个的语义相似度,在所述至少一个第二程序代码示例中确定所述至少一个第一程序代码示例。3.根据权利要求1或2所述的方法,其中,所述第一操作基于程序代码生成模型实现,基于所述问题文本、所述至少一个第一预设工具中每个的功能描述信息以及所述至少一个第一程序代码示例,生成所述目标程序代码包括:基于包含至少一条预设指令文本的预设指令模板,将所述问题文本、所述至少一个第一预设工具中每个的功能描述信息以及所述至少一个第一程序代码示例整合为目标指令文本;以及将所述目标指令文本输入程序代码生成模型,以使所述程序代码生成模型执行所述第一操作,以生成所述目标程序代码,其中,所述至少一条预设指令文本用于指示所述问题文本、所述至少一个第一预设工具中每个的功能描述信息以及所述至少一个第一程序代码示例在所述目标程序代码生成过程中的作用。4.根据权利要求2或3所述的方法,还包括:获取上下文信息;并且其中,所述基于所述问题文本、所述至少一个第一预设工具中每个的功能描述信息以及所述至少一个第一程序代码示例,生成所述目标程序代码包括:基于所述问题文本、所述上下文信息、所述至少一个第一预设工具中每个的功能描述信息以及所述至少一个第一程序代码示例,生成所述目标程序代码。5.根据权利要求2

4中任一项所述的方法,其中,所述多个第二预设工具包括具备输入参数以及所述输入参数的参数描述信息的第三预设工具,所述至少一个第二程序代码示例中具有所述第三预设工具的程序代码示例中包括所述输入参数的设置信息,所述设置信息用于指导目标工具包含第三预设工具的目标程序代码中的参数获取代码的生成。6.根据权利要求1

5中任一项所述的方法,其中,所述至少一个目标工具的数量为多个,所述目标程序代码中还包括所述至少一个目标工具之间的依赖关系。
7.根据权利要求1

6中任一项所述的方法,还包括:执行所述目标程序代码,以获取至少一个目标反馈信息;基于所述问题文本和所述至少一个目标反馈信息,生成用于回复所述问题文本的回复信息。8.一种程序代码生成模型的训练方法,包括:获取样本数据,所述样本数据包括样本问题文本、至少一个样本工具、至少一个程序代码示例以及样本程序代码,其中,所述样本文本包括用户需求,所述至少一个样本工具中的每个包括功能描述信息,所述样本程序代码包括所述至少一个样本工具中的用于解决所述用户需求的至少一个目标工具以及所述至少一个目标工具中每个的工具调用代码,所述至少一个程序代码示例对应至少一个示例问题并且每个程序代码示例中包括用于解决相应示例问题的至少一个示例工具以及所述至少一个示例工具中每个的工具调用代码;基于所述样本问题文本、所述至少一个样本工具中每个的功能描述信息以及至少一个程序代码示例,利用所述程序代码生成模型执行下述第一操作,以生成程序代码预测结果:基于所述样本问题文本、所述至少一个样本工具的每个的功能描述信息以及所述至少一个程序代码示例,在所述至少一个样本工具中确定用于解决所述用户需求的至少一个预测工具;基于所述样本问题文本、所述至少一个预测工具中每个的功能描述信息以及所述至少一个程序代码示例,生成所述至少一个预测工具中每个的工具调用代码;以及基于所述至少一个预测工具中每个的工具调用代码,生成程序代码预测结果;以及基于所述程序代码预测结果和所述样本程序代码,调整所述程序代码生成模型的参数。9.根据权利要求8所述的方法,其中,基于所述样本问题文本、所述至少一个样本工具中每个的功能描述信息以及至少一个程序代码示例,利用所述程序代码生成模型生成所述程序代码预测结果包括:基于包含至少一条预设指令文本的预设指令模板,将所述样本问题文本、所述至少一个样本工具中每个的功能描述信息以及至少一个程序代码示例整合为目标指令文本;以及将所述目标指令文本输入所述程序代码生成模型,以使所述程序代码生成模型执行所述第一操作,以生成所述程序代码预测结果,其中,所述至少一条预设指令文本用于指示所述样本问题文本、所述至少一个样本工具中每个的功能描述信息以及所述至少一个程序代码示例在所述程序代码预测结果生成过程中的作用。10.根据权利要求8或9所述的方法,其中,所述样本数据还包括至少...

【专利技术属性】
技术研发人员:柯博胡腾冯仕堃田浩吴华
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1