代码生成模型的生成方法、代码生成方法及装置与流程
未命名
10-08
阅读:103
评论:0

1.本发明涉及计算机技术领域,特别是涉及一种代码生成模型的生成方法、代码生成方法及装置。
背景技术:
2.目前常见的代码生成方案,一种是基于解析语法树构建得到代码提示插件,该代码提示插件用于模板代码自动补全场景,但是这种方式需要投入大量人力物力,却只能解决一小部分代码生成问题,不具有普适性且灵活性不足;另一种则是采用codex方式生成智能代码生成模型,也是只能解决一小部分代码生成问题,其理解能力还不足以泛化到足够大的代码生成问题。因此上述两种代码生成方案,只能解决一小部分代码生成问题,代码生成预测精度不足。
技术实现要素:
3.本发明技术方案的目的在于提供一种代码生成模型的生成方法、代码生成方法及装置,用以解决现有技术中代码生成预测精度不足的问题。
4.为达到上述目的,本发明实施例提供一种代码生成模型的生成方法,包括:
5.构建包括生成模型和检验模型的基础模型;
6.基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的。
7.可选地,所述的代码生成模型的生成方法,其中,所述基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,包括:
8.在沙盒中,将所述训练样本集输入所述生成模型进行训练,获得所述生成模型输出的训练结果;
9.将所述训练结果输入所述检验模型进行判断,获得所述检验模型输出的判断结果;
10.根据所述判断结果对所述生成模型进行优化,获得所述代码生成模型。
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.图1为本发明实施例所述代码生成模型的生成方法的流程示意图;
42.图2为本发明实施例所述代码生成方法的流程示意图;
43.图3为本发明实施例所述代码生成模型的生成装置的结构示意图;
44.图4为本发明实施例所述代码生成装置的结构示意图;
45.图5为本发明实施例所述电子设备的结构示意图。
具体实施方式
46.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
47.为解决现有技术中代码生成预测精度不足的问题,本发明实施例提供一种代码生成模型的生成方法,构建生成模型和检验模型的基础模型,基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的,因此采用该实施方式,获得的代码生成模型,解决了代码生成预测精度不足的问题,推动了代码一致性和标准化管理,同时大幅提升用户的工作效率。
48.如图1所示,本发明实施例提供一种代码生成模型的生成方法,包括:
49.步骤101,构建包括生成模型和检验模型的基础模型。
50.本发明实施例中,可选地,采用codex作为生成模型,以及采用bert-larger作为检验模型,将codex和bert-larger构建的基础模型称为bcode模型,基础模型的遮罩层与输出层需要进行本地化改造,以适应硬件设备。
51.步骤102,基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的。
52.需要说明的是,在生成模型和检验模型上进行对抗微调训练,构建出代码生成模型,此种对抗微调训练方式能够加快代码生成模型的收敛速度,提高模型的训练效率。
53.本发明实施例的代码生成模型在完成训练之后,可以根据用户输入流智能生成代码,让用户从繁重的重复代码编写任务中脱离出来,有效提高工作效率。
54.本发明实施例中,可选地,所述训练样本集包括多个训练样本,每个所述训练样本包括以下至少一项:
55.函数签名;
56.注释文本;
57.函数体;
58.测试用例。
59.训练样本集与humaneval数据集类似,每个问题包括函数签名、注释文本、函数体以及测试用例。训练样本集可以从cicd(一种包括持续集成、持续交付以及持续部署的软件开发实践)中获取,同时该训练样本集可以利用自动化脚本进行处理,节省人力,提高处理效率。
60.进一步地,为了避免信息泄漏和重复训练造成的过拟合现象,本发明实施例采用一个预训练的语言模型来对获取到的训练样本集进行过滤。采用过滤后的训练样本集进行模型训练,可以达到将自监督语言模型进行“监督”训练的效果,帮助模型更快收敛。
61.其中一实施方式,可选地,步骤102包括:
62.在沙盒中,将所述训练样本集输入所述生成模型进行训练,获得所述生成模型输出的训练结果;
63.将所述训练结果输入所述检验模型进行判断,获得所述检验模型输出的判断结果;
64.根据所述判断结果对所述生成模型进行优化,获得所述代码生成模型。
65.本发明实施例在沙盒中进行模型对抗微调训练。
66.具体地,生成模型根据训练样本输出训练结果,检验模型根据训练结果做出判断,输出判断结果,如果训练结果与真实答案相近,则输出用于指示得分高的判断结果;反之,如果训练结果与真实答案相差较大,则输出用于指示得分低的判断结果。生成模型和检验模型二者构成一个系统,通过系统的总体分数进行优化,最终可以将训练好的生成模型,作为代码生成模型。这样的对抗微调训练方式具备启发式的优点,同时能够让模型更快拟合数据分布。其中,沙盒可以是移动云沙盒。
67.而且,本发明实施例的代码生成模型在本地训练,降低了训练成本,同时保证了预测精度。
68.其中一实施方式,可选地,步骤102包括:
69.采用并行训练法,基于所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成模型。
70.其中,并行训练法是在多台机器上进行并行处理,如此,可以使得训练效率最大化,从而节约大量时间。
71.可选地,本发明实施例采用数据并行与模型并行结合的zero并行训练法,将数据和模型切片到多台机器上进行并行训练,并在训练好后进行回收归纳,再分发下去新的训练信息,以此循环。
72.其中一实施方式,可选地,所述方法还包括:
73.基于损失函数对所述代码生成模型进行优化,所述损失函数是基于温度系数确定的。
74.本发明实施例采用优化函数对代码生成模型进行优化,该优化函数可以为adam,具体地,在优化函数中基于结合温度系数的softmax损失函数对代码生成模型进行优化,在不同温度时通过率是不同的。
75.其中,基于温度系数的softmax损失函数采用如下公式(1)表示:
[0076][0077]
其中,t表示温度系数,用来控制模型对负样本的区分度,可以设置为0.05;z(i)表示最后一个完全连接层输出的logit张量。
[0078]
由公式(1)可知,基于温度系数的损失函数的曲线更加平滑,从而有利于寻找全局最优解,帮助模型收敛。
[0079]
其中一实施方式,可选地,步骤102包括:
[0080]
采用分词器和所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成
模型,所述分词器用于确定所述训练样本集中的无用字符串。
[0081]
其中,无用字符串,例如python代码中的
‘
\nclass’、
‘
\ndef’、
‘
\n#’、
‘
\nif’、
‘
\nprint'以及空格等字符串。在训练代码生成模型时,采用分词器(checkpoint)及时确定无用字符串,能够让模型停止生成代码,提高模型的置信度。可选地,本发明实施例可以通过核函数设置分词器。
[0082]
其中一实施方式,可选地,所述方法还包括:
[0083]
基于评价指标对所述代码生成模型的参数所对应的权重进行调整,所述评价指标是基于所述代码生成模型的训练结果的有偏估计确定的。
[0084]
需要说明的是,本发明实施例所述代码生成模型的生成方法采用pass@k评价指标,该pass@k评价指标采用如下公式(2)表示:
[0085][0086]
上述pass@k评价指标定义为采样k个答案能通过全部测试的期望,c表示k个答案中能过全部测试的个。为了节约资源,本发明实施例可以预先采样n(n》k)个答案,再从n个答案中随机选取k个答案作为候选。
[0087]
进一步地,由于上述公式(2)涉及阶乘运算,导致计算量较大,计算稳定性不高,因此本发明实施例采取以下公式(3)和公式(4)对公式(2)进行近似计算:
[0088][0089][0090]
其中,为公式(2)中k为1时pass@1的有偏估计,采用有偏估计可以避免直接计算大数相乘造成的溢出损失,同时也可以较好地还原计算精度。
[0091]
本发明实施例基于上述公式(4)表示的评价指标对代码生成模型的参数所对应的权重进行调整。可选地,将置信度高的参数所对应的权重提高,并且将其他参数所对应的权重降低,从而可以将代码生成模型的训练结果约束在合理范围内,提高预测精度。
[0092]
其中一实施方式,可选地,所述方法还包括:
[0093]
根据用户输入的待生成数据和所述代码生成模型,生成代码。
[0094]
本发明实施例所述代码生成模型可以用于预测代码。而且,还可以用于预测注释代码数据,具体地,采用全文搜索服务器将生成的注释代码数据进行缓存,为用户提供良好地输入提示功能。相较于现有技术采用codex模型不能很好地给出代码提示信息的问题,本发明实施例不仅解决了代码提示信息的问题,还能够提高用户的工作效率。其中,全文搜索服务器例如可以是移动云elasticsearch。
[0095]
其中一实施方式,可选地,在所述根据用户输入的待生成数据和所述代码生成模型,生成代码之后,所述方法还包括:
[0096]
基于用户画像数据和所述代码进行映射和矩阵分解,获取对应所述用户画像数据的代码提示信息。
[0097]
为了提高代码生成模型的智能化,本发明实施例可以基于用户相关指标信息或者用户使用习惯信息构建用户画像数据。然后,通过将用户画像数据和代码进行映射和矩阵
分解等运算,获得针对每个用户的代码提示信息,从而提高用户使用体验。
[0098]
其中一实施方式,可选地,所述方法还包括:
[0099]
根据设备需求信息,对所述代码生成模型进行模型压缩。
[0100]
需要说明的是,在代码生成模型完成训练后,可以根据设备需求信息,对代码生成模型进行模型压缩或模型迁移,得到不同大小的模型,使得模型具有更强的适用性,兼容不同设备。可选细,采用知识蒸馏方式获得不同大小的模型。
[0101]
综上,采用本发明实施例所述代码生成模型的生成方法,通过对抗训练获得的代码生成模型,能够大幅提升用户的工作效率,同时推动了代码一致性和标准化管理,形成数据闭环。而且,该代码生成模型采用本地训练方法,降低了训练成本,同时提高了预测精度。
[0102]
如图2所示,本发明实施例提供一种代码生成方法,包括:
[0103]
步骤201,根据用户输入的待生成数据和如上任一项所述的代码生成模型,生成代码。
[0104]
需要说明的是,本发明实施例可以将用户输入的待生成数据输入代码生成模型中,从而智能输出代码,让用户从繁重的重复代码编写任务中脱离出来,有效提高工作效率。
[0105]
进一步地,本发明实施例还可以基于用户画像数据和代码进行映射和矩阵分解,获取对应所述用户画像数据的代码提示信息。
[0106]
如图3所示,本发明实施例还提供一种代码生成模型的生成装置,包括:
[0107]
构建模块301,用于构建包括生成模型和检验模型的基础模型;
[0108]
获得模块302,用于基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的。
[0109]
可选地,所述的代码生成模型的生成装置,其中,所述获得模块302用于:
[0110]
在沙盒中,将所述训练样本集输入所述生成模型进行训练,获得所述生成模型输出的训练结果;
[0111]
将所述训练结果输入所述检验模型进行判断,获得所述检验模型输出的判断结果;
[0112]
根据所述判断结果对所述生成模型进行优化,获得所述代码生成模型。
[0113]
可选地,所述的代码生成模型的生成装置,其中,所述获得模块302用于:
[0114]
采用并行训练法,基于所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成模型。
[0115]
可选地,所述的代码生成模型的构建装置,其中,还包括:
[0116]
优化模块,用于基于损失函数对所述代码生成模型进行优化,所述损失函数是基于温度系数确定的。
[0117]
可选地,所述的代码生成模型的生成装置,其中,所述获得模块302用于:
[0118]
采用分词器和所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成模型,所述分词器用于确定所述训练样本集中的无用字符串。
[0119]
可选地,所述的代码生成模型的生成装置,其中,还包括:
[0120]
调整模块,用于基于评价指标对所述代码生成模型的参数所对应的权重进行调整,所述评价指标是基于所述代码生成模型的训练结果的有偏估计确定的。
[0121]
可选地,所述的代码生成模型的生成装置,其中,还包括:
[0122]
第一获取模块,用于根据用户输入的待生成数据和所述代码生成模型,生成代码。
[0123]
可选地,所述的代码生成模型的生成装置,其中,还包括:
[0124]
第二获取模块,用于基于用户画像数据和所述代码进行映射和矩阵分解,获取对应所述用户画像数据的代码提示信息。
[0125]
可选地,所述的代码生成模型的生成装置,其中,还包括:
[0126]
压缩模块,用于根据设备需求信息,对所述代码生成模型进行模型压缩。
[0127]
可选地,所述的代码生成模型的生成装置,其中,所述训练样本集包括多个训练样本,每个所述训练样本包括以下至少一项:
[0128]
函数签名;
[0129]
注释文本;
[0130]
函数体;
[0131]
测试用例。
[0132]
如图4所示,本发明实施例还提供一种代码生成装置,包括:
[0133]
生成模块401,根据用户输入的待生成数据和如上任一项所述的代码生成模型,生成代码。
[0134]
如图5所示,本发明实施例还提供一种电子设备,包括:处理器501;以及通过总线接口与所述处理器501相连接的存储器502,所述存储器502用于存储所述处理器501在执行操作时所使用的程序和数据,所述处理器501调用并执行所述存储器502中所存储的程序和数据。
[0135]
其中,所述电子设备还包括收发机503,所述收发机503与总线接口连接,用于在所述处理器501的控制下接收和发送数据;
[0136]
具体地,所述处理器501,执行下列过程:
[0137]
构建包括生成模型和检验模型的基础模型;
[0138]
基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的。
[0139]
可选地,所述的电子设备,其中,所述处理器4501,执行下列过程:
[0140]
在沙盒中,将所述训练样本集输入所述生成模型进行训练,获得所述生成模型输出的训练结果;
[0141]
将所述训练结果输入所述检验模型进行判断,获得所述检验模型输出的判断结果;
[0142]
根据所述判断结果对所述生成模型进行优化,获得所述代码生成模型。
[0143]
可选地,所述的电子设备,其中,所述处理器501,执行下列过程:
[0144]
采用并行训练法,基于所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成模型。
[0145]
可选地,所述的电子设备,其中,所述处理器501,还执行下列过程:
[0146]
基于损失函数对所述代码生成模型进行优化,所述损失函数是基于温度系数确定的。
[0147]
可选地,所述的电子设备,其中,所述处理器501,执行下列过程:
[0148]
采用分词器和所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成模型,所述分词器用于确定所述训练样本集中的无用字符串。
[0149]
可选地,所述的电子设备,其中,所述处理器501,还执行下列过程:
[0150]
基于评价指标对所述代码生成模型的参数所对应的权重进行调整,所述评价指标是基于所述代码生成模型的训练结果的有偏估计确定的。
[0151]
可选地,所述的电子设备,其中,所述处理器501,还执行下列过程:
[0152]
根据用户输入的待生成数据和所述代码生成模型,生成代码。
[0153]
可选地,所述的电子设备,其中,所述处理器501,还执行下列过程:
[0154]
基于用户画像数据和所述代码进行映射和矩阵分解,获取对应所述用户画像数据的代码提示信息。
[0155]
可选地,所述的电子设备,其中,所述处理器501,还执行下列过程:
[0156]
根据设备需求信息,对所述代码生成模型进行模型压缩。
[0157]
可选地,所述的电子设备,其中,所述训练样本集包括多个训练样本,每个所述训练样本包括以下至少一项:
[0158]
函数签名;
[0159]
注释文本;
[0160]
函数体;
[0161]
测试用例。
[0162]
其中,在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器501代表的一个或多个处理器和存储器502代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供用户接口504。收发机503可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器501负责管理总线架构和通常的处理,存储器502可以存储处理器501在执行操作时所使用的数据。
[0163]
本发明实施例还提供一种电子设备,包括:处理器;以及通过总线接口与所述处理器相连接的存储器,所述存储器用于存储所述处理器在执行操作时所使用的程序和数据,所述处理器调用并执行所述存储器中所存储的程序和数据。
[0164]
其中,所述电子设备还包括收发机,所述收发机与总线接口连接,用于在所述处理器的控制下接收和发送数据;
[0165]
具体地,所述处理器,执行下列过程:
[0166]
根据用户输入的待生成数据和如上任一项所述的代码生成模型,生成代码。
[0167]
需要说明的是,该电子设备的结构示意图可以参考图5。
[0168]
另外,本发明具体实施例还提供一种可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上中任一项所述的代码生成模型的生成方法中的步骤,或者实现如上中所述的代码生成方法中的步骤。
[0169]
具体地,该计算机可读存储介质应用于上述的电子设备,在应用于电子设备时,对应代码生成模型的生成方法或者代码生成方法中的执行步骤如上的详细描述,在此不再赘述。
[0170]
在本技术所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0171]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0172]
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0173]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种代码生成模型的生成方法,其特征在于,包括:构建包括生成模型和检验模型的基础模型;基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的。2.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,包括:在沙盒中,将所述训练样本集输入所述生成模型进行训练,获得所述生成模型输出的训练结果;将所述训练结果输入所述检验模型进行判断,获得所述检验模型输出的判断结果;根据所述判断结果对所述生成模型进行优化,获得所述代码生成模型。3.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,包括:采用并行训练法,基于所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成模型。4.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述方法还包括:基于损失函数对所述代码生成模型进行优化,所述损失函数是基于温度系数确定的。5.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,包括:采用分词器和所述训练样本集对所述基础模型进行对抗训练,获得所述代码生成模型,所述分词器用于确定所述训练样本集中的无用字符串。6.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述方法还包括:基于评价指标对所述代码生成模型的参数所对应的权重进行调整,所述评价指标是基于所述代码生成模型的训练结果的有偏估计确定的。7.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述方法还包括:根据用户输入的待生成数据和所述代码生成模型,生成代码。8.根据权利要求7所述的代码生成模型的生成方法,其特征在于,在所述根据用户输入的待生成数据和所述代码生成模型,生成代码之后,所述方法还包括:基于用户画像数据和所述代码进行映射和矩阵分解,获取对应所述用户画像数据的代码提示信息。9.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述方法还包括:根据设备需求信息,对所述代码生成模型进行模型压缩。10.根据权利要求1所述的代码生成模型的生成方法,其特征在于,所述训练样本集包括多个训练样本,每个所述训练样本包括以下至少一项:函数签名;注释文本;函数体;测试用例。11.一种代码生成方法,其特征在于,包括:根据用户输入的待生成数据和如权利要求1至10中任一项所述的代码生成模型,生成
代码。12.一种代码生成模型的生成装置,其特征在于,包括:构建模块,用于构建包括生成模型和检验模型的基础模型;获得模块,用于基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的。13.一种代码生成装置,其特征在于,包括:生成模块,用于根据用户输入的待生成数据和如权利要求1至10中任一项所述的代码生成模型,生成代码。14.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至10中任一项所述的代码生成模型的生成方法,或者实现如权利要求11所述的代码生成方法。15.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至10中任一项所述的代码生成模型的生成方法,或者实现如权利要求11所述的代码生成方法。
技术总结
本发明提供了一种代码生成模型的生成方法、代码生成方法及装置,涉及计算机技术领域。其中,所述代码生成模型的生成方法,包括:构建包括生成模型和检验模型的基础模型;基于训练样本集对所述基础模型进行对抗训练,获得代码生成模型,所述训练样本集是基于预训练的语言模型进行过滤得到的。本发明的方案,解决了代码生成预测精度不足的问题。码生成预测精度不足的问题。码生成预测精度不足的问题。
技术研发人员:缪静 李铖
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2023.07.07
技术公布日:2023/10/5
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/