1、代码大模型评测方法与实践王一男|2024.05.24目 录1.代码大模型评测方法介绍2.代码大模型评测数据集制作流程3.代码大模型评测反馈闭环实践C O N T E N T S王一男腾讯|研发效能产品专家腾讯智能化软件工程数据与评测团队负责人。曾任百度工程效能部产品负责人,开源中国产品总监。北京航空航天大学软件工程本科、硕士。致力于通过设计软件研发效率工具,推动软件工程实践落地来提升组织的研发效能。曾主笔制定企业软件工程规范,主导多个企业级研发效能平台的规划设计与系统开发。腾讯代码智能化产品:工蜂Copilot主屏(写代码模式)侧屏(Chat模式)使用混元代码大模型主屏(写代码模式)l代码补全
2、l代码生成侧屏(Chat模式)l原生能力l计算机知识问答l代码漏洞、缺陷检测和修复l代码优化l单测代码生成l通用代码生成ltRPC领域代码生成比较多种模型迭代优化腾讯代码智能化产品:工蜂Copilot AI评审工蜂Copilot AICR代码大模型评测方法全面评测准确评测快速评测模型评测用户问题人工评测 代码大模型综合能力评测5档评分档位+权重计算总分参考标准答案1题3人评测,计算Agreement自动化评测代码生成场景评测数据集:HumanEval/HumanEval-0-Shot/T-HumanEval提示语(问题)单元测试 OpenAI 为了评测Codex模型而构造的评测数据集 164个
3、问题 Python语言(HumanEval X 支持5种语言)每个task(case)包含提示语、规范的解决方案、单元测试、文字说明、函数声明、单元测试样例 单元测试用例平均7.7个/每问题代码生成场景评测结果(Pass1)自动化评测代码补全场景评测方法:评测方法:1.在一段评测代码中掩盖在一段评测代码中掩盖X%行的代码后,作为行的代码后,作为prompt输入模型输入模型2.模型返回代码中取第一行,与1中的prompt组成新的prompt继续输入模型3.重复第重复第2步,直到模型将代码补全完成步,直到模型将代码补全完成4.将第3步补全完成的代码,执行单元测试,计算Pass1自动化评测代码补全场
4、景评测结果(Pass1)(CC_MBXP)自动化评测测试生成场景评测方法:评测方法:1.指标采用单测正确率和覆盖率2.采用humaneval数据集为基础,提供正确的目标函数代码,由模型生成相应的单测,然后计算单测覆盖率和正确性提示语:/According to the code,generate a unit test function that can be run directly,and the coverage rate is required to be as high as possibleprompt=提示语+test_set_up+code_solution+单测函数声明标准测
5、试函数通过率=(模型生成的测试函数中所有测试用例全部执行通过,且该测试函数的覆盖率达到80%以上)/总数Humaneval_UT数据集PythonJavaC+Go模型覆盖率正确率正确覆盖率标准测试函数通过率(80%)覆盖率正确率正确覆盖率标准测试函数通过率(80%)覆盖率正确率正确覆盖率标准测试函数通过率(80%)覆盖率正确率正确覆盖率标准测试函数通过率(80%)starchat(23年年9月月)(t0.1)78.88%15.24%98.00%14.63%24.42%6.10%94.50%5.49%44.47%10.98%97.41%10.37%69.03%14.02%89.94%11.59%
6、github copilot chat(23年年11月月)(t0.2)87.75%49.39%99.00%48.17%87.21%54.27%99.32%53.66%92.11%57.32%99.77%57.32%88.54%46.34%99.23%45.73%starchat-sft(t0.1)*prompt不加测试函数声明不加测试函数声明*prompt增加测试函数声明增加测试函数声明85.77%23.17%99.08%23.17%55.38%*47.35%*12.80%*28.66%*85.32%*36.07%*9.15%*8.54%*76.55%33.54%93.54%28.66%74.