微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 AREX-2:一个27B小模型,是怎么学会"越改越好"这件事的

AREX-2:一个27B小模型,是怎么学会"越改越好"这件事的

2026-10-12 16:18
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-10-12 16:18 • 科技行者

你有没有遇到过这样的情况:改一份PPT改到第五版的时候,忽然发现方向好像一开始就错了,但你已经投入太多时间,只能硬着头皮继续改。

大部分AI智能体也有这个毛病。你让它写代码、做研究、跑模型,它通常只给你一次机会:生成一个答案,对了就对了,错了也没有回头路。真正厉害的人类专家不是这样工作的,他们会先试一版,看看哪里不对,然后针对性地改,改完再看,再改,一轮一轮地逼近答案。这个"试错改进"的过程,听起来简单,但目前大多数AI系统并不具备这种能力。

北京智源研究院(BAAI)的团队做了一件事:他们想让AI模型真正学会这种"越改越好"的本领,而不是靠外部程序硬性安排重试逻辑。这就是AREX-2这篇论文要讲的故事。

一件被忽略的事:循环到底该放在哪里

现在很多自动化系统,比如自动调参的机器学习流水线,或者能自己写代码验证的编程助手,确实会反复试错。但如果你仔细看这些系统的架构,会发现那个"试了不行再试"的逻辑,其实是写在外层脚本里的,不是模型自己学会的。

这中间的区别可大了。

外层脚本控制重试,相当于是老板规定了流程:第一次不行,换个参数再来一次;第二次还不行,再换。模型本身只是一个被反复调用的工具,它并不理解"为什么上一次失败了",也不会主动总结经验用在下一次。这就像一个只会按照菜谱做菜的厨师,菜谱让他把盐加倍,他就加倍,但他自己并不知道上一道菜到底哪里出了问题。

论文把真正的"自我提升"定义得很清楚:给模型更多轮次去处理同一个任务,它能不能靠自己的判断把解决方案越改越好。这是一种测试阶段的能力扩展,不是训练时堆更多数据,而是让模型在真正动手干活的时候,拥有更长的耐心和更准的判断力。

研究者用了一个简单的公式来拆解这件事。假设st是第t轮之后达到的最好分数,rt就是这一轮带来的提升。如果你给模型T轮机会,它总共能提升多少,取决于两个变量:每一轮平均能提升多少(论文里叫反思能力,用r表示),以及这个提升能持续多少轮才会失效(论文叫长程执行能力,用T*表示)。

反思能力*:指模型看到当前方案和反馈信息后,能不能提出一个更好方案的能力。简单说就是"改得准不准"。

长程执行能力*:指模型能不能在很多轮次里一直保持有效的改进,不半途而废、不原地打转。简单说就是"能坚持多久"。

这两个能力缺一不可。如果反思能力很弱,给再多轮次也没用,就像一个总是瞎猜答案的学生,考十次和考一次区别不大。如果长程执行能力很差,哪怕每次反思都很犀利,也只能撑几轮就卡壳,后面给再多时间也是浪费。

问题来了:这种能力要怎么教给模型?

当前训练数据的一个大漏洞

现在训练AI智能体,主流做法是这样的:出一个任务,让模型做一次,一个验证程序判断对错,留下做对的样本去训练,做错的直接扔掉。

这个流程听起来很合理,却藏着一个致命问题。它只保留了"一次就做对"的样本,而这类样本往往是最简单的,因为难题不可能一次做对。那些真正有价值的东西,比如模型试错后怎么调整思路、遇到失败后怎么恢复、反馈信息怎么被用来修正方向,全都在筛选过程中被当作垃圾丢掉了。

这就好比一个摄影比赛,只收最后冲洗出来的那张完美照片,底片盒里那几十张曝光过度、角度不对、构图失败的照片全部销毁。结果你把这些完美照片拿给一个新手摄影师学习,他能学到"好照片长什么样",但永远学不会"怎么从糟糕的第一张走到完美的最后一张"。如果不保留这些中间过程,模型看到的永远只是光鲜的结果,从没见过真实的试错轨迹,它自然也学不会试错这件事本身。

所以研究团队意识到,要教会模型"自我提升",就必须专门构造一种新的训练数据:记录下一个智能体在很长时间里,反复试、反复测、反复改的完整过程,连同它犯的错误和爬起来的方式,一起留下来。

为什么选机器学习和算法编程这两个领域

构造这种数据,第一个要解决的问题是:在哪个领域构造?

研究团队提出一个核心假设:长程反思是一种跨领域的通用能力,不依赖于具体任务。判断一个方案哪里不行、决定改什么、以及失败后继续坚持下去,这些行为在改模型超参数、改代码、改研究报告的时候,本质上是一回事。

如果这个假设是对的,那选择训练领域的标准,就不需要跟最终应用领域长得像,而应该挑那种特别容易被"监督"的领域,在这里学到的东西,能迁移到别的地方去。

基于这个思路,团队选了两个领域:机器学习工程和算法编程。原因有三个。

第一,这两个领域的反馈特别干净。一个模型在验证集上的分数,或者程序通过了多少测试用例,都是明确的数字,不存在"看起来不错但说不清好在哪"的模糊地带。

第二,这两个领域特别适合长时间磨。一个机器学习方案,可以从随便搭的基线,一步步改进成精调过的模型集成;一个暴力算法,可以逐步优化成接近最优解的高效程序。这种改进空间很大,意味着"多改几轮"真的有意义,不会改两次就到顶了。

第三,这两个领域的原始素材特别多。GitHub上有海量的开源代码仓库,在线编程评测网站上有成千上万道题目和对应的测试数据,不缺"可以拿来改造成训练环境"的原材料。

这三条标准合起来,就是说选训练场地要选那种"每一步对错都看得清楚、能持续改进、素材又充足"的地方,而不是非要选跟最终用途完全一样的场地去练。这就像运动员专项训练的逻辑:短跑运动员不会整天只练跑步,他们可能会花大量时间做核心力量训练,因为核心力量这个底层能力,能迁移到跑步爆发力上。如果非要"练什么就只练什么",反而会错过那些更基础、更可迁移的能力训练方式。

三步走:怎么把GitHub仓库变成训练素材

光选好领域还不够,接下来要解决第二个问题:怎么把这些素材变成真正可用的训练数据?论文里讲了三个步骤。

第一步是构造"环境"。GitHub上的一个代码仓库,本身并不是一个可以直接拿来训练的任务,它只是堆代码加数据,没有明确说"你要改进什么指标"。团队用一个教师模型去读这些仓库的代码,识别出它衡量效果的指标是什么,然后专门写一个任务描述,再写一个打分脚本(用一份智能体碰不到的隐藏数据来算分),最后搭建一个装好环境、数据也摆好的沙箱,让智能体可以直接在里面动手干活。

对于编程题目来说,流程类似,只是任务描述直接就是题目本身,打分则来自隐藏测试集,而且尽量用"连续打分"而不是"对/错"这种二元判断。

连续打分*:指不是简单判断对或错,而是给出一个具体数值,比如测试用例通过的比例,或者程序效率相对最优解的百分比。这样每一轮尝试都有具体的进步或退步可以衡量,而不是非黑即白。

为什么要连续打分?因为如果只告诉智能体"你错了",它根本不知道是错一点还是错很多,也不知道改哪里更有效。这就好比考试只告诉你"不及格"和"及格"两种结果,而不告诉你具体多少分。你永远不知道自己是差1分还是差50分,自然也不知道该怎么针对性复习。如果不换成连续打分,智能体每一轮能获得的信息量会大幅缩水,它很难判断"这次改动到底有没有用"。

搭好环境之后,还要用两个条件检验这个环境是不是真正可用:原始的参考答案(仓库自带的模型,或者题目的标准答案)必须能跑通并拿到分数,这说明环境本身没问题;同时一个很简单的基线方案必须明显比参考答案差很多,这说明这个任务确实留有改进空间。如果一个任务随便搭个基线就已经接近满分,那它根本没法用来训练"持续改进"这种能力,会被直接扔掉。

第二步是让一个能力很强的教师智能体,真正在这些环境里跑很多轮,记录下完整的改进轨迹。这里有三个精心设计的条件,目的是逼着智能体表现出"长程反思"该有的样子。

第一个条件是给足轮次和时间,通常是几个小时、几百次工具调用,而且提前把这个预算明确告诉智能体。这个细节很关键,因为知道自己有很长时间可用的人,做事方式跟只有五分钟的人完全不同。前者会先搭一个基线、花时间做测量,再根据测量结果做针对性调整,而不是一上来就猛冲第一个直觉方案。这就像给你一天时间考试和给你十分钟考试,你的答题策略会完全不同,十分钟你只能赌,一天时间你会先通读全卷,找最有把握的题先下手。

第二个条件是允许智能体主动获取操作性知识。

操作性知识*:指任务说明里没有直接写出来,但完成任务所必需的实际细节,比如某个仓库的接口怎么用、数据加载器期望什么格式、某类问题在约束条件下允许哪些优化手段。这些知识需要智能体自己去读文档、查资料、做小实验才能摸清楚。

团队还专门准备了"技能"文档给智能体参考,分为通用技能(提前从大量机器学习仓库和常见实践中总结出来)和任务专属技能(针对具体任务搜索出来的资料,但特意排除了跟答案本身相关的内容,避免作弊)。给教师智能体这些技能,是为了让它足够强,生成的轨迹才值得被模仿;而训练出来的模型,学的是怎么利用这类知识,而不是死记硬背某个具体答案。

第三个条件是让反馈始终在循环里起作用。每一轮结束智能体都能看到打分和环境报告,然后决定下一步怎么走。这正是"反思"真正发生的时刻:对比结果和预期,决定保留还是撤销这次改动,提出下一个猜想。

这里有个特别值得说的设计:那些让分数变差的轮次,不会被从轨迹里删掉。每一次失败后面紧跟着智能体的应对,这个应对才是真正要教给模型的东西。

第三步是筛选轨迹,但筛选的方式很特别。团队不是按"每一轮对不对"来筛,而是看整条轨迹最终有没有达到一个相对参考答案设定的高分门槛,以及这个过程本身有没有违反任务规则(比如从隐藏数据里套答案、泄露密钥之类)。只要最终结果过关、过程规规矩矩,中间那些失败的尝试、走错的弯路、放弃的方案,统统留在轨迹里。

这个选择是故意的。如果按每一步去筛,凡是失败的步骤全部剔除,模型就只能看到"每步都成功"的理想轨迹,一旦真正遇到失败,它完全没有参考经验。这就好比只给你看别人创业成功后光鲜的履历,却看不到他们中间破产重来三次的细节。你学到的只是"成功长什么样",却学不会"失败之后怎么爬起来"。保留这些挫折,恰恰是教模型怎么在真实世界里继续走下去的关键一环。

训练的时候怎么"划重点"

光有轨迹还不够,具体训练的时候,团队也做了讲究。整条轨迹都会作为上下文保留下来,但损失函数只施加在那些"真正推动解决方案前进"的决策上,比如诊断失败原因、修复问题、改变策略、运行下一轮实验、提交改进后的方案。

那些没有实质进展的步骤,比如反复查询状态、没有新信息的调用、几乎重复的操作,不计入损失。系统消息、环境反馈、检索到的文档这些内容只是用来给模型提供背景信息,本身不是需要模仿的输出,也不计入损失。

这个设计的意思是:模型会"看到"失败发生的完整场景,但真正被要求去学习模仿的,是失败之后那个漂亮的转身,而不是失败本身,也不是那些无意义的空转。

团队把这批新构造的轨迹,跟AREX项目之前积累的深度研究类训练数据混在一起,在Qwen3.8-27B这个基座模型上做微调,得到了AREX-2。这里有个关键点:深度研究那部分数据完全没有变,新加入的全部是机器学习和算法编程领域的轨迹。这个设定非常巧妙,因为它意味着如果AREX-2在深度研究任务上表现提升了,这个提升不可能来自新数据,只能来自新轨迹教会模型的那种通用的长程反思能力真正发生了迁移。

结果到底怎么样

先看训练数据直接对应的两个领域。在MLE-bench Lite这个机器学习工程基准上,AREX-2拿到81.8分的"奖牌率"(指在多少比例的竞赛任务里拿到奖牌级别的成绩),这是所有对比模型里最高的分数,比表现最强的开源对手高出8.1分,比最强的闭源模型GPT-5.6 Sol高出9.1分。在Frontier-CS这个算法编程基准上,AREX-2拿到70.7分,超过最强开源对手16.0分,跟最强闭源系统的差距只有5.7分。

更有意思的是深度研究领域的结果,因为这部分完全没有用到新训练数据。AREX-2在BrowseComp(一个考验网页浏览和信息检索能力的基准)上拿到84.0分,在纯文本版HLE(一个号称"人类最后考试"的高难度知识测试)上拿到52.6分,在GAIA(通用智能助手基准)上拿到92.2分,在DeepSearchQA(深度搜索问答基准)上拿到93.8分。这几项成绩,全部超过了用上一代训练方法得到的AREX(4B)和AREX(122B)两个版本。

这里藏着一个挺震撼的对比。AREX(122B)有122亿参数(实际是122B,也就是1220亿),AREX-2只有27B,体量不到对方的四分之一,但在多个深度研究基准上反而表现更好。这说明问题的关键根本不在于参数堆了多少,而在于模型有没有学会"怎么利用更多轮次把答案做得更好"这件事本身。

两个压力测试:有反馈和没反馈,结果都站得住

光看最终分数还不够说明问题,研究团队专门设计了两组实验,去验证AREX-2是不是真的具备"给更多时间就能变得更好"这种能力,而不是靠运气蒙对了一个高分。

第一组实验在Frontier-CS上进行,给智能体五个小时时间处理每个问题,每轮都能拿到打分和评测反馈。结果显示,AREX-2并不是一开始就领先,但随着时间推进逐渐反超:一小时后54.4分,两小时后65.9分,五个小时后70.7分。对比组里,DeepSeek-V4-Pro在两小时后就卡在44.7分不再提升,DeepSeek-V4-Flash在三小时后卡在39.1分。AREX-2在第二到第五小时之间还能继续涨4.8分,其中最后一小时就贡献了2.2分。

这组数据说明的问题很直接:AREX-2的优势不是来自起点高,而是来自"后劲足"。用论文里的概念讲,它的有效改进轮次T*特别长,别的模型两三个小时就撞到天花板,它五个小时还在往上走。

第二组实验更有意思,是在BrowseComp上做的,而且故意不给任何正确与否的反馈。智能体完全不知道自己的答案对不对,只能靠自己的判断决定要不要继续查资料、要不要换个角度重新来。随着给的轮次(论文里用"轮次"衡量,一轮对应一次大模型调用)从47轮增加到143轮,AREX-2的准确率从64.8分一路涨到84.0分。而拿同样流程跑的AREX(122B),改进速度明显慢得多,在差不多140轮的预算下,AREX-2领先超过12分,而且AREX-2用不到AREX一半的轮次,就已经超过了AREX最终能达到的分数。

这组实验才是真正验证"自我提升"成色的地方。因为没有外部对错信号,模型的每一次改进完全来自自己对现状的重新评估和判断,这跟"系统告诉你错了,你再改一次"完全是两种能力。如果不设计这种无反馈测试,很容易把"模型善于利用外部纠错"误认为是"模型善于自我反思",这两者其实是两件事。

五阶段拆解实验:到底哪个因素在起作用

最后,研究团队还做了一个阶段性拆解实验,一步步地把各个因素剥离开,看看到底是什么在起作用。整个实验分成五个阶段,全部在MLE-bench Lite上测试。

前三个阶段都用没训练过的基座模型Qwen3.8-27B。第一阶段什么技能都不给,拿到28.8分。第二阶段加入通用技能文档,涨到41.2分。第三阶段加入任务专属技能,并且给更多轮次,涨到68.2分。这三步说明,光靠提供外部知识和拉长时间,一个完全没有经过专门训练的基座模型,也能从28.8分涨到68.2分,提升将近40分。

后两个阶段换成训练过的AREX-2,配置同样的技能。第四阶段用和前两阶段一样数量的轮次,拿到75.8分;第五阶段给足轮次,涨到81.8分。

对比第三阶段和第五阶段,两者用的技能和轮次完全一样,唯一的区别就是模型有没有经过专门训练,结果相差13.6分。再看第三阶段和第四阶段,后者轮次更少但模型训练过,反而领先前者7.6分。这说明训练这件事本身,带来的提升是实打实的,不是靠多给资源硬堆出来的。而第四到第五阶段之间,靠多给轮次又涨了6.0分,跟前面讲到的"长程改进"现象完全吻合。

这个拆解实验其实回答了一个很朴素的疑问:会不会AREX-2表现好,只是因为团队给它塞了更多技能文档和更长的运行时间,跟训练方法本身没什么关系?答案很清楚,三个因素(知识、训练、时间)各自都有贡献,而且训练带来的提升,哪怕在轮次更少的情况下依然存在。这就排除了"只是喂料多"这种简单解释。

Q&A

Q1:AREX-2是什么模型,主要解决什么问题?

A:AREX-2是北京智源研究院基于Qwen3.8-27B训练的AI智能体,核心目标是让模型学会在测试时通过多轮反思和修改不断提升解决方案质量,而不依赖外部脚本硬性安排重试逻辑。

Q2:AREX-2的训练数据跟别的智能体训练方式有什么不同?

A:传统方式只保留一次成功的答案,丢弃中间失败过程。AREX-2专门构造了记录完整试错轨迹的训练数据,来自机器学习工程和算法编程两个领域,保留了失败、反思、修正的全过程。

Q3:AREX-2只有27B参数,为什么能打过更大的模型?

A:论文的实验证明,AREX-2通过学习长程反思这种可迁移的通用能力,即便参数量远小于千亿级模型,在深度研究、编程、机器学习等多个基准上依然能持续利用更多轮次获得更好结果,体现出更长的有效改进周期。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-