Spaces:
Sleeping
Sleeping
Commit History
-
add ablation experiments: truncation baseline + tag removal analysisβ
KinchiTruncation baseline: F1 stays at 0.14 regardless of cap. Truncation saves tokens but doesn't improve detection. Tag removal: Cohen's d = 6.65 for thinking length separation when tag is ignored. Allocation is representational, not scaffolding-dependent.1619d0b -
add: before/after thinking comparison graph β untrained vs trainedβ
KinchiLeft: untrained model thinks ~170 chars on every file (ratio 1.02x) Right: trained model thinks 469 chars on bugs, 80 on safe (ratio 5.9x)621e4f1 -
add: real training curves from 200-step GRPO run + improvement panelβ
Kinchi- training_curves.png: 3-panel plot from actual observed rewards - improvement_panel.png: 4-panel summary (GRPO curve, F1, transfer, red team) - blog_post.md: added curve images + data source transparency note - scripts/generate_final_curves.py: reproducible plot generatord0a40bc
-
fix: Red Team tab SSR crash + incremental training curves + storytelling polishβ
Kinchi- Fix render_red_team_attack SSR compatibility (0-arg calls) - Add IncrementalPlotCallback (curves every 25 steps) - Add eval_baseline.py to post-training pipeline - Restructure README: visual diagram, results table, collapsible details - Add results table to blog_post.md - Add deceptive files + cost observability to ENV.md - Add innovation summary to JUDGES.md - ENV.md: 8 attack vectors documented559db20 -
v2.3: right-size training budget + add red-team safeguards + tighter pitchβ
KinchiWHY THIS COMMIT: The v2.2 plan (750 optimizer steps) projected a 46h ETA on A10G against a 19h deadline (224s/step Γ 750 = 41.7h pure compute). Generation length was the bottleneck β ~1,200-token mean completions Γ K=4 β 70s of pure decoding per prompt. This commit halves MAX_COMPLETION_LENGTH and right-sizes the step budget to fit the available wall-clock with a fully-aligned LR schedule. TRAINING (train_grpo.py + openenv.yaml v3.3.0): MAX_COMPLETION_LENGTH 2048 β 1024 (2Γ generation speedup) MAX_SEQ_LENGTH 4096 β 2048 (smaller batch memory) NUM_EPISODES 500 β 200 (fits 5.5h on A10G) NUM_TRAIN_EPOCHS 3 β 2 (LR schedule matches budget) GRAD_ACCUM_STEPS 4 β 2 (2Γ more updates / sec) SAVE_EVERY 50 β 25 (~8 checkpoints across run) Net: ~200 optimizer steps, ~5.5h on A10G, $5.80 vs $18+ for v2.2. Warmup ends at step ~20, then 180 steps of post-warmup learning with cosine LR decay β clean S-cβ¦1113021 -
v2: calibrated metacognition as RL + inference-time budget + transfer evalβ
KinchiHeadline contribution - metacognitive_reward.py: auxiliary objective that rewards calibration (does actual <think> length match the predicted band?), difficulty awareness (long predictions on bugs, short on safe?), and coupling (every prediction tied to a real tool call?). Geometric structure is non-gameable; only optimum is honest, action-grounded difficulty assessment. - scripts/budget_processor.py: ThinkingBudgetProcessor (LogitsProcessor) that hard-caps <think> tokens per block and per episode at inference time. Closes the loop with the training-time signal: shape during GRPO -> learns to allocate; budget processor at inference -> degrades gracefully under arbitrary tightening. - transfer_eval.py + data/transfer_episodes.json: held-out non-CVE domain evaluation (5 PR-review episodes: race conditions, auth bypasses, tenant leaks, etc). Same allocation policy: F1 0.28 -> 1.00, thinking ratio 5.24x preserved. Demonstrates skill transfer. - scripts/generate_caliβ¦51fd6a7