一种基于大参数模型与小参数模型协同的代码生成系统及方法
本发明涉及软件工程,具体地指一种基于大参数模型与小参数模型协同的代码生成系统及方法。
背景技术:
1、随着人工智能技术的持续发展,大参数模型在软件工程领域的应用愈发广泛,尤其在代码生成、代码补全以及程序理解等核心场景中展现出优异的能力。然而,现有大参数模型虽然生成能力强,但其部署和使用成本高、响应延迟大,且将代码数据上传至云端处理存在数据安全与隐私保护风险。为缓解上述局限,现有技术提出了大参数模型与小参数模型相结合的协同处理方式,包括流水线式协作、并行推理、条件触发调用以及知识蒸馏等策略。然而,现有协同处理方式多为通用型模型协作机制,缺乏对代码生成任务自身特征和复杂程度的精细化分析,无法准确判断不同复杂度的任务适合由何种规模模型处理,导致资源利用效率低下。
技术实现思路
1、本发明的目的就是要提供一种基于大参数模型与小参数模型协同的代码生成系统及方法,本发明在保证代码生成质量的前提下,降低了大参数模型的调用频率,提升了响应效率,降低了部署成本。
2、为实现此目的,本发明所设计的一种基于大参数模型与小参数模型协同的代码生成系统,它包括:
3、任务标注模块用于通过小参数模型对训练集中的代码生成任务进行代码生成,根据生成结果是否满足预设的正确性要求对所述代码生成任务进行标注,得到任务复杂度标签;
4、特征提取模块用于对训练集中的代码生成任务的任务提示文本进行多维特征提取,将得到的专家特征和语义特征进行拼接,得到任务特征表示;
5、分类模型训练模块用于利用所述任务复杂度标签和所述任务特征表示,采用深度学习模型进行监督训练,得到任务复杂度分类模型;
6、模型调度模块用于根据待处理的代码生成任务的任务特征表示,通过所述任务复杂度分类模型进行预测,得到相应代码生成任务的任务复杂度判定结果,根据任务复杂度判定结果调用对应的小参数模型或大参数模型生成目标代码。
7、优选的,增量学习模块用于基于所述目标代码的代码质量指标和用户反馈,采集增量任务样本,结合记忆回放机制对所述任务复杂度分类模型进行增量更新。
8、优选的,得到任务复杂度标签的具体方法包括:
9、通过小参数模型对训练集中的代码生成任务进行代码生成,对生成结果进行自动化校验,若生成的代码满足预设的正确性要求,即生成的代码能够编译通过,且能够通过为相应代码生成任务预设的全部单元测试用例,将任务复杂度标签标注为由小参数模型完成的第一标签;若生成的代码不满足预设的正确性要求,将任务复杂度标签标注为由大参数模型完成的第二标签。
10、优选的,得到任务特征表示的具体过程包括:
11、对训练集中的代码生成任务的任务提示文本进行多维特征提取,所述多维特征包括专家特征和语义特征;其中,所述专家特征为通过自动化程序从任务提示文本中提取得到的专家特征向量,包括api调用数量、嵌套层级预估、参数类型多样性、关键词密度、句长方差、指令分句数、模糊词数量、约束词数量、核心意图数和条件逻辑数;所述语义特征为通过预训练代码语义模型对任务提示文本进行编码得到的语义特征向量;
12、对所述专家特征向量进行数值归一化处理得到处理后的低维专家特征向量,由全连接神经网络通过线性变换和非线性激活函数将低维专家特征向量升维至与所述语义特征向量相同的维度,得到高维专家特征向量,将高维专家特征向量与语义特征向量在特征维度上进行直接拼接,形成任务特征表示。
13、优选的,得到任务复杂度分类模型的具体方法包括:
14、利用所述任务复杂度标签和所述任务特征表示,构建训练数据集dtrain={(xi,litrain)∣i=1,2,…,n};
15、其中,xi表示第i个代码生成任务的任务特征表示,litrain表示第i个代码生成任务的任务复杂度标签,n表示代码生成任务的数量;
16、将所述训练数据集dtrain输入深度学习模型中,在训练过程中,设定损失函数,并通过反向传播算法和优化器计算梯度并更新深度学习模型内部的权重参数;通过最小化深度学习模型预测结果与真实标签之间的差异,使深度学习模型不断学习任务特征表示与任务复杂度标签之间的映射关系,持续迭代训练直至深度学习模型收敛,得到训练完成的任务复杂度分类模型。
17、优选的,根据待处理的代码生成任务的任务特征表示,通过所述任务复杂度分类模型进行预测,得到相应代码生成任务的任务复杂度判定结果,根据任务复杂度判定结果调用对应的小参数模型或大参数模型生成目标代码的具体过程包括:
18、对待处理的代码生成任务的任务提示文本进行多维特征提取,将得到的专家特征和语义特征进行拼接,得到对应的任务特征表示;将待处理的代码生成任务的任务特征表示输入至训练完成的任务复杂度分类模型,通过任务复杂度分类模型对所述任务特征表示进行前向传播计算,预测后获得相应代码生成任务的任务复杂度判定结果,若所述任务复杂度判定结果为第一判定结果,则待处理的代码生成任务由小参数模型完成,调用小参数模型生成待处理的代码生成任务的目标代码;若所述任务复杂度判定结果为第二判定结果,则待处理的代码生成任务由大参数模型完成,调用大参数模型生成待处理的代码生成任务的目标代码。
19、优选的,基于所述目标代码的代码质量指标和用户反馈,采集增量任务样本,结合记忆回放机制对所述任务复杂度分类模型进行增量更新的具体过程包括:
20、在代码生成任务完成后,基于所述目标代码的代码质量指标和用户反馈,筛选出有效的增量任务样本,对有效增量样本进行多维特征提取和任务复杂度标签复核,构建增量学习数据集;从所述训练集中抽取代表性历史任务样本构建记忆回放样本池;采用弹性权重固化算法锁定任务复杂度分类模型原有的核心权重参数,通过搭配低秩适配微调方式仅更新任务复杂度分类模型的局部参数,将增量任务样本与记忆回放样本混合后输入所述任务复杂度分类模型,使任务复杂度分类模型学习增量任务样本的特征分布,从而实现对任务复杂度分类模型的增量更新。
21、一种基于大参数模型与小参数模型协同的代码生成方法,它包括如下步骤:
22、通过小参数模型对训练集中的代码生成任务进行代码生成,根据生成结果是否满足预设的正确性要求对所述代码生成任务进行标注,得到任务复杂度标签;
23、对训练集中的代码生成任务的任务提示文本进行多维特征提取,将得到的专家特征和语义特征进行拼接,得到任务特征表示;
24、利用所述任务复杂度标签和所述任务特征表示,采用深度学习模型进行监督训练,得到任务复杂度分类模型;
25、根据待处理的代码生成任务的任务特征表示,通过所述任务复杂度分类模型进行预测,得到相应代码生成任务的任务复杂度判定结果,根据任务复杂度判定结果调用对应的小参数模型或大参数模型生成目标代码。
26、一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
27、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
28、本发明的有益效果:
29、本发明通过任务复杂度分类实现了大参数模型与小参数模型的协同调度,搭配针对任务复杂度分类的增量学习机制,能够充分发挥小参数模型的低成本和低延迟优势,同时保证大参数模型在复杂任务中的生成质量;本发明提高了代码生成响应效率,降低了云端高算力大参数模型的调用频率,有效缩减了部署与运行成本;本发明通过提供可量化、可预测的代码生成任务分类机制,结合增量学习实现任务复杂度分类模型的动态调优,提升了场景适配性,通过弹性权重固化与记忆回放的增量学习机制,提高了任务复杂度分类模型的稳定性与持续迭代优化能力,能够适配不断迭代的软件开发场景,实现对代码生成任务的智能分类、动态调度与持续优化。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com