CritPT-RL CritPT-RL
CritPT-RL
Status: public repository; local tests and analysis are reproducible, while remote training depends on private infrastructure.
One-line positioning: a post-training and evaluation lab for Qwen-style models on scientific Python-answer tasks, where the model must return an executable Python answer() function.
Why
I wanted a small but inspectable post-training loop: one task format, several reward variants, checkpoint evaluation, and enough logging to see whether the model learned the target skill or only learned the surface format.
What I Built
- A GRPO post-training workflow around verl, vLLM rollouts, checkpoint merge/eval scripts, and metric visualization.
- Data paths for synthetic tasks, official-style prompt wrappers, failure-mined hard cases, and LLM-generated teacher specifications.
- Reward variants including local verification, semantic code judging, length-aware shaping, strict final-answer judging, and LLM-as-a-judge wrappers.
- Evaluation-analysis scripts to compare local/synthetic rewards against official-style evaluation.
Hard Parts
- Keeping reward signals aligned with the benchmark target instead of rewarding easy-to-check formatting.
- Diagnosing why later runs produced cleaner
answer()structure without improving official70 accuracy.
Evidence
- GitHub repository
- Repository docs cover scope, result summaries, repository map, reproduction notes, and safety limits.
- The most useful finding is negative: formatting and executable structure are necessary, but not sufficient for benchmark transfer.
flowchart LR
A["Tasks and teacher specs"] --> B["Rollouts"]
B --> C["Reward variants"]
C --> D["Checkpoint eval"]
D --> E["Official-style eval"]
E --> F["Failure analysis"]
F --> A
Result / Lesson
The pipeline runs, but the main lesson is not “RL solved the task.” The sharper lesson is that reward design must match the semantic target of the official evaluation; otherwise training can improve format, style, and answer shape without moving the benchmark score.
CritPT-RL
状态:公开仓库;本地测试和分析可复现,远端训练依赖私有算力/环境。
一句话定位:面向 scientific Python-answer 任务的 Qwen-style 模型后训练与评测实验,模型需要输出可执行的 Python answer() 函数。
Why
我想做一个小而可检查的后训练闭环:任务形式固定,reward 变体清楚,有 checkpoint evaluation,也有足够日志判断模型到底学到了目标能力,还是只学会了表面格式。
What I Built
- 基于 verl、vLLM rollout、checkpoint merge/eval 脚本和指标可视化的 GRPO 后训练流程。
- synthetic tasks、official-style prompt wrappers、failure-mined hard cases、LLM-generated teacher specifications 等数据路径。
- local verification、semantic code judging、length-aware shaping、strict final-answer judging、LLM-as-a-judge wrappers 等 reward 变体。
- 用于比较 local/synthetic reward 和 official-style evaluation 的自动化分析脚本。
Hard Parts
- 让 reward 信号对齐目标 benchmark,而不是奖励容易检查的格式。
- 诊断为什么后期 runs 让
answer()结构更干净,却没有提升 official70 accuracy。
Evidence
- GitHub 仓库
- 仓库文档包含 scope、result summary、repository map、复现说明和安全边界。
- 最有价值的结论是一个负结果:格式和可执行结构是必要条件,但不足以保证 benchmark transfer。
flowchart LR
A["Tasks and teacher specs"] --> B["Rollouts"]
B --> C["Reward variants"]
C --> D["Checkpoint eval"]
D --> E["Official-style eval"]
E --> F["Failure analysis"]
F --> A
Result / Lesson
这个 pipeline 已经跑通,但重点不是“RL 成功解决任务”。更关键的教训是:reward 设计必须和 official evaluation 的语义目标一致;否则训练可能让格式、风格和 answer 结构变好,但 benchmark 分数不动。