【技术实现步骤摘要】
一种基于生成式预训练的代码标准化方法
[0001]本专利技术涉及代码审核领域,尤其涉及一种基于生成式预训练的代码标准化方法。
技术介绍
[0002]应用系统和软件产品研发过程中,通常会制定编程规范来约束开发人员的编程风格、实现方式来统一程序风格,便于维护和扩展,提升项目交付质量。在公开的《阿里巴巴Java开发手册》中,分为编程规约、异常日志、MySQL规约、工程规约、安全规约五部分,来约束Java程序语言的开发规范,帮助开发团队在开发上更高效、容错、有协作性,提高代码质量,降低项目维护成本。
[0003]此外,在软件研发与实际业务领域结合时,通常还会基于统一数据字典、统一报文格式、统一日志格式、统一字节码等规范来提升系统的标准化和一致性。因此,编程开发规范与标准的遵守和高效检验必不可少。
[0004]除人工代码审核方式之外,现有方案主要使用Checkstyle、PMD等静态扫描工具进行代码规范性检查。静态扫描工具是在不运行代码的方式下,通过词法分析、语法分析、控制流、数据分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标。
[0005]静态代码扫描以一种标准化、自动化的方式,自动发现代码中存在的合规风险,帮助开发人员更专注于分析和解决代码设计缺陷,快速定位代码隐藏错误和缺陷,从而保障程序交付质量。
[0006]静态代码扫描是对已编写完成的代码进行标准规范检查,并标注不符合标准规范和具有问题隐患的程序,为事后性检查,无法在编码阶段给出合规标准推荐。 />[0007]静态代码扫描对于大部分检查出的问题无法给出修改建议,需要开发人员自行进行代码修改。
技术实现思路
[0008]鉴于上述问题,提出了本专利技术以便提供克服上述问题或者至少部分地解决上述问题的一种基于生成式预训练的代码标准化方法。
[0009]根据本专利技术的一个方面,提供了一种基于生成式预训练的代码标准化方法,所述代码标准化方法包括:
[0010]预训练代码;
[0011]规范代码微调;
[0012]代码规范检查与修改建议。
[0013]可选的,所述预训练代码具体包括:
[0014]部署GPT模型引擎,以开源代码和自有代码对GPT模型进行预训练。
[0015]可选的,所述规范代码微调具体包括:
[0016]GPT模型预训练完成后,使用经过人工评审或静态扫描工具检查通过、符合编程规
范与标准的代码对模型进行微调,使模型对编程规范合规代码的文本特征具备泛化能力。
[0017]可选的,所述代码规范检查与修改建议具体包括:
[0018]编码过程中,开发人员对于完成的代码或方法函数,可作为问题输入到GPT模型,模型给出检查的问题清单,并通过生成和匹配修复建议,作为输出结果,提供给开发人员。
[0019]本专利技术提供的一种基于生成式预训练的代码标准化方法,采取生成式预训练文本处理模型,通过开源代码和自有代码进行模型预训练,并基于符合编程规范的代码进行模型微调,使模型可以对输入的代码进行代码规范性检查并给出修改建议,提升应用代码对于编程规范和开发标准的符合度,并解决静态代码扫描方式存在的事后性、被动性的不足。
[0020]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0021]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0022]图1为本专利技术实施例提供的预训练代码流程图;
[0023]图2为本专利技术实施例提供的规范代码微调流程图;
[0024]图3为本专利技术实施例提供的代码规范检查与修改建议的流程图。
具体实施方式
[0025]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0026]本专利技术的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
[0027]下面结合附图和实施例,对本专利技术的技术方案做进一步的详细描述。
[0028]本专利技术技术方案通过部署GPT模型引擎,基于开源代码和自有代码进行训练,并通过符合编程规范的自有代码对模型进行微调,使模型可以提供开发和Bug修复建议,并对代码进行编程规范和开发标准合规检测,给出修复建议。
[0029]如图1所示,代码预训练:部署GPT模型引擎(Transformer),以开源代码和自有代码对GPT模型进行预训练。
[0030]如图2所示,规范代码微调(Fine
‑
Tune):GPT模型预训练完成后,使用经过人工评审(CodeReview)或静态扫描工具检查通过、符合编程规范与标准的代码对模型进行微调(Fine
‑
Tune),使模型对编程规范合规代码的文本特征具备泛化能力。
[0031]如图3所示,代码规范检查与修改建议:编码过程中,开发人员对于完成的代码或方法函数,可作为问题输入到GPT模型,模型给出检查的问题清单,并通过生成和匹配修复
建议,作为输出结果,提供给开发人员。
[0032]本专利技术采取生成式预训练文本处理模型,通过开源代码和自有代码进行模型预训练,并基于符合编程规范的代码进行模型微调,使模型可以对输入的代码进行代码规范性检查并给出修改建议,提升应用代码对于编程规范和开发标准的符合度,并解决静态代码扫描方式存在的事后性、被动性的不足。
[0033]有益效果:采用生成式预训练和微调方式,使模型对编程规范合规代码的文本特征具备泛化能力。
[0034]模型给出代码检查的问题清单,并针对问题代码给出修复建议,进一步提升开发效率。
[0035]以上的具体实施方式,对本专利技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本专利技术的具体实施方式而已,并不用于限定本专利技术的保护范围,凡在本专利技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。
本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于生成式预训练的代码标准化方法,其特征在于,所述代码标准化方法包括:预训练代码;规范代码微调;代码规范检查与修改建议。2.根据权利要求1所述的一种基于生成式预训练的代码标准化方法,其特征在于,所述预训练代码具体包括:部署GPT模型引擎,以开源代码和自有代码对GPT模型进行预训练。3.根据权利要求1所述的一种基于生成式预训练的代码标准化方法,其特征在于,所述规范代码微调具体包括:GPT模型预训练完成...
【专利技术属性】
技术研发人员:刘梦雯,
申请(专利权)人:北银金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。