基于生成式人工智能的代码补全方法和装置制造方法及图纸

技术编号:39587962 阅读:8 留言:0更新日期:2023-12-03 19:39
本公开的实施方式提供了一种基于生成式人工智能的代码补全方法和装置

【技术实现步骤摘要】
基于生成式人工智能的代码补全方法和装置、介质


[0001]本公开的实施方式涉及生成式人工智能领域,更具体地,本公开的实施方式涉及一种基于生成式人工智能的代码补全方法和装置

介质


技术介绍

[0002]本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文

此处的描述不因为包括在本部分中就承认是现有技术

[0003]生成式人工智能是一种人工智能技术,它利用深度学习算法来模拟人类创造信息的能力

与传统的基于规则的人工智能不同,生成式人工智能可以通过学习大规模数据集来生成新的不同模态
(
比如文本,图片,语音等
)
的数据

生成式人工智能在许多领域都有广泛的应用,包括自然语言处理

计算机视觉

音频合成等

例如,在自然语言处理领域,生成式人工智能可以用于自动文本摘要

文章创作

对话系统等任务

[0004]相关技术中的代码补全方法依赖于事先定义好的规则和模板生成补全代码,但其受限于已定义的规则,难以适应复杂的业务场景,当遇到新的

非常规的代码片段时,生成的代码无法实现预期的功能


技术实现思路

[0005]有鉴于此,本公开提供一种基于生成式人工智能的代码补全方法和装置

介质,以解决相关技术中的不

[0006]为实现上述目的,本公开提供技术方案如下:
[0007]在本公开实施方式的第一方面中,提供了一种基于生成式人工智能的代码补全方法,包括:
[0008]将第一信息输入至经训练的代码补全模型中,由所述代码补全模型输出与所述第一信息对应的目标代码,所述目标代码用于实现预期的代码功能;其中,所述第一信息包括采用自然语言对所述代码功能进行描述的代码描述语句,和
/
或,待补全的代码字符串片段

[0009]可选的,所述代码补全模型是基于样本数据集进行训练而获得的;其中,所述样本数据集包括:代码样本数据,以及对应于所述代码样本数据的注释样本数据

[0010]可选的,所述代码补全模型是在经预训练的初始化模型的基础上,微调得到的因果语言模型;其中,所述因果语言模型用于根据所述代码样本数据和所述注释样本数据拼接而成的输入样本数据,对所述待补全的代码字符串片段中的缺失字符进行预测,以确定所述目标代码

[0011]可选的,所述因果语言模型是基于第一损失函数对所述初始化模型进行微调获得的;
[0012]其中,所述注释样本数据和所述代码样本数据分别包括若干个
token
,所述第一损失函数针对每个所述
token
设置有权重,所述权重表征所述
token
的损失对所述初始化模型
的总损失的影响程度;所述注释样本数据中每个
token
的权重小于与所述注释样本数据对应的代码样本数据中每个
token
的权重

[0013]可选的,所述注释样本数据中每个
token
的权重为0,以使所述第一损失函数屏蔽所述注释样本数据

[0014]可选的,所述第一损失函数的公式为:
[0015][0016]其中,表示所述注释样本数据中第
i

token
的权重,表示所述注释样本数据中第
i

token
的真实标签,表示所述注释样本数据中第
i

token
的预测标签,
N
D
表示所述注释样本数据的
token
总数,表示所述代码样本数据中第
j

token
的权重,表示所述代码样本数据中第
j

token
的真实标签,表示所述代码样本数据中第
j

token
的预测标签,
N
C
表示所述代码样本数据的
token
总数

[0017]可选的,所述初始化模型为
GPT
模型或
OPT
模型

[0018]可选的,所述目标代码为函数级代码,所述函数级代码包括:函数名称

函数参数列表

函数的返回值类型和函数体

[0019]可选的,所述样本数据集包括第一样本数据集,所述第一样本数据集是基于静态语法检测工具对所述代码样本数据进行筛选后获得的,所述静态语法检测工具用于发现所述代码样本数据中的语法错误

[0020]可选的,所述样本数据集还包括第二样本数据集,所述第二样本数据集是基于数据清洗策略对所述注释样本数据进行过滤后获得的;
[0021]所述数据清洗策略至少包括以下任意一种:剔除所述注释样本数据中的重复序列

剔除所述注释样本数据中的无用字符

剔除内容长度小于第一阈值的所述注释样本数据

剔除内容长度大于第二阈值的注释样本数据

剔除内容为代码的注释样本数据

剔除内容为乱码字符的注释样本数据

剔除内容为无法识别的外文的注释样本数据和剔除内容为非自然语言的注释样本数据

[0022]可选的,所述样本数据集中,所述第一样本数据集的数据量与所述第二样本数据集的数据量之间的比值所在的数据区间为
[0023]可选的,所述样本数据集由所述第一样本数据集和所述第二样本数据集合并而成,所述样本数据集中包含第一函数级代码样本数据,所述第一函数级代码样本数据是基于数据分布调整策略对所述样本数据集中函数级代码的数量调整后获得的

[0024]可选的,所述数据分布调整策略的公式为:
[0025]N


1+int(log
M
N)
[0026]其中,
M
为大于1的实数,
N
表征调整前所述样本数据集中同种函数级代码的数量,
N'
表征调整后所述样本数据集中所述同种函数级代码的数量;所述同种函数级代码表征函数级代码的函数名称

函数参数列表

函数的返回值类型和函数体相同

[0027]在本公开实施方式的第二方面中,提供了一种基于生成式人工智能的代码补全装置,包括:
[0028]输入模块,用于将第一信息输入至经训练的代码补全模型中;
[0029]输出模块,用于由本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于生成式人工智能的代码补全方法,其特征在于,包括:将第一信息输入至经训练的代码补全模型中,由所述代码补全模型输出与所述第一信息对应的目标代码,所述目标代码用于实现预期的代码功能;其中,所述第一信息包括采用自然语言对所述代码功能进行描述的代码描述语句,和
/
或,待补全的代码字符串片段
。2.
根据权利要求1所述的方法,其特征在于,所述代码补全模型是基于样本数据集进行训练而获得的;其中,所述样本数据集包括:代码样本数据,以及对应于所述代码样本数据的注释样本数据
。3.
根据权利要求2所述的方法,其特征在于,所述代码补全模型是在经预训练的初始化模型的基础上,微调得到的因果语言模型;其中,所述因果语言模型用于根据所述代码样本数据和所述注释样本数据拼接而成的输入样本数据,对所述待补全的代码字符串片段中的缺失字符进行预测,以确定所述目标代码
。4.
根据权利要求3所述的方法,其特征在于,所述因果语言模型是基于第一损失函数对所述初始化模型进行微调获得的;其中,所述注释样本数据和所述代码样本数据分别包括若干个
token
,所述第一损失函数针对每个所述
token
设置有权重,所述权重表征所述
token
的损失对所述初始化模型的总损失的影响程度;所述注释样本数据中每个
token
的权重小于与所述注释样本数据对应的代码样本数据中每个
token
的权重
。5.
根据权利要求4所述的方法,其特征在于,所述注释样本数据中每个
token
的权重为0,以使所述第一损失函数屏蔽所述注释样本数据
。6.
根据权利要求4所述的方法,其特征在于,所述第一损失函数的公式为:其中,表示所述注释样本数据中第
...

【专利技术属性】
技术研发人员:林吴航袁威强胡光龙刘东李家诚沙雨辰
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1