代码大模型的代码生成方法、装置、电子设备及介质与流程

文档序号:39722361发布日期:2024-10-22 13:15阅读:16来源:国知局
代码大模型的代码生成方法、装置、电子设备及介质与流程

本公开涉及通信技术的,具体而言,涉及一种代码大模型的代码生成方法、装置、电子设备及介质。


背景技术:

1、大语言模型llm(large language model)指可以处理多种自然语言任务且具有大量参数的深度学习模型。代码大模型指用于代码生成的大语言模型,而代码大模型的增强生成旨在为经过预训练后的代码大模型进行进一步设计,从而提升该模型生成代码的质量。

2、相关代码大模型的代码生成技术中,通过各类训练方法对该代码大模型的模型参数进行调整,但该模型参数的参数量较大,导致运行过程消耗大量时间和资源,且输入到该代码大模型的补充信息的有效性差,从而导致该代码大模型根据该补充信息生成的代码准确率低。


技术实现思路

1、本公开实施例至少提供一种代码大模型的代码生成方法、装置、电子设备及介质。

2、第一方面,本公开实施例提供了一种代码大模型的代码生成方法,包括:

3、获取多个代码撰写样本;其中,每个所述代码撰写样本包括以下至少之一:代码撰写要求、能够实现该代码撰写要求的代码,以及用于评估代码是否符合该代码撰写要求的测试用例;

4、基于所述多个代码撰写样本,筛选出多个代码撰写要求作为代码撰写示例要求;

5、基于所述代码撰写示例要求的实现代码生成携带注释的目标代码,并基于所述目标代码确定层级式计划;其中,所述层级式计划用于指示所述目标代码所实现功能的功能描述信息;

6、将每个所述代码撰写示例要求、该代码撰写示例要求的层级式计划,以及所述目标代码依次组合,得到思维链示例;

7、将多组所述思维链示例进行拼接,并将拼接后所述思维链示例和待处理代码撰写要求输入至代码大模型,生成所述待处理代码撰写要求的实现代码。

8、一种可选的实施方式中,所述基于所述多个代码撰写样本,筛选出多个代码撰写要求作为代码撰写示例要求,包括:

9、通过训练后编码模型对所述多个代码撰写样本中的代码撰写要求进行编码处理,得到多个第一编码向量;

10、基于k均值聚类算法对所述多个第一编码向量进行分类处理,得到多个分类组;其中,每个所述分类组对应一组相同类型的代码撰写要求;

11、确定所述代码大模型在分别输入所述代码撰写样本中的每个代码撰写要求时,该代码大模型输出的代码在所述代码撰写样本中该代码撰写要求对应的测试用例上测试得到的准确度;

12、基于每个分类组中代码准确度最低的代码撰写要求,确定代码撰写示例要求。

13、一种可选的实施方式中,通过以下方式得到训练后的编码模型,包括:

14、基于所述多个代码撰写样本中的代码撰写要求,确定多个训练代码撰写要求组;每个所述训练代码撰写要求组中包含锚定代码撰写要求、该锚定代码撰写要求的正向代码撰写要求,该锚定代码撰写要求的反向代码撰写要求;

15、在每轮训练中,基于该轮训练前编码模型对每个所述训练代码撰写要求组中的锚定代码撰写要求、正向代码撰写要求和反向代码撰写要求进行编码处理,得到多个第二编码向量;

16、基于所述多个第二编码向量确定第一损失函数值,并根据所述第一损失函数值调整所述该轮训练前编码模型的模型参数;

17、基于多轮训练,得到所述训练后的编码模型。

18、一种可选的实施方式中,所述确定所述代码大模型在分别输入所述代码撰写样本中的每个代码撰写要求时,该代码大模型输出的代码在所述代码撰写样本中该代码撰写要求对应的测试用例上测试得到的准确度,包括:

19、确定每个所述代码撰写样本中各代码撰写要求所对应的测试用例的第一用例数量;

20、在所述代码撰写要求作为所述代码大模型的输入时,能够通过的测试用例的第二用例数量;

21、基于所述第二用例数量和所述第一用例数量之间的比值,确定所述代码撰写要求的准确度。

22、一种可选的实施方式中,所述基于能够实现所述代码撰写示例要求的代码生成目标代码,包括:

23、确定所述代码撰写示例要求的每行代码的注释;

24、将所述注释添加到该行代码的前一行,并在所述注释前添加与该行代码的缩进数量相同数量的缩进。

25、一种可选的实施方式中,所述基于所述目标代码生成层级式计划,包括:

26、基于所述目标代码构建层级式列表;其中,所述层级式列表的每一项对应所述目标代码所执行功能的一个实现步骤,所述实现步骤用于指示对所述目标代码的一部分代码所执行功能的初始功能描述信息;

27、对所述层级式列表中的初始功能描述信息进行格式调整,调整后得到所述层级式计划。

28、一种可选的实施方式中,所述对所述层级式列表中的初始功能描述信息进行格式调整,调整后得到所述层级式计划,包括:

29、在所述层级式列表中所述实现步骤相应的首个代码语句的句首包含指定关键字的情况下,将所述实现步骤的初始功能描述信息撰写为句首包含该指定关键字的功能描述信息;其中,所述首个代码语句为所述目标代码中该实现步骤的实现代码的首个代码语句;

30、在所述层级式列表中所述实现步骤相应的首个代码语句的句首不包含所述指定关键字的情况下,将所述实现步骤的初始功能描述信息撰写为第一格式的功能描述信息;

31、基于所述目标代码中所述实现步骤所相应代码语句中各行语句前最小缩进数量,调整所述实现步骤的初始功能描述信息的缩进数量,调整后得到所述层级式计划。

32、第二方面,本公开实施例提供了一种代码生成装置,包括:

33、获取单元,用于获取代码撰写数据;其中,每个所述代码撰写数据包括以下至少之一:代码撰写要求、能够实现该代码撰写要求的代码,以及用于评估代码是否符合该代码撰写要求的测试用例;

34、第一处理单元,用于基于所述多个代码撰写样本,筛选出多个代码撰写要求作为代码撰写示例要求;其中,所述代码撰写示例要求通过上述第一方面中的步骤得到;

35、第二处理单元,用于基于所述代码撰写示例要求的实现代码生成携带注释的目标代码,并基于所述目标代码确定层级式计划;其中,所述目标代码通过上述第一方面中的步骤得到;

36、第一汇总单元,用于将每个所述代码撰写示例要求、该代码撰写示例要求的层级式计划,以及所述目标代码依次组合,得到思维链示例;其中,所述层级式计划通过上述第一方面中的步骤得到;

37、第二汇总单元,用于将多组所述思维链示例进行拼接,并将拼接后所述思维链示例和待处理代码撰写要求输入至代码大模型,生成所述待处理代码撰写要求的实现代码。

38、第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面中的步骤。

39、第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面中的步骤。

40、在本技术实施例中,首先,获取多个代码撰写样本,并基于多个该代码撰写样本,筛选出多个代码撰写要求作为代码撰写示例要求,然后,基于该代码撰写示例要求的实现代码生成携带注释的目标代码,并基于该目标代码确定层级式计划,最后将每个代码撰写示例要求、该代码撰写示例要求的层级式计划,以及该目标代码依次组合,得到思维链示例,将多组该思维链示例进行拼接,并将拼接后的该思维链示例和待处理代码撰写要求输入至代码大模型,生成该待处理代码撰写要求的实现代码。

41、上述实施方式中,通过在多个代码撰写样本中筛选出多个代码撰写要求作为代码撰写示例要求的方式,可提升选取代码撰写示例要求的有效性和多样性,并通过该代码撰写示例要求的目标代码确定层级式计划,将该代码撰写示例要求、该层级式计划和该目标代码依次组合,得到思维链示例,将拼接后的该思维链示例和待处理代码撰写要求输入至代码大模型中,使该代码大模型先输出层级式计划,再输出携带注释的目标代码,实现该代码大模型能够处理更复杂的问题,并提升生成代码的准确度。

42、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1