The Compute Floor of Data Mixing
When loss-based reweighters start to drain easy synthetic text
Abstract
Automatic data-mixing methods are usually evaluated with pretraining sweeps from 70M to billions of parameters, which leaves a basic question open: how much compute does it take to tell these methods apart?
We study this on a pool split by provenance, 9 real Pile subsets and 9 synthetic instruction corpora, where every method receives the same per-domain validation-loss signal and we record how it shifts the synthetic share of the mixture. At 160M parameters (2.30 × 1017 FLOPs per run), the adaptive methods separate into two families across three seeds: loss-monotone reweighters move mass toward the harder real text (Group-DRO to a synthetic share of 0.20, DoReMi-style to 0.37), while interaction and gradient estimators stay near the 0.50 start. The split follows a training-induced loss gap that makes real text the high-loss provenance.
Two cheaper tiers locate a compute floor: the split is already clear at 1.2 × 1016 FLOPs, but at 2.5 × 1014 FLOPs it becomes seed-dominated, with Group-DRO showing no net direction and DoReMi-style reversing. Held-out test loss gives the least-moving method, Aioli, the lowest mean, a result we hedge given n = 3 and the confound of online training. The protocol diagnoses which mixture a policy selects, not final model quality; all code and artifacts are released at github.com/mixing-floor/compute-floor.
Two families, read off one number.
Given the identical loss signal, loss-monotone reweighters cut the synthetic share; Aioli, DoGE and Skill-It hold it near 0.50. The split is tight across all three seeds.
The trajectory decides, not the optimizer.
At round 0 the provenances are tied (2.94 vs 2.90 nats). Online training opens a gap of about one nat, real 4.09 vs synthetic 3.06, and a score that rises with own loss must chase it.
A floor, three orders below a frontier run.
The split already holds at 1.2 × 1016 FLOPs on pythia-70m and is seed-dominated at 2.5 × 1014. Below the floor, report a run as inconclusive, not as a null.
Protocol: freeze the signal, vary the rule
Every method runs the identical protocol, so the only variable across runs is the method itself. Mixing is sampling: each step draws a batch by multinomial(batch, p) over 18 domains, and every online method moves p off one signal, per-domain validation loss. We log p each round and read off the mass on the synthetic domains.
Real 9 Pile subsets
Synthetic 9 instruction corpora
The synthetic class is defined by instruction format rather than strictly by model generation: the slot labelled Self-Instruct holds the human-written Dolly-15k, and ShareGPT pairs human prompts with model responses.
Loss-monotone
The score rises with a domain's own (excess) loss, so the update is forced toward the higher-loss provenance.
Interaction & gradient
The score asks how much training on a domain lowers loss elsewhere: Aioli's mixing-law column sums, DoGE's gradient alignment.
Skill-It, Stratified
Skill-It routes loss through a learned skills graph and reshuffles within each provenance. Stratified (p = 1/k) never moves.
Turn the compute dial
The same six methods, the same pool, at three budgets. At the Full and Intermediate tiers the family split is clean. At the Minimal tier it falls apart: Group-DRO points nowhere on net and DoReMi-style climbs to 0.75.
Where the floor sits
The floor is the lowest budget at which the loss-monotone methods agree in direction across seeds. Group-DRO's three Intermediate-tier seeds land in [0.234, 0.239]; at the Minimal tier they scatter to 0.996, 0.253 and 0.262. Both cheaper tiers run pythia-70m, so the floor is a budget effect at fixed model size, not a size effect.
Loss is not value
What separates the families is how much the update's score leans on a domain's own loss. All six methods share one exponentiated-gradient update on the simplex and differ only in the score they feed it:
A loss-monotone score is forced toward the highest-loss provenance; an interaction or gradient score is not, because its move depends on cross-domain transfer, not on ℓ. Which provenance is higher-loss is an empirical input, and it fixes the direction of mass flow:
Decompose a domain's loss as , irreducible entropy plus a reducible gap. A raw-loss method cannot separate the two terms, so it chases whichever provenance carries the higher loss whether or not that loss is reducible. DoReMi's excess-loss centering is the standard fix, which is why it moves less than raw Group-DRO. DoGE's inner product carries a self term , so its near-uniform behaviour holds because cross terms dominate on this pool, not by construction.
Where the mass goes
It is not provenance the loss-movers chase but loss. Group-DRO piles onto high-loss real domains (Pile-CC 0.164, OpenWebText2 0.150) and starves easy synthetic ones (Code-Alpaca 0.004), yet also trims low-loss real domains such as Github and ArXiv. Aioli stays in a tight band around uniform.
Held-out test loss, hedged
Aioli has the lowest mean, 3.60 nats, and beats DoGE and Skill-It on every seed. Against Stratified, DoReMi-style and Group-DRO it lands within seed scatter, and no aggressive loss-mover pulls ahead of the uniform control by more than that scatter.
With n = 3 this describes average behaviour, not an ordering: models are scored after online training rather than a clean static retrain, so mixture choice is confounded with online dynamics and with Aioli's probe-driven trajectory. The runner's --static-eval path removes that confound.
Budget and faithfulness
| Tier | Model | ctx | batch | max steps | tokens / run | FLOPs / run | Group-DRO share | DoReMi share |
|---|
DoGE and Skill-It add one-time estimation surcharges over the Full-tier base: 2.37 × 1017 (+3%) and 2.87 × 1017 (+25%). The full headline study, 6 methods × 3 seeds, is about 4.3 × 1018 FLOPs, each run roughly 435× under a 1020-per-run ceiling. All runs used one NVIDIA A100 (80 GB).
| Method | Status | Deviations from the original |
|---|---|---|
| Aioli | faithful port | the Full tier uses a stateful EMA (0.1) path instead of the reference's stateless reset |
| DoGE | faithful, Alg. 1 | online single model, per-round estimation, mean-abs score scaling |
| Skill-It | faithful, Alg. 1 | continual-pretraining regime, uniform init, mean-abs scaling |
| DoReMi-style | approximate | validation-shard loss; no max(0,·) clip or c = 10−3 smoothing; frozen pretrained reference |
| Group-DRO | approximate | high-loss upweighting kept; joint min-max model step omitted |
| Stratified | exact | uniform control, p = 1/k |
Reproduce it
One self-contained runner regenerates every reported number. Data streams from the Hugging Face Hub; models continue from pretrained Pythia checkpoints.
git clone https://github.com/mixing-floor/compute-floor.git cd compute-floor pip install -r requirements.txt
--config SUPER_LIGHT), minutespython Code/run_experiment.py --config SUPER_LIGHT --seeds 0 --scenario S2_9R_9S --eval-test --out-dir runs/main--config HEAVY), 3 seedspython Code/run_experiment.py --config HEAVY --seeds 0 1 2 --scenario S2_9R_9S --eval-test --out-dir runs/main python Code/visualize_results.py --out-dir runs/main --fig-dir runs/figures
Compare your runs/main against the released Results/main. Signal-level diagnostics that log DoGE's gradient inner products, Skill-It's influence graph and Aioli's interaction blocks are in Results/diagnostics.
What this does not show
Behaviour, not quality
The protocol records which mixture each policy picks. No downstream task metric is reported, and no method is claimed to train a better model.
Online, not static
Test loss is measured after online training, which tangles mixture choice with training dynamics. A static retrain on each final mixture would settle it.
One scenario, small n
Scenario S2 at three seeds. The split and L2 ordering are tight apart from DoGE, which wanders from 0.453 to 0.557 between seeds.
Provenance ⇄ template
The synthetic class is defined by instruction format, so provenance and template are confounded. Whether the split survives past 160M, or vanishes on an all-real pool as predicted, is open.
Citation
@inproceedings{salehi2026computefloor,
title = {The Compute Floor of Data Mixing: When Loss-Based
Reweighters Start to Drain Easy Synthetic Text},
author = {Salehi, Shayan and Mohammadi, Iman},
booktitle = {MOSS Workshop at the Conference on Language Modeling (COLM)},
year = {2026},
url = {https://mixing-floor.github.io}
}@software{salehi2026computefloor_code,
title = {compute-floor: code and results for The Compute
Floor of Data Mixing},
author = {Salehi, Shayan and Mohammadi, Iman},
year = {2026},
version = {v1.0-camera-ready},
publisher = {Zenodo},
doi = {10.5281/zenodo.23618257},
url = {https://doi.org/10.5281/zenodo.23618257}
}10.5281/zenodo.23618257 pins the exact release used in the paper; 10.5281/zenodo.23618256 always resolves to the latest version.