HardTests:为LLM编码合成高质量测试用例

发表
Kexun ZhangKexun Zhang 提交
作者: Zhongmou He, Yee Man Choi, Kexun Zhang, Jiabao Ji, AntonioJunting Zhou, Dejia Xu, Ivan Bercovich, Aidan Zhang, Lei Li

摘要

验证器在大型语言模型(LLM)推理中扮演着关键角色,是强化学习等训练后技术所必需的。然而,对于困难的编码问题,可靠的验证器很难获得,因为一个伪装良好的错误解决方案可能只能通过人工精心编写且难以合成的边缘案例来检测。为解决此问题,我们提出了HARDTESTGEN,这是一个使用LLM进行高质量测试合成的流水线。通过这个流水线,我们整理了一个包含4.7万个问题和高质量合成测试的综合性竞赛编程数据集HARDTESTS。与现有测试相比,HARDTESTGEN测试在评估LLM生成的代码时,精确度高出11.3个百分点,召回率高出17.5个百分点。对于更困难的问题,精确度的提升可高达40个百分点。HARDTESTS在模型训练方面也证明了其更有效性,其衡量标准是下游代码生成性能。我们将在https://leililab.github.io/HardTests/开源我们的数据集和合成流水线。
查看 arXiv 页面查看 PDF
HardTests:为LLM编码合成高质量测试用例

评论

Kexun ZhangKexun Zhang
论文提交者

查看示例和结果:https://leililab.github.io/HardTests/

RLVR 不仅仅关乎强化学习 (RL),它更关乎虚拟现实 (VR)!

特别是对于大型语言模型 (LLM) 编程,好的验证器(测试)难以获得!

在我们最新的工作中,我们提出了 3 个问题:当前的测试有多好?我们如何获得更好的测试?测试质量有多重要?

当前的测试很糟糕。其中一些太容易破坏低效的程序。另一些缺乏针对程序输出的特殊判断功能,将正确的程序误判为错误的。综合起来,它们产生了大量的假阳性/阴性。那么我们该怎么办?

我们提出了 HardTestGen,这是一个基于 LLM 的测试合成流程,它能让你获得比人们常用的(例如 TACO)好得多的测试。在此基础上,我们整理了一个包含 4.7 万个竞赛问题和高质量测试的问题集。但你为什么要关心这些呢?

我们在 3 种场景——教师蒸馏、自我蒸馏和强化学习——中进行了训练后实验,以研究高质量测试何时重要。结果表明,对于教师蒸馏,它们并不重要。然而,对于自我蒸馏和强化学习,它们非常重要。

我们的问题集现已在 https://huggingface.co/datasets/sigcp/hardtests_problems 上提供,合成代码和合成测试即将推出。