09. Unique Engineering Highlights¶
1. End-to-end Grug CoT SFT on MLX¶
Problem: Want terse reasoning on-device without a CUDA cluster.
How: Generate → compress → validate → LoRA → GSM8K entirely around mlx-lm.
Evidence: scripts/*, README.md.
Interview line: "The product is the pipeline, not a single training command."
2. Style guide as executable prompt¶
Problem: Ad-hoc “write shorter” prompts drift.
How: style_guide.md loaded into compressor system prompt with before/after examples.
Evidence: style_guide.md, compress_traces.py.
3. Quantitative Grug score¶
Problem: Need an automatic accept/reject for compressed traces.
How: Multi-component score (ratio, articles, meta, fragments, repetition) with reject threshold.
Evidence: grug_score.py, validate_traces.py.
4. Logic-preservation validators¶
Problem: Compression can drop numbers or MC options.
How: Fact retention and structural checks before SFT.
Evidence: validate_traces.py.
5. SFT regularization against prompt leakage¶
Problem: Early fine-tunes regurgitated the style system prompt.
How: Negative raw-thinking mixture + system-prompt dropout + negatives that keep the prompt.
Evidence: format_data.py, report/REPORT.md, STORY.md.
Interview line: "Style transfer failed until the data mixture taught when not to compress."
6. Manual <think> injection after chat template¶
Problem: Templates strip thinking blocks.
How: Format chat then append thinking explicitly.
Evidence: format_data.py, STORY.md.
7. Benchmark leakage blocklist¶
Problem: Contaminating SFT with GSM8K/ARC items.
How: Exact + fuzzy Jaccard filtering at sampling time.
Evidence: sample_sft_prompts.py.
8. Best-val-loss checkpoint promotion¶
Problem: Last checkpoint is not always best.
How: Parse mlx_lm logs; copy best val step to canonical adapter files.
Evidence: train.py.
9. Resume-safe JSONL stages¶
Problem: Long generate/compress runs fail mid-way.
How: Skip completed ids on resume.
Evidence: generate_traces.py, compress_traces.py.
10. Client-only experiment visualizer + Pages¶
Problem: Share iteration comparisons without hosting a backend.
How: Static SPA loading local dirs or HF iterations; Actions deploy.
Evidence: visualize/, .github/workflows/deploy-visualizer.yml.
Ordinary (do not oversell)¶
- Calling
mlx_lm.lora - Matplotlib report plots
- dotenv for API keys
- React + Vite scaffolding