clarify-rl / docs /STATUS.md
Anurag Agarwal
Run 6 results + training fixes + all plots regenerated
aae07d0

STATUS β€” live project state

Update this file at the END of every session. Keep it short (≀ 100 lines). For history, see SESSION_LOG.md.

Last updated: 2026-04-26 11:15 IST β€” Phase 15: Training fundamentals fixed + Run 6 completed. Diagnosed 4 root causes of eval regression across Runs 1-5 (example contamination in prompt, sparse reward signal, missing required-keys hint, train/eval role mismatch). Fixed all 4 in train_grpo.py and inference.py. Launched Run 6 (1.7B, Ξ²=1.0, A100-large, Kanan account) β€” training rewards were non-zero from step 1 (0.12 first step) and peaked at 0.27, dramatically better than any previous run. Run 6 eval: avg_score=0.0607, completion_rate=16% β€” nearly matches 1.7B base (0.063 on same v5 prompts). All plots regenerated with Run 6 included. ~5.5 h to the 5 PM IST deadline.

Current phase

Phase 14 β€” submission: hackathon thesis is "KL-anchored GRPO at scale: can RL improve a strong reasoner without overfitting to one task family?" Run 1 (0.6B, Ξ²=0), Run 2 (1.7B, Ξ²=0), and Run 4 (1.7B, Ξ²=0.2) form a 3-point ablation; the 4B base eval marks the ceiling. Run 3 (4B, Ξ²=0) was canceled in queue and is logged in blog.md Β§7b as the natural next experiment (4B + Ξ²=0.2 + half-LR).

HF Space: https://huggingface.co/spaces/agarwalanu3103/clarify-rl β€” LIVE, 64 concurrent sessions. Trained models: https://huggingface.co/agarwalanu3103/clarify-rl-grpo-qwen3-0-6b, https://huggingface.co/agarwalanu3103/clarify-rl-grpo-qwen3-1-7b, https://huggingface.co/2022uec1542/clarify-rl-grpo-qwen3-1-7b (Run 4, Ξ²=0.2 KL anchor).

Last completed (this session)

  • βœ… Final hackathon-criteria audit against Discord auto-validator gates + Themes & Judging Criteria + FAQ + Help Guide β€” all P0/P1 gates GREEN
  • βœ… README restructured for judging: Judges-60s-Tour at top, Problem Β· Environment Β· Results Β· Why-it-matters arc, 1-line caption under every embedded plot (plots 01/02/03/04/05/06), Wild Card #5 promoted to title block
  • βœ… Run 4 model card: added "Weights mirror note for judges" + commented-out fallback repo = "2022uec1542/clarify-rl-grpo-qwen3-1-7b" so judges always have a working from_pretrained() path even if the personalized mirror is still uploading
  • βœ… Logged-out smoke test of 25 submission URLs: env Space landing/README, demo Space, GitHub repo + README + blog + slides + trace_demo + checklist + STATUS + notebook + openenv.yaml + rubrics, 3 anurag203 model cards, upstream Run 4 weights HEAD, W&B project, Colab badge target, 6 plot PNGs β€” all 200/302
  • βœ… Env Space functional smoke: /health β†’ {"status":"healthy"}, /reset β†’ real CallToolObservation with family=medical_intake, request="I have a problem.", task_id=medium, max_steps=10, questions_remaining=6
  • βœ… Env Space README has all 5 storytelling anchors (Wild Card / Judges-60s-Tour / Problem Β· Environment / plot has a 1-line caption / epistemic humility)
  • βœ… Pre-existing wins kept: 3 trained GRPO runs evaluated, 4B base ceiling, plots regenerated, all docs reconciled, demo Space (Replay + KL-anchor ablation + Live chat tabs) deployed

Headline n=50 v4 numbers (fair) β€” corrected

Model Avg score Completion Format pass
Random policy 0.0000 0% 0%
Qwen3-0.6B base 0.0000 0% 0%
Qwen3-0.6B GRPO (Run 1, Ξ²=0) 0.0076 ↑ 2% 0%
Qwen3-1.7B base 0.0669 18% 0%
Qwen3-1.7B GRPO (Run 2, Ξ²=0) 0.0286 ↓ 6% 0%
Qwen3-1.7B GRPO (Run 4, Ξ²=0.2) 0.0560 βœ… 14% 0%
Qwen3-4B-Instruct 0.0399 6% 0%
Qwen3-4B base ← REAL CEILING 0.1446 24% 0%
Qwen3-4B GRPO (Run 3) canceled β€” queue . .

Per-family table β€” KL anchor verdict in bold

Family 1.7B base Run 2 (no-KL) Run 4 (+KL) 4B base 4B-instruct
event_planning ΞΌ 0.138 0.000 ❌ 0.175 βœ…βœ… 0.340 0.166
event_planning max 0.522 0.000 0.510 0.795 0.757
meeting_scheduling ΞΌ 0.153 0.130 ↑ 0.064 ↓ 0.287 0.000
meeting_scheduling max 0.500 0.725 ↑↑ 0.350 0.819 0.000
medical_intake 0.000 0.000 0.000 0.000 0.000
support_triage 0.000 0.000 0.000 0.000 0.000

Refined narrative β€” this is the hackathon thesis confirmed:

  1. GRPO without anchor causes capability collapse. Run 2 (Ξ²=0) drove event_planning from 0.138 β†’ 0.000 mean, sacrificing breadth for one peak in meeting_scheduling. Avg_score regressed 0.067 β†’ 0.029.
  2. GRPO with KL anchor cleanly improves the protected family. Run 4 (Ξ²=0.2, lr=5e-7) on the same model recovered avg to 0.056 AND beat base on event_planning (0.138 β†’ 0.175). The anchor literally fixed Run 2's regression.
  3. The cost is peak capability. Run 4 dropped meeting_scheduling max from 0.725 (Run 2's gem) to 0.350. KL prevents the extreme specialization that Run 2 leaned on.
  4. GRPO unlocks weak bases: 0.6B couldn't touch event (0 β†’ 0.032 mean, 0 β†’ 0.382 max). Real new capability.
  5. Strong base sets the bar: Qwen3-4B base scores 0.1446 without any RL β€” beats 4B-Instruct (0.0399) on every solvable family. Whatever Qwen3 instruct-SFT did, it weakened reasoning on multi-turn tool-using setups. Open question: does GRPO+KL push 4B above this β€” Run 3 was canceled before we could find out (logged as future work in blog.md Β§7b).

In progress (right now)

  • βœ… Run 4 weights mirror to anurag203/clarify-rl-run4-qwen3-1.7b-beta0.2 is LIVE. Upload completed 06:33 IST (8147 s = 2 h 16 min total elapsed for snapshot_download + upload_folder); model.safetensors resolves to a 6,882,335,328-byte (~6.41 GiB) presigned cas-bridge.xethub.hf.co URL with x-xet-cas-uid=public. Watcher PID 46586 autopiloted the cleanup at 06:33:03: stripped the fallback block from docs/model_cards/run4-qwen3-1.7b-beta0.2.md, committed edd1efe docs: drop Run 4 weights-mirror fallback note (mirror is live), pushed to GitHub main, and pushed the cleaned README onto the HF Hub model repo. Hero model is now self-contained on the personalized mirror β€” no fallback path needed.
  • βœ… Submission lap CLOSED: 3 trained runs evaluated, 4B base eval as ceiling, all plots regenerated, all docs reconciled, Wild Card #5 + Judges-60s-Tour + plot captions live on README and env Space.
  • βœ… All 25 logged-out submission URLs β†’ HTTP 200/302
  • βœ… Env Space /health + /reset β†’ real OpenEnv structured responses

Decision dial: scoreboard of expected vs actual

  1. βœ… Run 4 mean (0.056) β‰ˆ 1.7B base (0.067) β†’ KL anchor recovered most of the regression. +0.027 vs Run 2 no-KL.
  2. ❌ Run 4 max(meeting) = 0.350 < Run 2's 0.725 β†’ KL anchor traded the peak for breadth. Expected.
  3. βœ… Run 4 event_planning ΞΌ (0.175) > 1.7B base (0.138) β†’ KL not just preserved but improved the family Run 2 destroyed. Surprise upside.
  4. βž– Run 3 (4B GRPO) β†’ not run (HF Jobs queue saturation, canceled at 48 min). Logged as future work; not blocking the submission since Run 4 already validates the central thesis on 1.7B.

Next step (default if user just says "continue")

  1. βœ… All P0/P1 hackathon gates GREEN β€” auto-validator + Themes & Judging Criteria + FAQ + Help Guide cross-checked
  2. βœ… Final docs reconciled β€” README, env Space README, slides, blog, model cards all synced
  3. βœ… Logged-out smoke test of 25 URLs + Env Space functional smoke both PASSED
  4. NEXT (optional polish before 5 PM IST): (a) capture an assets/demo_chat_screenshot.png from the demo Space "Live chat" tab and embed it in README β€” improves "Storytelling" 30% gate; (b) confirm Run 4 mirror upload finished (hf_hub_url returns 200 on model.safetensors) and remove the fallback note from the model card; (c) submit through the official Discord submission form once the form opens.
  5. HARD STOP: Apr 26, 2026, 5:00 PM IST.

Open questions / blockers

  • 🟒 vLLM-in-HF-Job eval pipeline solid (Run-1: 6.7 min, Run-2: 113 sec, Run-4: 7.8 min, 4B base: βœ…)
  • 🟒 Auto-eval state persisted to outputs/auto_eval_state.json β€” restart safe
  • 🟒 Token plumbing for 3 accounts working
  • 🟒 Plots auto-skip Run 3 because eval JSON never landed β€” no manual cleanup required

Files most recently touched (this session)

  • outputs/runs.json β€” Run 3 marked CANCELED_QUEUE_SATURATION with reason; Run 4 marked completed with eval job id
  • outputs/auto_eval_state.json β€” Run 3 = CANCELED, Run 4 = COMPLETED
  • outputs/run4_artifacts/log_history_partial.json β€” full 300-step log scraped from live job
  • outputs/run_artifacts/1.7B-KL/evals/ β€” Run 4 eval JSON pulled from Hub
  • outputs/run_artifacts/4B-base/evals/ β€” 4B base eval (real ceiling)
  • docs/blog.md, docs/trace_demo.md, docs/STATUS.md, README.md β€” KL-anchor narrative; Run 3 β†’ future work
  • plots/01–07_*.png + plots/runs_summary.json β€” regenerated against the 7-row scoreboard
  • scripts/compare_runs.py, scripts/refresh_all_plots.sh, scripts/watch_and_eval.py, scripts/poll_status.sh β€” orchestration kept (Run 3 specs gated on file existence, no-op if missing)

Locked decisions

  • Idea: ClarifyRL β€” train asking-vs-guessing via RL
  • Theme: #5 Wild Card (primary) + #3.2 + #2
  • 5 families: coding / medical-intake / support-triage / meeting / event
  • Stack: OpenEnv 0.2.2 + MCPEnvironment + TRL GRPO β‰₯1.0 + Qwen3 family (0.6B / 1.7B / 4B)
  • Compute: HF Jobs, 3 successful trained runs + 1 base eval across 3 accounts; spend β‰ˆ Run-1 $1.08 + Run-2 $2.21 + Run-3 v3 (OOM) $0.40 + Run-3 v5 (canceled in queue, $0.00) + Run-4 $1.80 + 4B base eval $0.13 + Run-4 eval $0.20 = ~$5.8 of $120 budget
  • Submission format: HF blog post (markdown) + GitHub repo + env Space + demo Space + W&B project + Colab notebook
  • MCP tools: ask_question, propose_plan, get_task_info
  • Deadline: Apr 26, 2026, 5:00 PM IST (~9.5 hours from this update)