A Code Comprehension Benchmark for Large Language Models for Code
文章主要内容总结本文聚焦于大型语言模型(LLMs)的代码理解能力,指出尽管LLMs在代码生成、补全等任务中表现出色(得益于大规模代码数据训练及下一个token预测的预训练目标),但它们往往仅学习到代码的表层句法模式,缺乏对代码语义的深层理解,导致在代码调试、优化等需语义理解的任务中表现不佳。为解决这一问题,研究提出通过在大规模数据集上针对代码理解任务微调模型,以增强其对代码语义的稳健理解。研究评估了三个不同规模(80亿至320亿参数)的代码模型(QWQ-32B、Codestral-22B、Granite-8B)在一系列代码理解任务上的表现,这些任务旨在评估超越表层句法匹配的语义理解能力,包括主观评分任务(SGT)、代码问答任务(QAT)、代码搜索任务(CST)、测试用例任务(TCT)、bug修复任务(BFT)和代码比较任务(CCT)等。实验结果显示,微调后模型性能显著提升:QWQ-32B在主观评分任务上的准确率从70%提升至83.47%;经DPO微调的Codestral-22B在该任务上达到87.66%的微准确率,表现最佳。整体而言,微调能持续提升不同规模模型的代码理解能力。文章创新点提出综合代码理解基准测试套件:涵盖主观评分、问答、代码搜索等多类任务,全面评估模型对代码语义、结构及功能的深层理解,而非仅关注表层句法正确性。引入新数据集:提出CS101-Gold数据集(源自IIT Bombay的CS101课程),用于主观评分任务,包含27个编程问题、210个评分标准、3725份提交及27699个数据点,支持细粒