什么让一个AI系统在数学上变得厉害?不是原始的计算能力,而是一个听起来几乎矛盾的东西:对自己是否正确异常小心。
当AI研究人员讨论数学推理时,他们通常关注的是扩大规模------更大的模型、更多的参数、更大的数据集。但实际上,数学能力并不是靠你有多少计算资源堆出来的。真正关键的是,机器能不能学会自己检查自己的答案,因为至少90%的推理错误,都是因为模型自信地给出了错误的中间步骤。
我猜,一旦你理解了这个点,就会觉得这很显然。任何一个数学家都会告诉你,解决难题的关键不是原始的智力------而是有条不紊地验证。可多年来,AI研究人员却一直在试图用蛮力扩大数学能力,拼命堆大模型,好像单靠计算力就能搞出仔细推理一样。
图4:rStar-Math深度思考过程中,内在自我反思的一个例子。
微软的rStar-Math(本周AImodels.fyi问答类论文榜第一名)打破了这种模式,靠的是三项互相关联的创新:
每一步推理都用代码来验证、
用一个偏好模型来学习评估中间思考过程、
还有一个多轮自我进化的训练流程。
它们的7B参数模型------用了这些技术之后------性能能匹敌甚至超越大100倍的模型。
这个系统的工作方式,就是强制每一步推理都要明确验证。
每一小段数学推理,必须写成能执行的代码,要么成功运行,要么运行失败。
这样就创造出一种"人工怀疑",起到了健康的怀疑作用,防止不靠谱的跳步推理。
但光有验证还不够,系统还得学会判断哪种推理方式更好,这就是偏好模型干的活儿。
而且它还得不断变得更聪明,这就靠多轮自我训练来实现。
rStar-Math整体概览。注意这里的"验证推理轨迹"模块。
大致流程是这样的:
- 每一步推理都写成一小段必须能正确运行的Python代码
- 一个叫"过程偏好模型"的东西给每个步骤打分
- 系统经过多轮训练,每一轮都是基于上一轮验证过的解答再继续提升
我猜,这种持续反馈回路,逼着小模型必须"用能验证的方式思考"而不是靠猜。这也符合最近整个机器学习圈的趋势,大家都在追求靠链式思考(chain-of-thought)模式来提性能。OpenAI的o1是最典型的例子,但其实我还写过很多其他类似思路的论文。
表5:rStar-Math和其他前沿LLM在最难数学基准测试中的表现。rStar-Math64表示每个题目采样64条推理轨迹时的Pass@1准确率。
总之,到最后一轮,这个小模型在MATH基准测试上能拿90%的分数,能解出53%的真正奥数AIME题目------这水平能让它排进真人参赛者的前20%。
要是以前,我一定以为要达到这种成绩,得要个大好多倍的模型。
但rStar-Math告诉我们,如果每一步都能及时验证和纠错,未必非要大模型才能做到。
让我兴奋的是,这种方法可能是可以泛化的。
在数学领域,执行代码是个非常干净的验证信号:代码要么跑得通,结果对上了,要么就是错的。
但在其他领域------比如法律、疫苗研究、艺术创作任务------每一步并没有那么清晰的对错判断。
不过我想,还是可以为每个领域设计特定的检查规则或者偏好模型,来判断每一步推理靠不靠谱。
如果真能做到,那在很多专业领域里,小模型也许可以跟大模型一较高下,甚至干翻它们,只要能保证每一步推理都经过验证。
当然,也有人可能会担心:基于代码的验证是不是太局限了?"那怎么扩展到所有问题呢?"
但我觉得我们会看到很多创造性的扩展方式。比如,法律领域的模型可以去解析相关法规,或者把论点跟已知判例对比一下;医疗领域的模型可以查询知识库,或者模拟标准治疗方案。
甚至在日常任务上,只要我们能建立起健壮的正确性检查机制,这种方法也完全能用得上。