返回 AICAP-180
B18 · Day 180OSS 收口 + 英文 + 全局 SOTA 复核

(stretch) verifiers Environment + 收口

这是 AICAP-180 的最后一天,也是 B1→B18 整条能力曲线的收口。

阶段: B18 · OSS 收口 + 英文 + 全局 SOTA 复核(Day 171-180) 标签: #verifiers #rubric-rewards #rlvr #block-summary

今日导引(由浅入深)

这是 AICAP-180 的最后一天,也是 B1→B18 整条能力曲线的收口。

  • 前 179 天造了评测 harness、A/B、outcome 仪表盘、GRPO 纯函数、资源原语、MCP 工具契约、AML Copilot 评测链。
  • 今天做两件事:
    1. stretch——用 Prime Intellect 的 verifiers 库起一个最小 Environment + Rubric,把「reward 可组合」这个 RL/eval 共同抽象跑通一次,和本仓 grpo.tscomposeRewards 对照;
    2. 收口——回填 block-summary.md,把 B18 三件套(OSS PR 状态 / 独立 repo 测试数 / GAIA 分数)汇总成可核验的三个数。

承上启下:昨天(Day 179)跑 GAIA 取外部分数;今天把 verifiers 的 Environment+Rubric 与本仓 reward 组合对齐,并给整批次(以及整个 AICAP-180)画句号。今日最小可判定产出:block-summary.md(三数汇总)committed。

1. 机理精读

verifiers 的核心抽象:Environment + Rubric。

  • verifiers 库(Prime Intellect)用两个对象组织 RL/eval 环境。
  • Environment 定义 rollout 与交互(一次 agent 与任务的完整往返)。
  • Rubric 把多个 reward 函数加权组合成一个标量信号。
  • 好处是 reward 可组合、可复用于训练与评测——同一套 rubric,既能在训练时给 GRPO 当 advantage 的来源,也能在评测时给 pass/fail 当判分依据。
  • 依据:verifiers docs(2026-03)。

为什么「多 reward 组合」是对的设计。

  • 单一 reward(如只看 exactMatch)会让模型学到「答对最终答案但格式崩坏」或「格式对但内容错」的退化策略。
  • 把 correctness、format 等多个可验证信号加权组合,能同时约束多个维度。
  • 这正是 RLVR(Reinforcement Learning with Verifiable Rewards)的精髓:reward 来自确定性 grader(可验证的「V」),而非另一个易被 hack 的奖励模型。

与本仓 grpo.ts 的对应。

  • seed 指出 verifiers 的 Rubric 对应本仓 grpo.tscomposeRewardsexactMatch / format 组合),Environment 的判定对应 evalChecks.ts 的判定函数。
  • 本仓早在 B11-12 就用纯函数把这套抽象写下来了:composeRewards(parts) 是加权平均、exactMatchReward / formatReward 是确定性 grader、groupRelativeAdvantage 是 GRPO 的组内标准化。
  • verifiers 把它做成了可跑的 RL 环境库,本仓把它做成了可单测的纯数学——同一套思想,两种落地。

收口的意义:把 B18 折成三个可核验的数。

  • B18 的纲领是「外部可验证」。一个批次结束,不应只留一堆笔记,而应留下三个外部世界能点开核对的数:
    1. 上游 OSS PR 的状态;
    2. agent-evals 独立 repo 的测试通过数;
    3. GAIA L1 分数。
  • block-summary.md 就是这三数的汇总台账。
  • 诚实地说,这三个里目前没有一个是「已完成」——PR 是外部动作、repo 待 CI、GAIA 待跑(需 key)——所以 summary 必须如实记录它们的 gated 状态,而非粉饰成达成。

与相邻概念的边界。

  • 今天的 verifiers run 是 stretch,需 key(用 Qwen3 起真模型回合),不是确定性单测。
  • 不是真 GRPO 训练(真训练需 GPU,仍 gated)。
  • 本仓 grpo.ts 是「能可信地讲清 GRPO/reward 设计」的纯函数工件,不是训练运行——这条边界从 B11-12 起就反复强调,今天收口仍守住。

2. 代码走读:本仓已落地侧(reward 组合 + 确定性判定)

seed 点名 grpo.ts(纯函数已测)与 evalChecks.ts(在测试中绿)。走读真实符号:

  • src/agent/train/grpo.ts(已 Read,纯数学,无 GPU/key):
    • composeRewards(parts) —— 对应 verifiers 的 Rubric:parts{weight, reward}[],返回加权平均;totalW===0 时返回 0(防除零)。这就是「多 reward 组合」的最小实现。
    • exactMatchReward(output, target) / formatReward(output, pattern) —— 对应 verifiers 的 verifiable grader(RLVR 的「V」),确定性返回 0/1。
    • groupRelativeAdvantage(rewards, eps=1e-8) —— GRPO 组内标准化 (r-mean)/(std+eps),无 critic(依 DeepSeekMath arXiv:2402.03300 / R1 arXiv:2501.12948)。
    • grpoScore(group) —— 给每个样本挂 advantagereinforce = advantage>0
    • 对照点:verifiers 的 Environment 跑出 reward → 喂 composeRewards 组合 → 喂 groupRelativeAdvantage 出 advantage,与本仓纯函数链一一对应。
  • src/aml/evalChecks.ts(已 Read;注意真实路径是 src/aml/,seed 写作 src/agent/eval/evalChecks.ts 路径有出入——以仓内实际为准):
    • runCodeChecks(c, assessment, sar) —— 对单案件跑 5 条确定性检查(sar_min_sections ≥5 段、cited_tx_exist 引用交易须真实存在、cited_tx_nonempty 有判定须有证据、top_typology_consistent 内部自洽、amount_money_format 整数分),每条返回 {checkId, passed, detail, relatedFailure}
    • codeCheckPassRate(dataset, assess, draft) —— 跨数据集聚合通过率(进 CI 的核心门槛),按 checkIdrelatedFailure 双重分桶。
    • 头注诚实标注:这是**纯确定性 TS(非 LLM)**层,需 LLM 语义判断的失败留给 LLM-as-judge(无 key 时诚实降级)。这正是 verifiers Environment 里「确定性 grader」那部分的本仓对应物。

走读结论:本仓用 composeRewards(reward 组合)+ exactMatch/formatReward(verifiable grader)+ runCodeChecks(确定性 Environment 判定)已把 verifiers 的 Environment+Rubric 抽象在纯函数层落地并单测,verifiers run 只是把它放进真模型回合再验证一次。

3. 今日实战

  1. 安装 verifiers(Prime Intellect),当周版本号需复验。
  2. 用 Qwen3 起 1 个 verifiers minimal env:单 task + exactMatch rubric,跑出 reward(需 key)。
  3. 把 verifiers 跑出的 reward 与本仓 grpoScore / composeRewards 对照,确认「reward 组合 + 组内标准化」语义一致。
  4. 回填 block-summary.md:汇总 B18 三件套数字——OSS PR 状态 / 独立 repo 测试数 / GAIA 分数,逐项标注 gated/已完成的诚实状态。
  5. commit block-summary.md。

4. 今日实测 / 产出

  • verifiers reward 数字 + 三数汇总:reward 部分 待跑(需 key)block-summary.md committed(文档产物,可立即落地)。seed 状态「待跑(需 key) + block-summary.md committed → reward 数字 + 三数汇总」,reward 不升级为已完成
  • 本仓已落地侧:grpo.ts 纯函数已测(真 GRPO 训练待 GPU);evalChecks.ts 在 423 测试中绿。
  • Block 里程碑(measured,逐字保留)
    • 上游 OSS PR = 外部动作(未完成,状态待 open/merged,正文须含 before/after eval 数字)
    • agent-evals 抽独立公开 repo = 待 CI(目标 ≥18 tests 绿,纯 TS 闭包已就绪:cohensKappa.ts/tasks.ts/stats.ts/abCompare.ts)。
    • HF Agents Course Unit4 GAIA = 待跑(需 key) + 外部提交(目标 ≥30% L1)。
    • 本仓侧已交付硬资产423 tests 绿、A/B Δ+10.3pp CI[0,20.7] not-sig@N=29V4-Pro 89.7% vs V4-Flash 79.3%cost $0.0139/runOAuth 401/200 verified、resilience tested、SR 11-7 rescinded 2026-04-17 → OCC 2026-13
    • gated:judge-human κ(≥50 手标)、tau2-bench、真 GRPO 训练(GPU)、AMLworld/Elliptic precision/recall/FPR(数据)、云部署 + live OTel。

5. 常见误区 / 陷阱

  • 把 reward shaping 写死单一信号:单一 reward 易被 hack(答案对格式崩 / 格式对内容错)。composeRewards 多目标加权更稳,verifiers Rubric 同理。
  • 把 verifiers run 当成「真 GRPO 训练」:今天只是用 Qwen3 跑一个最小 env 出 reward,不是 RL 训练循环;真训练需 GPU,仍 gated。
  • block-summary 粉饰状态:三件套目前没有一个已完成;summary 必须如实写 gated 状态(PR=外部动作、repo=待 CI、GAIA=待跑需 key),把「待跑/待 CI/外部动作」写成「已完成」是这套笔记的诚信红线。
  • 混淆已交付与 gated:423 tests 绿 / V4 分数 / cost / OAuth 等是已交付硬资产;κ 手标 / tau2-bench / 真训练 / 外部数据集 / 云部署仍 gated,两类不可混为一谈。

6. 学习资源(每条带 YYYY-MM)

  • verifiers(Prime Intellect)docs,2026-03(当周版本需复验)。
  • DeepSeekMath: GRPO,arXiv:2402.03300(2024-02)。
  • DeepSeek-R1(GRPO 在 R1 的验证),arXiv:2501.12948(2025-01)。
  • RLVR(Reinforcement Learning with Verifiable Rewards)相关公开实践,2025-2026。
  • 本仓 src/agent/train/grpo.tscomposeRewards / exactMatchReward / formatReward / groupRelativeAdvantage / grpoScore,对应 Rubric+advantage,本日已走读)。
  • 本仓 src/aml/evalChecks.tsrunCodeChecks / codeCheckPassRate,确定性判定层,对应 Environment grader,本日已走读;注意真实路径 src/aml/ 与 seed 写法有出入)。
  • Qwen3 模型卡 / API 文档,当周 id 需复验。

SOTA检查 (2026-06 更新)

  • verifiers(Prime Intellect) 为 2026 活跃 RL-env 库,仍 SOTA,需复验当周版本。
  • Rubric 多 reward 组合 与 GRPO(arXiv:2402.03300)/ RLVR 主线一致,非过时。
  • 过时黑名单
    • 避免把 reward shaping 写死单一信号(composeRewards 多目标更稳);
    • 避免把「待跑/待 CI/外部动作」状态在收口时升级成「已完成」;
    • 避免 AutoGen/SK 作 agent 主线(维护模式)。
  • 下次复查点
    • verifiers 当周版本号;
    • B18 三件套各自 gated 状态是否解锁(OSS PR 是否 open/merged、独立 repo CI 是否 ≥18 绿、GAIA 是否拿到 ≥30% L1);
    • κ ≥50 手标、真 GRPO(GPU)、外部 AML 数据集是否落地——这些是 AICAP-180 之后的下一组里程碑。

衔接

  • 昨天:Day 179 — HF Agents Course Unit4 GAIA(provider-agnostic runner + DeepSeek-V4 跑 GAIA L1,取 leaderboard 分数)
  • 今天:verifiers Environment+Rubric 最小 env 跑 reward(需 key),回填 block-summary.md 三数汇总,B18 与 AICAP-180 收口
  • 明天:收口(AICAP-180 D1-180 完结;下一组里程碑见 SOTA 检查的 gated 清单——κ 手标 / 真 GRPO / 外部数据集 / 云部署)