CN116166271B 代码生成方法、装置、存储介质及电子设备 (抖音视界有限公司)_第1页
CN116166271B 代码生成方法、装置、存储介质及电子设备 (抖音视界有限公司)_第2页
CN116166271B 代码生成方法、装置、存储介质及电子设备 (抖音视界有限公司)_第3页
CN116166271B 代码生成方法、装置、存储介质及电子设备 (抖音视界有限公司)_第4页
CN116166271B 代码生成方法、装置、存储介质及电子设备 (抖音视界有限公司)_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

介质及电子设备,以提高自动生成代码的准确文本包括待补充的程序代码文本或用于描述代任务用于所述代码生成模型学习样本程序代码所述代码生成模型学习基于所述样本程序代码2获取目标文本,所述目标文本包括待补充的程序代码文本或用将所述目标文本输入代码生成模型,得到基于所述目标文本生成的述代码生成模型学习基于所述样本程序代码生成新的所述代码生成模型包括代码理解层、代码生成层和共享表示层,所在所述分词序列中随机选取第一预设比例的第一目标分词在所述分词序列中随机选取第二预设比例的第二目标分词在所述分词序列中确定用于表征函数名的函数分词,在所述分词序列中确定用于表征接口名的接口分词,针对所述特征向量序列中的每个特征向量,通过所述共享表示层针对每个所述中间特征向量,通过所述代码理解层根据除所3确定所述样本程序代码对应的特征向量序列,其中所述特征向量序列包括N个特征向针对所述特征向量序列中的第i个特征向量,通过所述共享表示层根据所述特征向量针对第i个所述中间特征向量,通过所述代码生成层根据前序特征向量和注意力机制将所述训练数据集中每个所述代码文件对应的程序代码确定为样基于所述目标文本确定一预测单词,并将所述预测单词作为初将所述目标单词拼接在所述目标文本对应的分词序列中,得到目标述目标分词序列确定多个候选预测单词以及每一所述候选预测单词在预设词表中的概率,分词序列的长度达到预设长度或者所述目标单词为预设获取模块,用于获取目标文本,所述目标文本为待补充的生成模块,用于将所述目标文本输入代码生成模型,4装置执行时实现权利要求1_7中任一项所述5[0006]将所述目标文本输入代码生成模型,得到基于所述目标文本生成的目标程序代于所述代码生成模型学习基于所述样本程序代码生成新程序被处理装置执行时实现第一方面中所述6[0019]图3是根据本公开一示例性实施例示出的一种代码生成方法中代码生成模型的示[0021]图5是根据本公开一示例性实施例示出的一种代码生成方法中掩码矩阵的示意[0026]应当理解,本公开的方法实施方式中记载的各个步骤可义将在下文描述中给出。[0029]本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性7[0037]图1是根据本公开一示例性实施例示出的一种代码生成方[0039]步骤102,将目标文本输入代码生成模型,得到基于目标文本生成的目标程序代8代码生成模型在应用阶段可以有效地捕获目标文本中的语法和语义知识以增强代码生成码文件加入训练数据集;当代码文件平均每行代码的字符数小于或等于第一预设阈值时,将代码文件加入训练数据集;当代码文件中注释信息的字符数小于或等于第二预设阈值开实施例对此不作限定。比如,预设字符比例可以设定为40第一预设阈值可以设定为[0046]例如,参照图2,首先,依次从代码数据集中遍历代码文件并计算文件的MD5字符)的比率和代码文件中平均每行的字符数。如果代码文件中字符数占符号总数的占比值低于40%或者代码文件中平均每行的字符数超过100,则可以认为这是包含较多噪声的代码文件中字符数占符号总数的占比值高于等于40%或者代码文件中平均每行的字符数9token为单位随机选择分词序列中15%的token,然后将选择出的token中80%的token(即码处理的函数名和API名称,从而让模型学习函数名与函数体的对应关系以及应用程序接[0062]经过词嵌入层后的序列输入共享表示层进行编码。共享表示层可以由多个transformer基本块(transformerblock)堆叠而成,每个基本块由多头注意力子层和前向[0072]h"=max(0h"w+b1)w2+bz(5)子层的参数,b1和b2为相应的偏置。应当理解的是,具体计算过程可以参照相关技术中单词属于词表中不同单词的概率predf,再将该概率经过softmax函数进行计算得到归一化表示层根据所述特征向量序列中位于第i个特征向量前后的所有特征向量和注意力机制进[0091]其中,通过共享表示层根据特征向量序列中位于第i个特征向量前后的所有特征层根据前序特征向量和注意力机制进行计算,相当于是代码生成层进行了单向注意力计多个transformer基本块构成,区别点在于代码理解子网络采用和共享表示层相同的双向[0095]应当理解的是,代码生成任务子网络的其他计算过程可以参照相关技术中原生g可以将在代码生成子网络中计算得到的每个单词的特征输出经过第二线性变换层后得到每个单词属于词表中不同单词的概率pred?,并经过softmax函数计算后得到其属于词表g代码生成任务,比如在第一轮迭代中先执行代码理解任务通过L1损失函数值对模型训练,gggg[0108]在一些实施例中,在步骤4中可以选择概率最大的分词作为目标预测分词进行输出。或者,在一些实施例中,为了增加输出的目标预测分词的多样性,可以通过核采样p候选集合中所有候选预测单词的概率和大于预设概率p,然后对候选集合V中的所有候选p码理解任务可以让模型学习恢复经掩码处理的函数名和API名称,从而学习函数名与函数型可以基于待补充的程序代码文本或用于描述代码功能的自然语言文本输出更准确的目代码生成任务用于所述代码生成模型学习基于所述样本程序代码生成新的程序代码的过表示层输出的结果用于输入所述代码理解层或所述代码生成层,所述装置700还包括训练[0136]确定所述样本程序代码对应的特征向量序列,其中所述特征向量序列包括N个特[0137]针对所述特征向量序列中的第i个特征向量,通过所述共享表示层根据所述特征[0138]针对第i个所述中间特征向量,通过所述代码生成层根据前序特征向量和注意力[0143]将所述目标代码数据集中每个所述代码文件对应的程序代码确定为样本程序代于所述目标分词序列确定多个候选预测单词以及每一所述候选预测单词在预设词表中的述目标分词序列的长度达到预设长度或者所述目标单词为预设结束[0153]下面参考图8,其示出了适于用来实现本公开实施例的电子设备800的结构示意[0154]如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)800操作所需的各种程序和数据。处理装置801、ROM802以及RAM803通过总线804彼此相809可以允许电子设备800与其他设备进行无线或有线通信以交换数据。虽然图8示出了具传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或[0161]可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、[0164]本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例[0168]尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应面所描述的特定特征和动作仅仅是实现权利要求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论