这项由加州大学伯克利分校、加州大学圣地亚哥分校、华盛顿大学、斯坦福大学、普林斯顿大学和麻省理工学院等机构联合完成的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.14445。感兴趣的读者可以通过该编号在arXiv平台检索完整论文。
**一、一道没有标准答案的题,难倒了最聪明的AI**
如果你曾经用过ChatGPT或者其他AI助手写代码,你可能会发现,让它帮你修复一个明显的bug、实现一个清晰描述的功能,或者解一道竞技编程题,它往往表现得相当不错。但如果你把一个复杂的现实世界问题抛给它——比如,如何调度一批服务器上的任务,让整体完成时间尽可能短、能耗尽可能低——它往往就开始犯难了。
这背后有一个根本原因:前者是"有标准答案的题",而后者是"没有标准答案的题"。
以竞技编程为例,题目说"给你一个图,找出最小生成树",答案要么对要么错,计算机秒秒钟就能验证。但现实世界里的编程挑战大多不是这样的——服务器调度没有一个"最优解"可以完美核验,不同的工程师会提出截然不同的策略,有人偏向贪心,有人偏向模拟退火,有人用遗传算法,各有各的道理,分数也有高有低,但谁都不敢说自己的方案是"绝对最优"的。
研究人员把前者叫做"封闭式(closed-ended)"任务,把后者叫做"开放式(open-ended)"任务。现有的AI在封闭式任务上已经非常厉害——在国际大学生程序设计竞赛中能拿金牌,解决GitHub上超过80%的真实bug报告。但在开放式任务上,差距还很大:在一个叫做FrontierCS的开放式编程测评平台上,人类专家能拿到95.41分,而谷歌最新的Gemini 3.0 Pro只能拿到29.37分。
问题症结在哪里?训练数据。
封闭式题目铺天盖地,Codeforces和LeetCode上有几十万道题,AI可以用这些题做强化学习训练,越练越强。但开放式题目极度稀缺——目前最大的两个开放式编程测评集,FrontierCS只有240道题,ALE-bench只有40道题,而且每道题都需要专家花大量时间精心设计,成本极高。
于是,这个来自多所顶尖高校的研究团队决定解决这个问题:能不能让机器自动"制造"出大量高质量的开放式编程难题,来训练出更厉害的AI编程助手?他们给这个系统起名叫**FrontierSmith**。
**二、把"有答案的题"改造成"没有答案的题"——三把手术刀**
FrontierSmith的核心思路,可以用一个课堂改题的比喻来理解。
数学老师出了一道题:"用最少的线段把所有城市连接起来,总长度是多少?"这是一道有标准算法的经典题,任何学过Kruskal算法的学生都知道怎么解。但如果老师在题目后面加上一句:"而且,每个城市最多只能连接两条线段"——这道题就变了性质。原本一个贪心算法就能秒解,现在变成了一个没有高效精确解法的NP难问题,不同的学生会尝试不同的策略,有人用局部搜索,有人用遗传算法,有人用模拟退火,分数参差不齐,再也没有一个"标准答案"可以对照。
FrontierSmith就是在做这件事:把大量现成的封闭式竞技编程题,通过三种手术刀式的改造,变成开放式难题。
第一种改造叫做"改变目标"。原题可能是"判断这个布尔公式能不能被满足"(是或否,有标准算法),改造后变成"找到一个满足条件的赋值方案,同时让为真的变量数量尽可能少"。目标从判断题变成了优化题,从有标准答案变成了分数越高越好。
第二种改造叫做"限制输出"。原题是"找最小生成树"(有贪心算法),改造后变成"找最小生成树,但每个节点的度数不超过D"。这个额外的约束让问题从多项式时间可解变成了NP难,原来的贪心算法不再适用,不同的近似策略会给出不同质量的解。
第三种改造叫做"泛化输入"。原题是"在二部图上找最大独立集"(有高效的多项式算法),改造后变成"在任意图上找最大独立集"。输入范围的扩大让问题从简单变成了NP完全,精确解在大规模情况下无法计算,各种启发式方法各显神通。
这三种改造方式可以单独使用,也可以组合叠加,共同作用于同一道题。每次改造,系统都会用大语言模型来完成——给它一道原题和改造类型,它会先理解原题的目标、输入范围和输出约束,然后产出一个改造后的候选开放式题目。
**三、筛掉"伪开放"题——两道质量关卡**
改造出来的题目不一定都是好的开放式题目。有些改造可能改得太轻,实际上还是有一个主流策略能压倒其他所有策略,本质上还是"封闭式"。FrontierSmith设计了两道质量筛选关卡。
第一道关卡是一个粗筛。系统让大语言模型扮演评审,检查候选题目是否满足三个条件:有没有定义一个优化目标、没有已知的最优算法;是否存在多种不同的策略都有可能奏效;是否有一个有意义的评分函数能区分好坏解。只要有一条不满足,这道题就会被淘汰。
第二道关卡更精妙,叫做"想法发散度"过滤。
核心直觉是:一道真正好的开放式题目,应该让不同的人想出不同的解法思路。如果所有人都下意识地用同一种策略——比如贪心——那这道题实际上并没有开放多少思维空间,和有标准答案的封闭式题目差别不大。就好比一道历史题,问"二战的根本原因是什么",虽然没有唯一答案,但如果所有历史学家都异口同声地指向同一个答案,这道题的"开放性"也值得怀疑。
所以,FrontierSmith引入了一个叫做"想法发散度"的量化指标,用来衡量:如果让两个独立的AI求解者分别来解这道题,他们采用的核心算法思路是相同的还是不同的?这个概率越高,说明题目越能激发多元化思维,越是一道好的开放式题目。
具体操作上,系统先让大语言模型独立生成十个不同的解法,然后让另一个大语言模型逐对比较这些解法——"s1和s2用的是同一种核心策略吗?"——把所有比较结果平均,就得到了这道题的想法发散度估计值。
这个想法发散度过滤器出人意料地精准:用它来测试一批已知是封闭式的竞技编程题,91%都被正确地识别为"低发散度"淘汰掉了,只有9%的假阳性;而测试一批已知是开放式的题目,也只有19%被错误淘汰,这个错误率是可以接受的,因为系统的目标是宁缺毋滥。
**四、自动搭建"考场"——测试用例和评分程序的联合生成**
光有题目还不够。要用这些题目训练AI,还需要两样东西:测试用例(也就是具体的输入数据)和评分程序(能给解法打出连续分数的程序,而不只是"对"或"错")。
FrontierSmith用两个互相配合的"代理"来完成这个任务,类似于一个出题老师和一个阅卷老师共同工作。
测试用例代理的任务,不只是随便造几个输入数据,而是要造出能"区分"不同策略优劣的数据。比如对于一道图优化题,它需要造一些稀疏图、一些稠密图、一些均匀分布的图、一些极端偏斜的图,让不同策略在不同类型的数据上各有胜负,真正"压力测试"各种解法。
评分程序代理则把题目的优化目标翻译成一个标准化的评分函数。由于开放式题目没有已知的最优解,评分通常采用相对比较的方式:先用一个简单的基准解法(哪怕只是随机的合法解)算出一个基准分,然后看你的解法比这个基准好了多少,按比例换算成0到1之间的分数。
两个代理还会互相交叉验证。测试用例代理造好数据后,会把之前生成的解法跑一遍:如果某个解法在某个测试用例上崩溃了或者输出无法解析,这个测试用例就被标记为有问题,代理需要修正。评分程序代理给所有解法打分后,会检查分数是否合理:如果所有解法都拿到几乎相同的分,说明评分程序没有区分能力,需要重写;如果某个明显很好的解法反而得了低分,也说明评分有误。两个代理不断迭代修正,直到彼此的输出不再暴露对方的错误为止。
这个互相把关的过程并不轻松,实验中只有约10%进入这一阶段的候选题目最终产出了可靠的"测试用例+评分程序"配对,其余的都在迭代中被淘汰了。
通过测试之后,系统还会用实际执行结果再做一次想法发散度的更新:把所有解法跑在测试用例上,得到每个解法的分数向量,用分数向量之间的平均距离重新衡量发散度。这个"执行层面的发散度"和之前"语言层面的发散度"互为补充,共同决定最终哪些题目被保留。
**五、验证成果:200道合成题,训练出比肩人工标注的AI**
研究团队用这套流程跑了4轮迭代,每轮从题库中采样1000道封闭式竞技编程题作为种子,最终产出了200道经过严格筛选的合成开放式题目。
他们用这200道题来训练两个不同规模的AI模型:Qwen3.5-9B(约90亿参数)和Qwen3.5-27B(约270亿参数),训练方法是强化学习中的GRPO算法,让模型通过做题、获得反馈、调整策略来不断进步。
训练结果相当有说服力。对于9B模型,在FrontierCS测评集上,基础模型只能拿到1.80分,而用FrontierSmith合成题训练后提升到了10.62分,提升幅度超过8分;在ALE-bench测评集上,基础模型的Elo评分是327.22,训练后提升到633.58,提升超过306分。
对于27B模型,效果更为显著。FrontierCS测评分从7.70跳到了19.82,提升超过12分;ALE-bench的Elo评分从352.52飙升到661.64,提升超过309分。
更令研究者兴奋的是,在27B模型上,FrontierSmith合成题的训练效果甚至超过了直接用FrontierCS人工标注题来训练的效果——FrontierCS训练只达到了13.98分和543.80 Elo,而FrontierSmith训练达到了19.82分和661.64 Elo。这意味着,花费极低成本自动合成的题目,在训练效果上可以超越专家耗费大量时间精心设计的人工题目。
与此同时,研究团队还和两个"对照组"做了对比,以排除其他可能的解释。
第一个对照组是"HardTests":用200道最难的封闭式竞技编程题训练,给正确率作为奖励信号。结果9B模型只能达到5.38分(FrontierCS)和397.18(ALE-bench),远低于FrontierSmith的10.62和633.58。这证明了题目的"开放性"本身是关键,而不仅仅是题目的数量或难度。
第二个对照组是"随机奖励":用FrontierCS的题目训练,但给每道题随机打分,而不是真实评分。结果模型表现只有3.04分和376.82 Elo,和完全未训练的基础模型(1.80和327.22)差不多。这证明了有意义的连续奖励信号是必不可少的——如果奖励是乱打的,再多训练也没用。
**六、过滤器到底有多重要——消融实验的回答**
研究团队还做了一个消融实验,专门回答"那两道质量筛选关卡到底有多重要"这个问题。
他们构建了一个"无过滤"的对照版本:同样对封闭式题目进行改造,但跳过粗筛和想法发散度两道过滤,直接给改造后的200道题搭建测试环境,用于训练。
结果显示,在FrontierCS测评上,无过滤版本只能达到8.57分,而有过滤的FrontierSmith达到了10.62分,差了约2分;在ALE-bench上,无过滤版本达到564.4 Elo,有过滤版本达到633.6,差了约70分。
值得关注的是,即使是无过滤版本,训练效果也明显好于直接用封闭式题目(5.38分和397.18 Elo)。这说明改造本身是有意义的,但过滤进一步确保了改造后的题目真正具备开放式训练价值,两个环节缺一不可。
**七、想法发散度:一把区分"真开放"和"假开放"的尺子**
为了验证想法发散度这个指标本身是否可靠,研究团队从四个不同来源各抽取了10道题:人工设计的FrontierCS题、FrontierSmith合成题、封闭式竞技编程题(HardTests中最难级别),以及ALE-bench题。对每道题都生成10个解法,计算两种发散度(语言层面和执行层面)。
结果非常清晰。用语言层面的发散度衡量,三类开放式来源(FrontierCS、FrontierSmith、ALE-bench)都在0.4左右,而封闭式题目(HardTests)只有0.14,大约是前者的三分之一。FrontierSmith合成题的发散度(0.42)甚至略高于人工设计的FrontierCS题(0.40),说明筛选流程确实在保留那些能激发多元化思维的题目。
执行层面的发散度数字绝对值更小,但趋势相同:HardTests最低(0.08),FrontierCS和FrontierSmith分别是0.11和0.14,ALE-bench最高(0.24)。这种区分信号虽然幅度不如语言层面的大,但方向完全一致。
这个结果有一个额外的实用价值:想法发散度可以作为一个自动分类器,帮助判断任意一道题是否真的具有开放式训练价值,而不需要人工审核。
**八、AI解题时花的时间更长了——这是一个好信号**
研究团队还做了一项有趣的观察实验,探索这些合成题对AI代理行为模式的影响。
他们调用了三个当前最强的代码智能体系统——Claude SDK(Sonnet 4.6版本)、Codex(GPT-5.5版本)和Kimi Code(K2.6版本)——分别在四类来源的题目上运行,记录每道题平均消耗多少轮对话和多少个token(可以理解为AI的"思考量")。
结论相当直观:开放式题目让AI智能体"越想越多"。ALE-bench题目把三个智能体都推入了"长时程模式",每道题平均超过100轮对话、超过300万个token。FrontierSmith合成题也展现出同样的特征,其中Claude SDK在FrontierSmith题目上平均需要113轮对话和630万个token,与ALE-bench上的表现不相上下。
相比之下,封闭式的HardTests题目和人工设计的FrontierCS题目让智能体都待在了"短时程模式",对话轮数和token数量都远低于开放式题目。
这个发现的意义在于:开放式题目不只是"更难的编程题",它从根本上改变了AI解题的行为模式——促使AI反复迭代、测试不同策略、根据反馈调整方案,正是现实世界中优秀程序员解决复杂问题时的工作方式。FrontierSmith合成题能复现这种行为模式,说明它捕获到了与人工设计题相同的深层结构。
**九、这套方法的边界在哪里**
FrontierSmith并非没有局限。研究团队在论文中坦诚地指出了两个主要限制。
第一,目前整个流程只能在"自给自足"的算法环境中运行:题目接受文本输入,输出一个程序,不依赖外部资源。这意味着需要云基础设施、GPU计算或多文件工程环境的真实世界开放式任务,目前还无法通过这套流程合成。把FrontierSmith扩展到这些场景,不只需要生成题目和评分程序,还需要生成可复现的执行环境,工程复杂度更高。
第二,受计算资源限制,实验中的强化学习训练只做了100步,并且每一步都是"单轮"交互——模型一次性输出解法,直接获得分数反馈。在现实的复杂任务中,更有价值的可能是多轮交互的"代理式"训练——模型先输出一个初步解法,运行测试,看到结果,再修改,再测试,循环迭代。这种训练方式和上面提到的"长时程行为"更匹配,也更接近真实的软件工程过程,但由于计算成本更高,这一部分被留作未来工作。
---
归根结底,FrontierSmith做的事情,是在一个数据极度匮乏的领域里,开辟出了一条自动化的数据生产道路。封闭式编程题可以源源不断地从竞技平台上获取,而开放式编程题此前几乎只能靠人工专家一道一道地设计。FrontierSmith证明了,只要设计好改造规则和筛选标准,前者可以批量转化为后者,而且质量足以与专家精心设计的题目媲美。
对于普通人来说,这项研究的直接意义或许要等上几年才能感受到。但当你将来打开某个AI编程助手,要求它帮你优化一个复杂的排班系统、设计一个资源调度策略,或者解决一个没有标准答案的工程难题时,支撑它给出更好答案的训练数据,或许就有FrontierSmith合成的那200道题的一份功劳。
有兴趣深入探究技术细节的读者,可以通过论文编号arXiv:2605.14445在arXiv平台上找到完整论文,代码和样例题目也已开源发布。
---
**Q&A**
Q1:FrontierSmith是如何把竞技编程题改造成开放式题目的?
A:FrontierSmith使用三种改造方式:将判断或精确计算目标改成优化目标(比如从"判断能否满足"变成"最小化满足的变量数");在原有约束基础上添加新约束让精确解变得不可能(比如给最小生成树加上每个节点的度数上限);或者扩大输入范围让原本多项式可解的问题变成NP难问题。这些改造使得原来有标准算法的题目,变成了不同策略各有优劣、无法认定唯一最优解的开放式难题。
Q2:想法发散度指标具体是怎么计算的?
A:系统让大语言模型生成10个不同的解法,然后让另一个模型逐对比较,判断每对解法是否采用了不同的核心算法策略,把"不同策略"的比例平均下来,就是想法发散度的初步估计。等到测试用例和评分程序搭建完成后,系统还会用实际运行分数做更新:把每个解法的分数向量互相比较,平均距离越大说明行为差异越大,发散度越高。
Q3:FrontierSmith合成的题目和人工设计的开放式题目比,训练效果有什么差异?
A:在9亿参数规模的模型上,两者效果接近,合成题略低约0.55分(FrontierCS测评);但在270亿参数规模的模型上,合成题训练效果反而超过了人工设计题——FrontierCS测评分19.82对13.98,ALE-bench Elo评分661.64对543.80。这个结果表明合成题的质量足以媲美甚至超过人工标注数据,且随模型规模增大效果更明显。







