代码数据生成方法及相关方法、设备、介质和产品与流程

摘要: 本申请涉及人工智能,特别是涉及一种代码数据生成方法及相关方法、设备、介质和产品。背景技术:1、在软件工程等领域,诸如大语言模型等代码生成模型训练数据合成中,通常...
代码数据生成方法及相关方法、设备、介质和产品与流程

本申请涉及人工智能,特别是涉及一种代码数据生成方法及相关方法、设备、介质和产品。

背景技术:

1、在软件工程等领域,诸如大语言模型等代码生成模型训练数据合成中,通常可以由智能体在真实代码仓库上完成编程任务,再通过自动化评估对智能体的产出进行验证,验证通过的代码数据,即“任务-修复补丁”数据对,可以被收集作为高质量训练样本。

2、现有合成执行系统普遍采用“单轮执行、失败即弃”的模式,即智能体执行一轮之后立即评估,评估未通过则该任务直接废弃,再重新执行,由此导致重复消耗推理额度。有鉴于此,如何在代码数据的生成过程中尽可能地减少推理额度的重复消耗,成为亟待解决的问题。

技术实现思路

1、本申请主要解决的技术问题是提供一种代码数据生成方法及相关方法、设备、介质和产品,能够在代码数据的生成过程中尽可能地减少推理额度的重复消耗。

2、为了解决上述技术问题,本申请第一方面提供了一种代码数据生成方法,包括:基于在当前轮次驱动智能体响应代码任务而生成的补丁文件进行评估,得到评估结果;其中,每个轮次执行结束之后分别记录退出状态,补丁文件在测试用例上进行评估,评估结果包括代码任务是否执行成功以及执行失败时输出的评估文本;响应于评估结果表征为执行失败,基于评估文本进行分类,得到执行失败的失败类别,基于评估文本进行解析,得到执行失败的用例名称;基于当前轮次的退出状态、失败类别和补丁文件,判定是否可以继续下一轮次;响应于判定可以继续下一轮次,基于当前轮次的失败类别、用例名称和补丁文件,构造用于指示智能体继续下一轮次的提示指令;返回基于在当前轮次驱动智能体响应代码任务而生成的补丁文件进行评估,得到评估结果的步骤,直至评估为执行成功或判定不可继续下一轮次,并在评估为执行成功的情况下输出代码任务和代码任务评估为执行成功时的补丁文件。

3、为了解决上述技术问题,本申请第二方面提供了一种代码生成模型的训练方法,包括:获取样本数据对;其中,样本数据对基于上述第一方面的代码数据生成方法获取得到,样本数据对包括代码任务与代码任务评估为执行成功时的补丁文件;基于样本数据对,对代码生成模型进行训练。

4、为了解决上述技术问题,本申请第三方面提供了一种计算机设备,至少包括彼此耦接的存储器与处理器,存储器中至少存储有程序指令,处理器用于执行程序指令以实现上述第一方面的代码数据生成方法,或实现上述第二方面的代码生成模型的训练方法。

5、为了解决上述技术问题,本申请第四方面提供了一种计算机可读存储介质,存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面的代码数据生成方法,或实现上述第二方面的代码生成模型的训练方法。

6、为了解决上述技术问题,本申请第五方面提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述第一方面的代码数据生成方法,或实现上述第二方面的代码生成模型的训练方法。

7、上述方案,基于在当前轮次驱动智能体响应代码任务而生成的补丁文件进行评估,得到评估结果,每个轮次执行结束之后分别记录退出状态,补丁文件在测试用例上进行评估,评估结果包括代码任务是否执行成功以及执行失败时输出的评估文本,响应于评估结果表征为执行失败,基于评估文本进行分类,得到执行失败的失败类别,基于评估文本进行解析,得到执行失败的用例名称,再基于当前轮次的退出状态、失败类别和补丁文件,判定是否可以继续下一轮次,从而响应于判定可以继续下一轮次,基于当前轮次的失败类别、用例名称和补丁文件,构造用于指示智能体继续下一轮次的提示指令,进而返回基于在当前轮次驱动智能体响应代码任务而生成的补丁文件进行评估,得到评估结果的步骤,直至评估为执行成功或判定不可继续下一轮次,并在评估为执行成功的情况下输出代码任务和代码任务评估为执行成功时的补丁文件,一方面在评估结果表征为执行失败的情况下,将当前轮次中产生的相关信息作为参考以继续下一轮次,相较于直接放弃而言,通过携带真实补丁产物继续修复,能够提升可修复缺陷样本利用率,有助于尽可能地减少推理额度的重复消耗,另一方面由于基于当前轮次的退出状态、失败类别和补丁文件,判定是否可以继续下一轮次,且在继续下一轮次时结合当前轮次的失败类别、用例名称和补丁文件,相较于不区分失败原因而一刀切式地进行重试而言,能够减少无效重试,有助于尽可能地减少推理额度的重复消耗。故此,能够在代码数据的生成过程中尽可能地减少推理额度的重复消耗。

1.一种代码数据生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述基于所述评估文本进行解析,得到执行失败的用例名称,包括:

3.根据权利要求1所述的方法,其特征在于,所述基于所述当前轮次的所述退出状态、所述失败类别和所述补丁文件,判定是否可以继续下一轮次,包括:

4.根据权利要求3所述的方法,其特征在于,所述基于所述当前轮次的所述失败类别是否指示可续跑和所述当前轮次的所述补丁文件是否非空,判定是否可以继续下一轮次,包括:

5.根据权利要求3所述的方法,其特征在于,在所述当前轮次的所述退出状态属于不可续跑状态集的情况下,所述当前轮次的所述退出状态检测为所述不可续跑状态,所述不可续跑状态集至少包括限流、致命错误、超时;

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.根据权利要求1所述的方法,其特征在于,所述基于所述当前轮次的所述失败类别、所述用例名称和所述补丁文件,构造用于指示所述智能体继续下一轮次的提示指令,包括:

9.根据权利要求8所述的方法,其特征在于,所述基于所述当前轮次的所述失败类别、所述用例名称和所述补丁文件,构造用于指示所述智能体继续下一轮次的提示指令,还包括:

10.根据权利要求1所述的方法,其特征在于,所述代码任务在任务容器中执行,所述方法还包括:

11.根据权利要求10所述的方法,其特征在于,所述方法还包括以下至少一者:以网关就绪探针替代裸端口探测、将任务私密配置写入任务输出目录之外的私有目录。

12.根据权利要求1至11任一项所述的方法,其特征在于,在评估为执行成功的情况下,所述代码任务与评估为执行成功时的补丁文件形成样本数据对,所述样本数据用于对代码生成模型进行训练;

13.一种代码生成模型的训练方法,其特征在于,包括:

14.一种计算机设备,其特征在于,至少包括相互耦接的存储器与处理器,所述存储器中至少存储有程序指令,所述处理器用于执行所述程序指令以实现权利要求1至12任一项所述的代码数据生成方法,或实现权利要求13所述的代码生成模型的训练方法。

15.一种计算机可读存储介质,其特征在于,存储有能够被处理器运行的程序指令,所述程序指令用于实现权利要求1至12任一项所述的代码数据生成方法,或实现权利要求13所述的代码生成模型的训练方法。

16.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至12任一项所述的代码数据生成方法,或实现权利要求13所述的代码生成模型的训练方法。