iamPi/sabaton-914184bb
sabaton-914184bb Cleaned SFT corpus for Bittensor SN120 (Affine), Reason v4 (weight_version_key=7). 17,655 rows, TRL prompt-completion format. Format is exactly ` THOUGHT: {z} {y}` on every row. How it was cleaned Derived from iamPi/tessera-77d11909. Prompts and actions are byte-identical to the source; only the thought channel changed, and 483 rows (2.66%) were removed. Repaired in place (40.08% of rows had at least one defect) defect rows… See the full description on the dataset page: https://huggingface.co/datasets/iamPi/sabaton-914184bb.
sabaton-914184bb
Cleaned SFT corpus for Bittensor SN120 (Affine), Reason v4 (weight_version_key=7). 17,655 rows, TRL prompt-completion format.
Format is exactly `</think> THOUGHT: {z}
{y}` on every row.
How it was cleaned
Derived from `iamPi/tessera-77d11909`. Prompts and actions are byte-identical to the source; only the thought channel changed, and 483 rows (2.66%) were removed.
Repaired in place (40.08% of rows had at least one defect)
The retag matters: the validator's BASH_RE matches only `bash , and split_rollout takes the last match as the action. A thought that quotes a bash fence could therefore be mistaken for the command whenever a model's real fence came out malformed.
Removed (483 rows)
Those last five were collapsed multi-turn transcripts: the "thought" contained the result of a command that had not been run yet, which would train the model to hallucinate observations.
Two-channel thoughts — latent analysis followed by a visible summary — were kept. That is the contract's own shape: split_rollout joins the latent and visible halves on purpose, and 57 of the 61 such rows carry genuinely distinct text in each half.
Guarantees
Every row was checked after rewriting: it round-trips through the validator's own split_rollout, is byte-identical to the force_text() rendering, has no think tag / THOUGHT label / bash fence / harness tag in its thought, clears the 80-char floor, and fits the rollout budget.
Cue
A fixed cue ends every thought:
</think>
THOUGHT: {z}
Next bash command to run now:
{y}The `
before the action is kept because inject_prompt() hardcodes that separator, so the trained string is byte-identical to what the teacher scores. 14 rows trip the fuzzy leakage heuristic because the cue contributes the tokens bash / command / run` to short commands that literally invoke bash.
The row set is identical to the no-cue build, so the two are a clean A/B.
