herooooooooo/first-hf-run-pi-mono-gemma4-e2b-final
114
first-hf-run-pi-mono-gemma4-e2b-final
Gemma 4 E2B instruction model fine-tuned with SFT on redacted pi coding-agent session traces from badlogicgames/pi-mono.
Job IDs
Sweep Results
Inspect AI Evals
Raw Inspect JSON logs and compact summaries are in evals/.
Known Eval Limits
- Inspect evals used a custom Gemma chat template passed through
-M chat_template=...because the stock Inspect HF provider handedChatMessageobjects to a dict-oriented tokenizer template. - Inspect evals used
max_connections=8onl4x1to complete the full MBPP run within the HF Job timeout. - Adapter selection loss was recomputed by adapter-only recovery jobs because the original sweep jobs pushed adapters but crashed in the Trackio callback before writing
eval_results.json. - The README table reports Inspect
accuracyandstderr; it does not publish separate pass@k columns. - Inspect used the local Hugging Face Transformers backend on
l4x1withmax_connections=8, not vLLM throughput. - The eval sandbox is
localinside the HF Job, not Docker; this is less isolated than leaderboard-grade Docker execution. - The model was selected by held-out SFT eval loss, not by HumanEval or MBPP.
- Training is text-only; Gemma 4 multimodal inputs were not fine-tuned or evaluated.
- The dataset is a redacted trace dataset from one codebase, so results may overfit that interaction style.
- Assistant thinking/signature fields were stripped before SFT to avoid training the model to emit raw hidden traces.
Dataset and Privacy Notes
The source dataset was exported with `pi-share-hf`, including deterministic redaction, deny-pattern filtering, TruffleHog scanning, and LLM review before upload. This run consumes the published redacted dataset only.
The SFT converter:
- splits by session file before extracting examples;
- strips assistant thinking blocks and thinking signatures;
- represents tool calls as text;
- folds tool results into user context;
- omits image, audio, and video payloads for text-only training.
Reproducibility
The generated child scripts used by the controller are stored under run_scripts/. The article-style write-up is in `ARTICLE.md`.
