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 评测链。
- 今天做两件事:
- stretch——用 Prime Intellect 的 verifiers 库起一个最小
Environment+Rubric,把「reward 可组合」这个 RL/eval 共同抽象跑通一次,和本仓grpo.ts的composeRewards对照; - 收口——回填
block-summary.md,把 B18 三件套(OSS PR 状态 / 独立 repo 测试数 / GAIA 分数)汇总成可核验的三个数。
- stretch——用 Prime Intellect 的 verifiers 库起一个最小
承上启下:昨天(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.ts的composeRewards(exactMatch/format组合),Environment 的判定对应evalChecks.ts的判定函数。 - 本仓早在 B11-12 就用纯函数把这套抽象写下来了:
composeRewards(parts)是加权平均、exactMatchReward/formatReward是确定性 grader、groupRelativeAdvantage是 GRPO 的组内标准化。 - verifiers 把它做成了可跑的 RL 环境库,本仓把它做成了可单测的纯数学——同一套思想,两种落地。
收口的意义:把 B18 折成三个可核验的数。
- B18 的纲领是「外部可验证」。一个批次结束,不应只留一堆笔记,而应留下三个外部世界能点开核对的数:
- 上游 OSS PR 的状态;
- agent-evals 独立 repo 的测试通过数;
- 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)—— 给每个样本挂advantage与reinforce = 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 的核心门槛),按checkId与relatedFailure双重分桶。- 头注诚实标注:这是**纯确定性 TS(非 LLM)**层,需 LLM 语义判断的失败留给 LLM-as-judge(无 key 时诚实降级)。这正是 verifiers Environment 里「确定性 grader」那部分的本仓对应物。
走读结论:本仓用 composeRewards(reward 组合)+ exactMatch/formatReward(verifiable grader)+ runCodeChecks(确定性 Environment 判定)已把 verifiers 的 Environment+Rubric 抽象在纯函数层落地并单测,verifiers run 只是把它放进真模型回合再验证一次。
3. 今日实战
- 安装 verifiers(Prime Intellect),当周版本号需复验。
- 用 Qwen3 起 1 个 verifiers minimal env:单 task + exactMatch rubric,跑出 reward(需 key)。
- 把 verifiers 跑出的 reward 与本仓
grpoScore/composeRewards对照,确认「reward 组合 + 组内标准化」语义一致。 - 回填
block-summary.md:汇总 B18 三件套数字——OSS PR 状态 / 独立 repo 测试数 / GAIA 分数,逐项标注 gated/已完成的诚实状态。 - commit block-summary.md。
4. 今日实测 / 产出
- verifiers reward 数字 + 三数汇总:reward 部分 待跑(需 key);
block-summary.mdcommitted(文档产物,可立即落地)。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=29、V4-Pro 89.7% vs V4-Flash 79.3%、cost $0.0139/run、OAuth 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.ts(composeRewards/exactMatchReward/formatReward/groupRelativeAdvantage/grpoScore,对应 Rubric+advantage,本日已走读)。 - 本仓
src/aml/evalChecks.ts(runCodeChecks/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 主线(维护模式)。
- 避免把 reward shaping 写死单一信号(
- 下次复查点:
- 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 / 外部数据集 / 云部署)