Spaces:
Paused
Paused
Commit History
-
SFT run #2: 8K-context Qwen2.5-Coder-3B (qwen3b-office-sft-kimi-long)β
+ comparison plot script + 4K vs 8K overlay Second L40S SFT run with --max-seq-len 8192 (no QLoRA β 48 GB has plenty of room). 354s training (vs 198s for 4K, +78% from O(LΒ²) attention). Final train_loss 0.193 vs 0.196 for 4K. The 8K end-of-train loss is slightly higher (0.103 vs 0.069) because the 8K run actually sees the long debugging trajectories that the 4K run silently truncated β those are the harder examples in the corpus. Same convergence, harder distribution. Real comparison comes from eval-set scores, not train loss. New script: data_pipeline/compare_sft_runs.py β overlays N runs' training_metrics.jsonl into a single PNG with rolling-mean smoothing. Both LoRA adapters live on HF Hub: bpHigh/qwen3b-office-sft-kimi (4K context, train_loss 0.196) bpHigh/qwen3b-office-sft-kimi-long (8K context, train_loss 0.193) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>301eb21 -
Phase 10.1: SFT log analyzer + Qwen2.5-Coder-3B training artifactsβ
Adds data_pipeline/analyze_sft_logs.py β pulls HF Job stdout via the huggingface_hub Python API, parses transformers Trainer dict-format log lines (single-quoted, sometimes truncated), coerces numeric fields to float, emits training_metrics.jsonl + summary.json + sft_loss_curve.png. Run on the Kimi-K2.5 SFT job (69ed74aed70108f37acdf4fc): - 54 step records - train_runtime: 198s on L40S - loss: 0.412 β 0.069 (min 0.043) - final train_loss: 0.196 over 4 epochs The PNG is the README hero plot for the before/after story. Note: hub_strategy='end' in train_sft.py meant trainer_state.json wasn't pushed to the Hub model repo; we relied on parsing the job's stdout. A future tweak to switch to hub_strategy='every_save' would make this analysis stage a one-line download instead. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>85f4b5e
-
Phase 8: SFT corpus builder with 6-filter pipelineβ
data_pipeline/build_sft_corpus.py reads inference.py runs (trajectories + summary.csv) and emits a TRL-SFTTrainer-ready messages-format JSONL. Filters drop: 1. error column non-empty (failed runs) 2. n_steps < --min-steps (default 2) 3. 1-step submit_file (defense in depth against grader exploits β Phase 7 showed a model can submit source unchanged and beat the diff; even with our byte-equality fix, future grader gaps could re-open this. Always dropped, regardless of score.) 4. final_score < --score-threshold (default 0.4) 5. malformed action_types (not code/submit/submit_file) 6. trajectories with no successful code step (reward <= 0.005) Filters 2 and 3 are intentionally redundant β both catch the same exploit class so a future refactor that loosens one doesn't open the door. Message reconstruction uses inference.py's SYSTEM_PROMPTS verbatim and mirrors the per-step user-feedback format, so the SFT corpus matches what the model will see at deployment. Sβ¦d78f879 -
Round 2 README, Qwen2.5-Coder-3B baseline, missing data_pipeline pullersβ
README rewrite reflecting the cross-format env state (xlsx + docx + pptx), both baseline runs side by side (MiniMax-M2.1 0.390 vs Qwen2.5-Coder-3B 0.002 β the RL training story), reward design philosophy (6-component process reward + multi-layer final grade + gold-stash anti-hacking), and pointer to edits.md for the full Round-1 β Round-2 change log. Also commits the data_pipeline/ pullers (finch_pull, osworld_writer_pull, pptarena_pull) referenced from the README β never made it into prior commits β plus the Qwen2.5-Coder-3B baseline run (results.json, summary.csv, all 22 task trajectories) and a missing PPTArena gold (case_32_arrange_image_and_text_ref.pptx). Cleans up stray patterns in .gitattributes from an earlier shell-quoting bug. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>4d300ac