程序翻译模型的获取方法、程序翻译方法和装置制造方法及图纸

技术编号:38938939 阅读:10 留言:0更新日期:2023-09-25 09:39
本申请提供了一种程序翻译模型的获取方法、程序翻译方法和装置,用于提高程序翻译准确性,降低人力物力投入。其中程序翻译模型的获取方法,包括:获取训练数据;其中,所述训练数据包括多个编程语言的代码字段;根据所述训练数据对大语言模型进行微调,获取程序翻译模型。程序翻译方法,包括:确定目标编程语言;将待翻译代码字段输入程序翻译模型,获取所述程序翻译模型输出的目标代码字段;其中,所述目标代码字段采用所述目标编程语言编写,所述目标代码字段与所述待翻译代码字段的含义一致,所述程序翻译模型为应用程序翻译模型的获取方法获得的模型。方法获得的模型。方法获得的模型。

【技术实现步骤摘要】
程序翻译模型的获取方法、程序翻译方法和装置


[0001]本申请涉及信息
,具体涉及一种程序翻译模型的获取方法、程序翻译方法和装置。

技术介绍

[0002]随着软件开发的高速发展,程序员们需要在各种编程语言之间进行频繁的代码转换。尽管现有的许多编程语言在设计上具有通用性,但它们在语法、结构和库支持方面可能存在显著差异。因此,人工在不同编程语言之间转换代码是一项耗时且容易出错的工作,研究人员尝试研发能够自动将一种编程语言转换为另一种编程语言的工具。
[0003]相关技术中的一些翻译工具,存在需要人工定义翻译规则、无法实现语义级别的翻译或者需要大量训练样本等问题,投入人力物力成本高,翻译效果不佳。因此,如何实现一种高效、便捷、以及低人力投入的编程语言翻译是当前需要解决的问题。

技术实现思路

[0004]本申请提供了一种程序翻译模型的获取方法、程序翻译方法和装置,能够实现便捷高效、以及低人力投入的编程语言翻译。
[0005]第一方面,本申请提供一种程序翻译模型的获取方法,包括:获取训练数据;其中,训练数据包括多个编程语言的代码字段;根据训练数据对大语言模型进行微调,获取程序翻译模型。
[0006]上述实施方式中,大语言模型已完成逻辑预训练,充分学习到文本中的语法规则、上下文关系、以及语义信息等关键特征,需要根据编程语言的代码字段等信息进行微调以实现编程语言的翻译。对训练数据要求低,人力投入少,且能够保证翻译效果,提升用户的使用体验。常见大语言模型均用于文字分析、图像识别等场景,不被认为能够处理编程语言转化,本实施例将不同编程语言的代码字段作为训练数据训练大语言模型,使得大语言模型具备转换代码的功能,从而够实现便捷高效、以及低人力投入的编程语言翻译。
[0007]可选地,训练数据包括第一参数,根据训练数据对大语言模型进行微调之前,方法还包括:对第一参数执行注意力处理;其中,第一参数包括以下参数中的至少一个:多个编程语言的编程范式、多个编程语言的非标准语法和多个编程语言的库调用;根据训练数据对大语言模型进行微调,获取程序翻译模型,包括:根据训练数据对大语言模型进行微调,获取预训练模型;根据第一参数对预训练模型进行微调,获取程序翻译模型。
[0008]该实施例中,实现编程范式、非标准语法、库调用等第一参数在不同编程语言之间的转化更复杂,在微调过程进行针对性训练会提高程序翻译模型的翻译准确度。例如在完整训练数据经过一次微调后,再根据第一参数对第一次微调的结果进行训练,最终得到程序翻译模型,此时的程序翻译模型对第一参数进行了针对性训练,能够提升翻译准确度。
[0009]可选地,对第一参数执行注意力处理,包括:对第一参数进行数据增强。
[0010]该实施例中,第一参数在训练数据中占比较小,所以需要针对性训练时,可以在训
练数据中对这些数据的样本进行扩充,比如采用数据增强的方式增加第一参数的样本数量,提高微调过程中对第一参数的学习程度,保证程序翻译模型的翻译准确性和鲁棒性,降低转换错误的可能性。
[0011]可选地,训练数据包括第一参数,根据训练数据对大语言模型进行微调之前,方法还包括:提高微调的损失函数中第一参数的权重。
[0012]该实施例中,通过调整微调过程的损失函数,使得程序翻译模型对第一参数进行针对性训练,克服了第一参数对翻译结果影响较大但在训练数据中占比较小,导致翻译结果不准确的问题。
[0013]第二方面,本申请提供了一种程序翻译方法,包括:确定目标编程语言;将待翻译代码字段输入程序翻译模型,获取程序翻译模型输出的目标代码字段;其中,目标代码字段采用目标编程语言编写,目标代码字段与待翻译代码字段的含义一致,程序翻译模型为应用前述的方法获得的模型。
[0014]该实施例中,采用前述程序翻译模型,实现待翻译代码字段到目标代码字段的转化,降低翻译过程中的人力投入,保证翻译的效率和准确度。
[0015]可选地,将待翻译代码字段输入程序翻译模型之前,还包括:获取待翻译代码字段的语义参数,语义参数包括以下参数中的至少一个:代码结构、变量名、函数名或库调用,语义参数用于辅助程序翻译模型完成程序翻译;将待翻译代码字段输入程序翻译模型,包括:将语义参数和待翻译代码字段输入程序翻译模型
[0016]该实施例将语义参数一同输入程序翻译模型,程序翻译模型经语义参数指引能够提高程序翻译准确性,减少分析过程。
[0017]该实施例中,提供指导性信息对程序翻译模型的翻译过程进行优化。例如,对待翻译代码字段进行深度语法分析,提取出包括代码结构、变量名、函数名和库调用等语义参数信息,然后将这些语义参数与待翻译代码字段一起输入程序翻译模型。程序翻译模型在执行翻译任务时,可参考相关语义参数,减少分析步骤或者降低出错概率,提高翻译效率,产生更优质的翻译结果,保证用户体验。
[0018]可选地,获取待翻译代码字段的语义参数,包括:在待翻译代码字段的长度小于第一阈值的情况下,获取待翻译代码字段的语义参数。
[0019]该实施例中,设置第一阈值用于衡量代码字段的长度。仅对代码字段的长度小于第一阈值的待翻译代码字段进行语义参数的提取,避免语义提取阶段需要处理的数据量过大,占用过多计算资源等情况;保证程序翻译模型对于计算资源使用的优先级,从而提高了程序翻译模型的翻译效果。
[0020]可选地,将待翻译代码字段输入程序翻译模型,包括:在待翻译代码字段的长度大于或等于第一阈值的情况下,将待翻译代码字段输入程序翻译模型。
[0021]在待翻译代码字段的长度不小于第一阈值的情况下,程序翻译模型自身需要程序翻译模型处理的数据量大,提取到的语义参数也更多,若加上额外的语义参数信息,需要程序翻译模型处理的数据量会更大,不可避免会存在冗余数据占用程序翻译模型计算资源的情况;同时,输入数据多会导致程序翻译模型的翻译过程出错概率高,影响翻译准确性,降低翻译效率。
[0022]本实施方式中,对于较长的代码字段,仅将待翻译代码字段输入程序翻译模型进
行处理,可以提高翻译效率。
[0023]第三方面,提供了一种装置,包括用于执行第一方面或第二方面中任一种方法的单元。该装置可以是终端设备,也可以是终端设备内的芯片。该装置可以包括输入单元和处理单元。
[0024]当该装置是终端设备时,该处理单元可以是处理器,该输入单元可以是触控屏、键盘、鼠标或其他输入设备;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面或第二方面中的任一种方法。
[0025]当该装置是终端设备内的芯片时,该处理单元可以是芯片内部的处理单元,该输入单元可以是输入/输出接口、管脚或电路等;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种程序翻译模型的获取方法,其特征在于,包括:获取训练数据;其中,所述训练数据包括多个编程语言的代码字段;根据所述训练数据对大语言模型进行微调,获取程序翻译模型。2.根据权利要求1所述的方法,其特征在于,所述训练数据包括第一参数,所述根据所述训练数据对大语言模型进行微调之前,所述方法还包括:对所述第一参数执行注意力处理;其中,所述第一参数包括以下参数中的至少一个:所述多个编程语言的编程范式、所述多个编程语言的非标准语法和所述多个编程语言的库调用;所述根据所述训练数据对大语言模型进行微调,获取程序翻译模型,包括:根据所述训练数据对所述大语言模型进行微调,获取预训练模型;根据所述第一参数对所述预训练模型进行微调,获取所述程序翻译模型。3.根据权利要求2所述的方法,其特征在于,所述对所述第一参数执行注意力处理,包括:对所述第一参数进行数据增强。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述训练数据包括第一参数,所述根据所述训练数据对大语言模型进行微调之前,所述方法还包括:提高微调的损失函数中所述第一参数的权重。5.一种程序翻译方法,其特征在于,包括:确定目标编程语言;将待翻译代码字段输入程序翻译模型,获取所述程序翻译模型输出的目标代码字段;其中,所述目标代码字段采用所述目标编程语言编写,所述目标代码字段与所述待翻译代码字段的含义一致,所述程序翻译模型为应用权利要求1至4中任一...

【专利技术属性】
技术研发人员:胡云齐李鉴庭
申请(专利权)人:深圳派氪司科技有限公司
类型:发明
国别省市:

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

1