模型上线之后,还能不能在没有标注的情况下继续变强?
TTRL(Test-Time Reinforcement Learning)给出了一条直接路径:让模型围绕测试任务自己采样、自己构造奖励、自己更新参数。但现有方法大多依赖答案投票,先从多条回答中抽取最终答案,再用多数票生成伪标签。这适合数学题、选择题等答案可以归一化的任务,却很难处理开放式生成。
两份医疗建议可能给出相同的主推荐,却在禁忌症、不确定性表述和转诊指引上相差很大。此时,多数共识不一定代表高质量,甚至可能只是大家遗漏了同一个关键信息。
开放式 TTRL 的判据级证据
论文:SERPO: Self-Evolving Rubric Policy Optimization for Open-Ended Test-Time Reinforcement Learning链接:https://arxiv.org/abs/2607.26873)代码:https://github.com/chiefovoavicii/SERPO主页:https://chiefovoavicii.github.io/SERPO/
论文引言给出了 HealthBench 中的一个案例:孕晚期持续头痛。一组 rollout 很容易收敛到“大概是常见孕期头痛,在家观察即可”,却集体漏掉了先兆子痫的红旗信号。答案形成了共识,最重要的判断标准反而失守了。
我们的思路是把投票换成自进化 rubric:不再问“哪个答案支持者最多”,而是让模型从自身回答的差异中总结高质量回答应满足哪些判据,再判断每条回答满足了多少。随着策略变强,回答和判据也会继续更新。
在 Qwen3-4B 上,SERPO 将 HealthBench 从 32.30 提升到49.83,将 ResearchQA 从 57.29 提升到77.60;六项评测的平均分达到61.98,与使用外部裁判和官方 rubric 的特权监督仅差 0.91 分。到了 9B,两个 in-domain benchmark 分别提升 20.63 和 14.56 分。8 个 OOD 设定全部超过基础模型,连续进化 45 个 epoch 后,性能曲线仍在上升。
自进化到底“自”到什么程度
SERPO 采用固定任务集合上的 transductive 设定。适配过程只使用测试集原始 prompt、模型自己采样的回答,以及从这些回答中得到的统计量,不接触参考答案、人类反馈、外部奖励模型、额外语料或更强的裁判。
rubric 生成器和 judge 都来自部署模型的初始权重,并在训练中保持冻结;唯一更新的是 actor。模型没有借助外部监督,而是把自身回答之间的质量差异转化成训练信号。
回答、判据与策略共同进化
SERPO 框架总览
SERPO 同时维护三类状态:每道题独立的 Good-Normal-Bad 回答池、随回答变化的 rubric 池,以及所有题目共享的 actor 参数。回答为判据提供证据,判据为策略产生奖励,更新后的策略再生成新的回答。
回答池进化:为什么保留 Good、Normal、Bad 三档
每道题都会保留一组模型生成过的代表性回答,并按质量分成 Good、Normal、Bad 三档。只比较最好和最差的回答,生成器很容易得到“区分优秀与灾难”的粗粒度规则,却找不到真正决定质量的细节。Normal 档补上了中间地带,让有效判据必须稳定地区分三个质量层次。
SERPO 使用当前 rubric 对新 rollout 临时排序,再选择分离度最大的 Good-Normal-Bad 组合更新回答池。这样留下的不是随机样本,而是一组有顺序、有间距、能够支持判据比较的证据。
Rubric 进化:只保留真正能区分质量的判据
rubric 生成器会读取 prompt、已有判据和回答池,从好坏回答的差异中提出新的原子判据。新旧判据随后被归并和筛选:重复要求统一表述,相关但不同的要求分别保留。
筛选同时考虑两件事:一条判据能否拉开回答之间的分数差距,以及它能否把 Good、Normal、Bad 排在正确顺序上。恒定打分、频繁打平或排序颠倒的判据会逐步淘汰;偶尔失效的判据仍有机会恢复,避免一次噪声判断造成误删。
策略进化:把判据信号写回模型权重
SERPO 用存活判据及其区分能力为 rollout 生成奖励,再通过 GRPO 更新 actor。judge 不只输出硬性的 Pass/Fail,而是读取 Boolean verdict token 的概率,区分“确信满足”和“勉强满足”。退回硬判定后,HealthBench 会下降 6%,说明连续分数保留了更多组内差异。
actor 更新后,新 rollout 会刷新回答池;新的回答差异又会推动 rubric 更新。rubric 生成器和 judge 始终冻结,actor 则把这些信号沉淀到模型权重中。
为什么需要 TTRL:让已有能力对准真实任务
很多垂直领域的瓶颈,不是模型完全没有相关能力,而是通用训练数据与真实任务存在差距。患者如何描述症状、科研问题如何提出、用户会省略哪些默认信息,很难在预训练和通用后训练阶段被完整覆盖。模型部署后如果参数始终冻结,也无法继续适应新的输入分布。
TTRL 直接利用测试阶段的真实 prompt 进行适配。即使没有参考答案,这些 prompt 仍然反映了用户在问什么、问题如何表达,以及模型需要适应怎样的任务形态。
这里使用 RL 而不是 SFT,是因为 SFT 需要确定的目标回答,而 RL 可以直接优化模型自己的 rollout,在已有生成空间中提高高质量轨迹的概率。SERPO 再用自进化 rubric 回答开放式任务中“奖励从哪里来”的问题。
这也区分了两类自进化:修改 prompt、memory 或 tool,主要是在上下文中搜索;更新 actor 参数,则能把收益留在模型本身。SERPO 同时利用回答池和 rubric 产生训练信号,再通过 GRPO 将其写回权重。消融实验中,一旦冻结 actor,即使回答池和 rubric 继续变化,性能仍会退回 Base 附近。
实验:无需人工标注,4B 模型追回特权监督约四分之三的增益
实验覆盖Qwen3-4B-Instruct-2507和Qwen3.5-9B。模型分别在 HealthBench 和 ResearchQA 上进化,再通过 MedQA、LLMEval-Med、GPQA-Diamond 和 RaR-Science 测试 OOD 迁移。GPT-5.1 只用于最终评测,对整个适配过程不可见。
SERPO 主结果
我们还为开放式生成构造了两个更强的投票基线。response vote 将回答压缩成主推荐,再奖励最大语义簇;claim consensus 则把回答拆成原子 claim,根据 claim 的支持频率构造奖励。
Qwen3-4B 主结果如下:
| 方法 | HealthBench (ID) | ResearchQA (ID) | 六项评测平均分 | | --- | --- | --- | --- | | Base | 32.30 | 57.29 | 53.92 | | TTRL (response vote) | 34.27 | 57.91 | 54.47 | | + claim consensus | 43.71 | 69.39 | 57.98 | | RGSD(静态 rubric, TTS) | 27.13 | 58.20 | 51.32 | | + rubric 自进化 | 32.06 | 65.51 | 55.43 | | SERPO(ours) | 49.83 | 77.60 | 61.98 | | _外部裁判 + 官方 rubric(非 label-free)_ | _56.14_ | _82.73_ | _62.89_ |
以 Base 为起点,SERPO 在 HealthBench 和 ResearchQA 上分别追回了特权监督 73.5% 和 79.8% 的增益,六项评测的平均分与特权监督相差不到 1 分。9B 上的结论一致:HealthBench 从 44.68 提升到 65.31,ResearchQA 从 68.62 提升到 83.18。
claim consensus 已经明显强于整句投票,但仍受制于频率。只要一组 rollout 共享同一个遗漏,高支持度 claim 仍然可能是不完整的。SERPO 在每个 in-domain 设定上都比 claim consensus 高 5%–14%,说明演化质量判据比统计回答共识提供了更有效的训练信号。
静态 rubric 同样不够。策略变强后,原有判据会逐渐失去分辨率;让 rubric 随回答变化,才能持续发现新的质量差异。
8 个 OOD 设定全部超过 Base
在测试集上更新参数,最直接的疑问是模型会不会只记住当前 benchmark。
SERPO 在单个测试集上训练 30 个 epoch 后,8 个 OOD 设定全部超过 Base,最高提升 11.4%,也全部超过了外部裁判基线。相比之下,投票类方法的 OOD 表现有升有降。
这说明模型学到的不是某几道题的答案模板。相比只贴合当前 benchmark 的官方判据,从回答差异中生长出的质量标准更容易迁移到同领域的其他任务。
消融:收益来自完整闭环,而不是更长的回答
| 变体 | HealthBench | 三项平均 | 相对长度 | | --- | --- | --- | --- | | Base | 32.30 | 48.64 | 1.00× | | w/o actor 进化 | 32.06 | 48.26 | 1.31× | | w/o rubric 进化 | 43.54 | 53.52 | 2.29× | | w/o G-N-B 进化 | 43.98 | 53.06 | 1.55× | | w/o 概率化 judge | 46.73 | 54.12 | 1.44× | | w/ 训练 judge | 43.22 | 53.03 | 1.76× | | w/ 训练 rubric 生成器 | 43.82 | 53.53 | 1.94× | | SERPO(完整) | 49.83 | 55.69 | 1.38× |
完整 SERPO 取得最高平均分,同时比所有更新 actor 的消融变体更短。w/o rubric 进化的回答长度达到 Base 的 2.29 倍,分数仍低于完整方法,因此涨分不能简单归因于回答变长。
冻结 actor 后,HealthBench 降到 32.06,甚至略低于 Base。训练 judge 或 rubric 生成器也会让性能下降,因为评估标准随 actor 一起变化后,奖励坐标系会不断漂移。当前闭环选择冻结辅助模型,只让回答证据和 rubric 更新,在稳定性和适应性之间取得平衡。
长程与跨 benchmark:30 epoch 之后仍在继续进化
长程进化
把预算从 30 个 epoch 延长到 45 个,SERPO 又获得 3.6% 的相对提升,曲线仍未进入明显平台期。论文按 epoch 40–45 的局部斜率做了描述性线性外推,大约在 epoch 99 触及特权 ID 参考线。外推不是实验结论,但直观展示了曲线后段仍然保持的上升速度。
response vote 会逐渐回退向基础策略,rubric-only 进化则较早进入平台期。随着 rollout 趋于同质,频率型奖励很快失去分辨率;持续刷新的 rubric 仍能从新的回答差异中提取信号。
跨 benchmark 顺序进化
顺序进化实验让同一个 actor 先在 HealthBench 上训练 30 个 epoch,再切换到 ResearchQA 训练 30 个 epoch。到 epoch 60,SERPO 在两个 benchmark 上分别领先 TTRL-claim 23% 和 19%。切换任务后,ResearchQA 和 HealthBench 的阶段最佳分别提高 19% 和 4%,说明模型学习新任务时,旧任务表现仍能继续提升。
自进化能走多远:关键在评估能力能否持续领先
我们认为模型自进化有一个基本前提:评估能力必须大于生成能力。从实验上可以看到,在我们信息受限的场景下,自进化有一个上界,这个上界由评测的能力决定。 模型不一定能稳定生成最优答案,但至少要能识别哪些回答更好、问题出在哪里。很多任务中,“判断哪里错了”本来就比“一次生成正确答案”更容易;如果评估器连当前策略产生的回答都无法区分,奖励就会失去方向。
SERPO 改进的是由 judge 和 rubric 共同组成的评估系统,而不是直接训练 judge。评估器漂移也不一定来自参数变化:actor 的分布改变后,旧 rubric 可能已经覆盖不了新的错误形态。
SERPO 让 judge 保持冻结,提供稳定的判断坐标;回答池不断暴露新的质量差异,rubric 再随之更新。这相当于先让评估标准渐进式跟上策略,避免 actor 和 judge 同时变化带来的漂移。
长期自进化还需要外部反馈。无人工标注不等于没有外部反馈。工具执行结果、环境状态、用户后续行为、单元测试和真实任务成败,都可以为内部评估器提供锚点。否则,封闭的自评循环很容易反复强化已有偏好,把当前分布中的盲点一起放大。
我们任务自进化的下一步需要进一步增强评估器的逻辑推理能力,让它能够发现内部判断与外部结果之间的 gap。
比如,rubric 判断一条回答已经合格,环境反馈却显示任务失败;评估器需要沿着证据、判据、判断和结果逐步回溯,定位是判据缺失、推理链断裂,还是 judge 对证据的理解出现偏差。找到断裂点后,再有针对性地补充 rubric、修正判断逻辑或更新评估器,而不是让反馈回路盲目追随当前策略。
SERPO 已经验证了这条方向的前半段:用回答差异推动 rubric 生长,再把判据信号写回模型参数。未来将真实环境反馈接入循环,并让评估器持续识别和修复自身盲点,自进化才可能从固定任务上的测试时适配,走向长期、开放的能力积累。
加入青稞AI技术交流群,不仅能与来自MIT、港中文、CMU、UCLA、斯坦福、清华、阿里、腾讯等名校名企AI研究员/开发者一起进行技术交流,同时还有一线青年AI研究员/开发者的Talk分享、青稞Tea、论文精读、招聘内推、国内外硕/博申请、大模型技术报告解读等。备注:姓名+学校/公司+方向,暗号"AI"优先审核通过!