针对源代码生成器的译码活动任务(CAT)评估的制作方法

背景技术:
1、人工智能(ai)中的进步,特别是在使用深度学习来产生类人文本的自回归大语言模型中,已经使得针对开发人员生成软件源代码并提高生产力的新应用(例如,代码生成器)成为可能。例如,已经使用大语言模型架构被训练的代码生成模型(代码生成器)能够获取函数的描述(以及任何附加上下文,例如,周围函数或文件),并编写多行代码以执行该函数。不幸的是,由于缺乏经验证的度量和经标记数据的成本,对代码生成器系统进行评估是有挑战性的。
2、当前评估方案依赖于所生成的代码与基准事实(例如,由人类编写的先前现有代码)之间的相似性,并没有捕获功能等效性、正确性或复杂度(例如,认知困难或计算复杂度)的概念,因此不是以人为中心的度量。依赖于通过/失败功能测试的当前评估方案要求执行(具有安全启示)并且具有过粗的粒度(例如,完整功能),因此没有提供对在几乎正确的结果(例如,数十行中仅有一行是出错的)和大量错误之间进行区分所需要的洞察。测量所生成的函数的接受度或存活率的其他当前评估方案更以人为中心,但也未能捕获功能等效性、正确性或复杂度的概念。因此,选择性能良好的代码生成器和改进代码生成器池的机器学习(ml)训练两者仍然是耗时且昂贵的。
技术实现思路
1、下面参考以下列出的附图,详细描述本公开的示例。以下
技术实现要素:
被提供以说明本文公开的一些示例。然而,这并不意味着将所有示例限于任何特定配置或操作序列。
2、用于评估源代码生成器的解决方案包括:由处理器将软件代码的多个输入段中的每个输入段分离成多个构成块;针对每个多个构成块中的至少一个构成块,利用第一多个代码生成器中的每个代码生成器生成等效块,从而产生与每个代码生成器对应的多个等效块;对于每个代码生成器,针对与代码生成器对应的多个等效块中的每个等效块,确定第一译码分数;针对每个代码生成器,跨与代码生成器对应的多个等效块将第一译码分数聚合成针对代码生成器的第一聚合分数;至少基于针对第一多个代码生成器的第一聚合分数的排名,从第一多个代码生成器中选择第二多个代码生成器,该第二多个代码生成器具有比第一多个代码生成器更小的计数;以及利用第二多个代码生成器中的每个代码生成器生成软件代码的输出段。
技术特征:
1.一种系统,包括:
2.根据权利要求1所述的系统,其中所述指令还能操作用以:
3.根据权利要求1所述的系统,其中确定所述第一译码分数包括:
4.根据权利要求3所述的系统,其中确定所述测试结果包括:
5.根据权利要求3所述的系统,其中确定所述第一译码分数还包括:
6.一种方法,包括:
7.根据权利要求6所述的方法,还包括:
8.根据权利要求6所述的方法,其中确定所述第一译码分数包括:
9.根据权利要求8所述的方法,其中确定所述测试结果包括:
10.根据权利要求8所述的方法,其中确定所述第一译码分数还包括:
11.一个或多个计算机存储设备,其上存储有计算机可执行指令,所述计算机可执行指令在由计算机执行时,使所述计算机执行操作,所述操作包括:
12.根据权利要求11所述的一个或多个计算机存储设备,其中所述操作还包括:
13.根据权利要求11所述的一个或多个计算机存储设备,其中确定所述第一译码分数包括:
14.根据权利要求13所述的一个或多个计算机存储设备,其中确定所述测试结果包括:
15.根据权利要求13所述的一个或多个计算机存储设备,其中确定所述第一译码分数还包括:
技术总结
用于评估源代码生成器的解决方案使用离线和在线评估阶段。离线评估包括将软件代码的多个输入段中的每个输入段分离成多个构成块。(多个代码生成器中的)每个代码生成器生成与每个构成块对应的等效块。(对于每个代码生成器)译码分数针对每个等效块被确定,并且该译码分数跨等效块被聚合,以针对每个代码生成器提供聚合分数。聚合分数的排名被用于针对在线评估筛选更少数目的代码生成器。对于该阶段,代码生成器输出软件代码的段,并且代码生成器的输出的用户接受可以被用于进一步的排名和筛选。一些示例根据针对其生成等效块的构成块的代码效用评估来加权译码分数。
技术研发人员:V·C·迪比亚,A·福尼,F·普尔萨布齐·桑德赫,S·A·阿米尔希
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:
技术公布日:2024/12/2
技术研发人员:V·C·迪比亚,A·福尼,F·普尔萨布齐·桑德赫,S·A·阿米尔希
技术所有人:微软技术许可有限责任公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
