- 大模型
- 强化学习
- AI Agent
【免费下载链接】a3-rl-laion_nemotron-gym-agent-calendar-80-8B
a3-rl-laion_nemotron-gym-agent-calendar-80-8B 是一个用强化学习(SkyRL)训练的 8B Agent 模型 checkpoint,专门用于日历操作类 Agent 任务。这个仓库附带了完整的训练日志:82 个训练步的指标记录、45,711 条 trial 级轨迹数据、vLLM 推理引擎监控数据,以及一份现成的指标分析报告。本文带你从零读懂这套训练日志:Reward 曲线怎么画、错误分布说明了什么、Turn 统计能挖出哪些训练细节。
一分钟看懂:这个仓库里有什么 📦
这个 checkpoint 是通过reward/avg_raw_reward的 5 周期 EMA(alpha=1/3)从 80 步训练链中选出来的step 80,最终pass@8 = 1.0。核心资料分布如下:
| 文件 | 内容 | 适合谁读 |
|---|---|---|
| README.md | checkpoint 来源、选点依据、基座模型说明 | 所有人,先看这个 |
| rl_config.yaml | 完整的 RL 训练配置(SkyRL + vLLM + Harbor 沙箱) | 想复现训练的人 |
| training_logs/20260602_174231_metrics_report.md | 自动生成的指标分析报告(含 45,711 条 trial 的统计) | 本文主角 |
| training_logs/20260602_174231_metrics_table.csv | 82 个训练步 × 60+ 指标的明细表 | 想自己画图/筛数据 |
| training_logs/20260602_174231_trial_results.csv | 45,711 条 trial 明细(异常类型、reward、耗时、token 数) | 做 case 分析 |
| training_logs/20260602_174231_vllm_metrics_table.csv | 1 万行 vLLM 引擎监控(吞吐、KV cache、prefix cache 命中) | 关心推理效率 |
模型权重部分则是标准的 Hugging Face 布局:config.json、model.safetensors.index.json、tokenizer.json、chat_template.jinja 等,可直接加载使用。
💡 想看原始文件,可先克隆仓库:
git clone https://gitcode.com/hf_mirrors/laion/a3-rl-laion_nemotron-gym-agent-calendar-80-8B.git
Reward 曲线怎么读:80 步训练全程复盘 📈
训练由 3 个 job 接力完成(见 metrics_report.md):
- job_554408:step 1–3,冷启动阶段,平均每步要等生成 13,400+ 秒
- job_554409:step 3–75,主力训练段,步耗时降到 400 秒左右
- job_554410:step 75–80,收尾段,
pass@8全程 1.0
Reward 曲线的关键节点(数据来自 metrics_report.md 的 Training Progression 表):
| Step | Reward (avg_raw) | Pass@8 | 阶段解读 |
|---|---|---|---|
| 1 | 0.3262 | 0.8281 | 基座模型起点,已经不错 |
| 2–3 | 0.1426 → 0.0195 | 0.5781 → 0.0938 | 冷启动 + 首次 job 被中断,样本质量不稳 |
| 3(续跑) | 0.7734 | 0.9194 | job_554409 从 step 3 恢复,reward 立刻回正 |
| 8 | 0.7891 | 1.0000 | pass@8 首次打满,此后基本不再回落 |
| 16 | 0.8574 | 1.0000 | 进入 0.85+ 平台 |
| 32 | 0.8968 | 1.0000 | 稳步爬坡 |
| 55 | 0.9941 | 1.0000 | 全程最高点 |
| 64–75 | 0.91–0.99 波动 | 1.0000 | 平台期,小幅震荡 |
| 80 | 0.9727 | 1.0000 | 选中的最终 checkpoint(EMA = 0.9785) |
几个值得注意的细节:
- pass@8 比 avg_reward 更"诚实":
pass@8(8 个采样中至少 1 个成功的比例)在 step 8 就达到 1.0,而avg_raw_reward要到 step 55 才摸到 0.99。这说明模型早期就能"偶尔做对",RL 后期优化的是稳定做对(8/8 全对的比例)。 - step 2–3 的低谷不用慌:那是第一个 job 的中断点,
async/staleness(策略新鲜度)数据显示当时样本过期比例偏高;恢复训练后一步即回升到 0.77。 - 选点逻辑:README 说明了 checkpoint 是 5 周期 EMA 平滑后选出的,就是为了避开 step 55 那种单点尖峰,选的是"稳定区"。
完整 82 步数据在 20260602_174231_metrics_table.csv 的reward/avg_raw_reward、reward/avg_pass_at_8两列,用任意表格软件两分钟就能画出自己的 Reward 曲线。
45,711 条 Trial 数据怎么读:先看这 5 个字段 🔍
trial_results.csv 一行就是一条 trial(一次完整任务尝试),字段含义如下:
| 字段 | 含义 | 读数技巧 |
|---|---|---|
task_name/trial_name | 任务包名 / trial 唯一 ID | 定位具体任务 |
n_episodes | 交互轮数(Turn 数) | 本文 Turn 统计的数据源 |
n_input_tokens/n_output_tokens | 输入 / 输出 token 数 | 判断上下文压力 |
exception_type | 异常类型,空 = 无异常 | 错误分布的数据源 |
reward | 奖励值(1.0 = 成功) | 成功率的直接度量 |
agent_duration_sec | Agent 执行耗时(秒) | 中位数 147 秒,均值被长尾拉到 291 秒 |
先记住三个总量(来自 metrics_report.md):
- Total trials parsed: 45,711
- 其中43,941 条有 reward 数据,成功率91.0%(平均 reward 0.9101)
- 45,318 条有 turn 数据(用于 Turn 统计)
错误分布:94.9% 的 trial 没有任何异常 ✅
异常类型统计(metrics_report.md):
| 异常类型 | 数量 | 占比 | 性质 |
|---|---|---|---|
| 无异常 | 43,386 | 94.9% | — |
AgentTimeoutError | 1,434 | 3.1% | 模型层面:Agent 没在时限内完成 |
ContextLengthExceededError | 207 | 0.5% | 上下文超过 32K 上限被截断 |
AgentSetupTimeoutError | 194 | 0.4% | 沙箱启动超时(环境侧) |
Timeout | 131 | 0.3% | 通用超时(环境侧) |
VerifierTimeoutError | 90 | 0.2% | 验证器跑不完(环境侧) |
DaytonaError/DaytonaAuthenticationError/DaytonaTimeoutError | 79 / 78 / 62 | 0.5% | Daytona 沙箱平台故障 |
EnvironmentStartTimeoutError | 49 | 0.1% | 环境启动超时 |
RateLimitError | 1 | ≈0% | 限流,可忽略 |
解读要点:
- 模型"真实能力"相关的错误只有两类:
AgentTimeoutError(3.1%)和ContextLengthExceededError(0.5%),其余基本是沙箱/网络等基础设施噪音。 - 训练配置里专门做了错误分流(rl_config.yaml 的
exclude_exceptions/mask_exceptions/passthrough_exceptions):环境故障类异常会被 mask 掉不进入梯度的同时计 0 分,AgentTimeoutError则原样传给训练。所以上面的错误分布里,环境类异常占比高 ≠ 训练被污染。 - 94.9% 干净率说明这套 Daytona 沙箱 + 675 并发 trial 的基建整体很稳。
Turn 统计:成功平均 3 轮,失败中位数只有 2 轮 🔄
45,318 条 trial 的 turn 数(n_episodes)分布(metrics_report.md):
| 指标 | 值 |
|---|---|
| 均值 | 2.9 |
| 中位数 | 2.0 |
| 标准差 | 1.3 |
| 最小 / 最大 | 1 / 27 |
按异常类型分组的 turn 数最能说明问题:
| 异常类型 | 平均 Turn | 中位 Turn | 数量 |
|---|---|---|---|
VerifierTimeoutError | 3.4 | 4.0 | 90 |
| 无异常 | 3.0 | 3.0 | 43,386 |
ContextLengthExceededError | 1.8 | 2.0 | 207 |
DaytonaAuthenticationError | 1.4 | 1.0 | 77 |
AgentTimeoutError | 1.2 | 1.0 | 1,426 |
Timeout | 1.0 | 1.0 | 131 |
按成败分组:
| 结果 | 平均 Turn | 中位 Turn | 数量 |
|---|---|---|---|
| Success | 3.0 | 3.0 | 39,990 |
| Failure | 3.1 | 2.0 | 3,951 |
能读出两个结论:
- 多数失败卡在"第一、二轮":
AgentTimeoutError的中位 turn 是 1,失败 trial 的中位 turn 只有 2——大量失败是 Agent 早期就绕不出来,而不是多轮之后越做越乱。 - 成功的任务平均需要 3 轮交互:日历任务的合理完成节奏就是 2–4 轮(查日历 → 改日程 → 确认),超过 10 轮的长尾 trial(最多 27 轮)基本是"打转",这类样本值得单独拉出来看对话。
想亲手验证,用一张表就能算:把 trial_results.csv 按exception_type分组,对n_episodes求 mean/median,结果与上表一致。
关键训练参数:rl_config.yaml 里的 6 个核心数字 ⚙️
rl_config.yaml 记录了这次 RL 训练的全部超参,新手只需要盯住 6 个:
| 参数 | 值 | 含义 |
|---|---|---|
trainer.max_steps | 80 | 共训练 80 步(L16) |
trainer.train_batch_size | 64 | 每步 64 组 prompt(L18) |
generator.n_samples_per_prompt | 8 | 每个 prompt 采样 8 个 rollout → 每步 512 条 trial(L63) |
generator.num_inference_engines | 48 | 48 个 vLLM 推理引擎做 rollout(L62) |
trainer.fully_async.max_staleness_steps | 16 | 异步训练允许样本滞后 16 步(L56) |
harbor.n_concurrent_trials | 675 | 沙箱环境最大并发 675 个 trial(L111) |
80 步 × 512 trial ≈ 40,960,加上重跑和重试,正好对应 45,711 条 trial 明细的规模。异步训练的新鲜度数据(async/staleness_mean均值 3.64、async/discard_rate均值 0.59%)说明样本"过期"程度很低,异步架构基本没牺牲训练质量。
vLLM 推理侧:prefix cache 命中率 70%+ ⏱️
20260602_174231_vllm_metrics_table.csv 有 1 万多行逐秒级的引擎监控,聚合结论(metrics_report.md):
| Job | 单引擎生成吞吐 | KV cache 占用 | Prefix cache 命中率 | 状态 |
|---|---|---|---|---|
| job_554408(step 1–3) | 52 tok/s | 6.1% | 67.5% | 引擎饥饿:瓶颈在上游环境启动,不在推理 |
| job_554409(step 3–75) | 404 tok/s | 39.6% | 76.5% | 满载,引擎成为吞吐主力 |
| job_554410(step 75–80) | 417 tok/s | 41.0% | 73.6% | 满载 |
这也解释了 Reward 曲线里"前 3 步特别慢"的现象:冷启动时 48 个推理引擎大多在空等沙箱环境,step 1 单步耗时 16,273 秒,其中 16,028 秒都在wait_for_generation_buffer。稳态后单步约 200–700 秒,其中策略更新policy_train平均 139.7 秒、权重同步sync_weights平均 21.2 秒。
新手上手路径:3 步读完这套训练日志 🚀
- 先看报告:打开 20260602_174231_metrics_report.md,按 "Training Progression by Log → Trial-Level Analysis" 的顺序读,10 分钟掌握全貌。
- 再筛明细:用表格工具打开 20260602_174231_trial_results.csv,重点筛
exception_type非空且reward=0的行做 case 分析;想看"打转"的 trial,按n_episodes > 10排序即可。 - 最后看配置:对照 rl_config.yaml 理解错误处理策略(
mask_exceptions/default_error_treatment=zero),搞清哪些错误进了训练、哪些只是基建噪音。
一句话总结:这套 45,711 条 trial 数据讲了一个"基座底子好(step 1 reward 0.33、pass@8 0.83)→ 80 步 RL 把成功率从 91% 练到 pass@8 恒 1.0"的故事;94.9% 的干净率、成功 trial 平均 3 轮的节奏,以及 prefix cache 70%+ 的命中率,共同证明这是一次基建扎实、训练收敛干净的强化学习 Agent 训练。
- 大模型
- 强化学习
- AI Agent
【免费下载链接】a3-rl-laion_nemotron-gym-agent-calendar-80-8B
相关推荐
a3-rl-laion_nemotron-gym-agent-calendar-80-8B:面向新手完全解读,RL训练的8B智能体模型到底强在哪?
a3 rl laion_nemotron gym agent calendar 80 8B:面向新手完全解读,RL训练的8B智能体模型到底强在哪? a3 rl
大模型强化学习AI Agent微信小程序接入 PAGX Viewer SDK 实战指南:WASM 渲染、三步加载与评论浮层全解析
微信小程序接入 PAGX Viewer SDK 实战指南:WASM 渲染、三步加载与评论浮层全解析 本指南以 libpag 仓库中 pagx/wechat/ 模
大模型强化学习AI Agent如何5分钟快速上手a3-rl-laion_nemotron-gym-agent-calendar-80-8B?从零到跑通推理的完整教程
如何5分钟快速上手a3 rl laion_nemotron gym agent calendar 80 8B?从零到跑通推理的完整教程 a3 rl laion_
大模型强化学习AI Agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考