本文是LLM系列文章,针对《CODEJUDGE : Evaluating Code Generation with Large Language
Models》的翻译。
CODEJUDGE:使用大型语言模型评估代码生成
摘要
大型语言模型(LLM)在代码生成方面表现出了良好的性能。然而,如何可靠地评估LLM生成的代码仍然是一个未解决的问题。本文介绍了CODEJUDGE,这是一个代码评估框架,它利用LLM来评估生成代码的语义正确性,而不需要测试用例。我们研究了不同的方法来指导LLM进行“慢思维”,以获得深入可靠的评估。我们在四个代码生成数据集和五种编程语言上用四个LLM作为评估器进行了实验。结果表明,在大多数情况下,CODEJUDGE的表现明显优于现有方法。此外,与基于SOTA GPT-3.5的代码评估方法相比,即使使用更小的模型Llama-3-8B-Instruct,CODEJUDGE也能获得更好的结果。我们的代码和数据集可以在GitHub上找到https://github.com/VichyTong/CodeJudge.
1 引言
人们对利用大型语言模型(LLM)生成代码越来越感兴趣。然而,在代码生成任务上可靠地评估LLM仍然是一个具有挑战性的问题。基于测试的方法,如测量pass@k,依靠手动编写的测试用例来评估代码质量。这种依赖性带来了显著的局限性,因为许多任务没有测试用例,或者只有不充分的测试用例,错过了关键用例。此外,为许多编码任务(如对象序列化和web抓取)编写测试用例是具有挑战性的,因为它们需要大量的精力来构建和配置测试存根和模拟对象。
当没有测试用例时,现有的工作通常依赖于基于token的指标,如BLEU、ROUGE-L和CodeBLEU,来评估模型生成的代码。然而,这些指标并没有考虑到模型生成的代码在语义上与基本事实
订阅专栏 解锁全文
321



被折叠的 条评论
为什么被折叠?



