研究背景与意义 - 大型语言模型正朝着通用人工智能目标发展,测试其生成问题的能力变得越来越重要,尤其是在高级编程任务中的应用 [1] - 为编程竞赛出题需要比解决问题更深刻的算法理解,能评估对底层算法设计原则、数据结构和复杂性权衡的更深层次理解 [2] - 更好的出题能力将带来更严谨的竞赛编程基准测试,现有测试数据集可能存在高误报率和高漏报率的问题 [2] - 成功提出新颖挑战可为模型自我完善和通用人工智能铺平道路,同时验证模型在复杂软件栈中的部署情况 [3] AutoCode框架概述 - AutoCode是一个系统性框架,可在闭环多角色系统中使用大型语言模型,自动化竞赛编程问题创建和评估的整个生命周期 [3] - 该框架由来自十个机构的研究者共同开发,包含5位共同一作,作者名单中包括谢赛宁等著名研究者 [5] - 框架核心是一个增强的验证器-生成器-检查器框架,在测试用例生成方面实现了最先进的可靠性 [6] - 框架还包括用于生成高质量新问题的创新过程,该过程从"种子问题"开始,在有前景的方向上启发大型语言模型 [6] 测试用例生成技术 - 验证器是系统基石,功能是确保任何给定输入都严格遵守问题描述中指定的所有约束,对于最小化漏报率至关重要 [5] - 生成器采用多样化的策略创建广泛的输入,旨在减少误报率,生成器产生的任何无效案例都会被验证器过滤掉 [8] - 检查器通过将参赛者输出与参考解法输出进行比较来评估参赛者,对于交互式任务,交互器会与参赛者程序进行多轮对话 [9][10] - 团队特别关注降低误报率,将测试用例与测试数据区分开来,后者还包括评估所需的检查器和交互器程序 [11] 基准测试与性能评估 - 主要基准包含7538个问题,来源于著名现有数据集的交集:CodeContests+、CodeContests、HardTests和TACO [14] - 第二个基准包含720个来自Codeforces的近期有评分比赛问题,是完全未经过滤的,包括难以处理的交互式问题 [16] - 在7538个问题的基准上,AutoCode与官方判决的一致性达到91.1%,误报率大幅降低至3.7%,漏报率降低至14.1% [16] - 在更具挑战性的720个Codeforces问题基准上,AutoCode实现了98.7%的一致性,验证了方法在现代困难问题上的有效性 [19] 问题生成能力 - 问题生成框架建立在稳健测试生成框架之上,引入关键的双重验证协议以确保在没有人工干预的情况下实现正确性 [23] - 方法是通过增、删、改"种子问题"的某些条件来生成新问题,同时提供高效参考解法和暴力解法 [23] - 利用暴力解法为高效解法提供可靠的事实标准,实现自动化正确性校验,将参考解法正确率从86%提高到了94% [24] - 经过筛选后,超过80%的问题被标注为具有足够质量可作为模型训练数据,23%的问题涉及新颖或创造性设计 [24] 大型语言模型在问题生成中的表现 - 大型语言模型能够生成它们自己无法解决的可解问题 [27] - 大型语言模型倾向于通过组合现有问题框架和强调知识与实现来创造新问题,更擅长"知识重组"而非原创创新 [29][32] - 新问题的难度增幅往往大于种子问题,且当相应种子问题难度适中时,生成问题的质量最高 [32] - 生成问题的难度和相较于种子问题的难度增益,是比大型语言模型自我评估更好的问题质量指标 [32]
Codeforces难题不够刷?谢赛宁等造了个AI出题机,能生成原创编程题
36氪·2025-10-20 08:15