▶  View the poster (PDF, 48×36 in) This page is the companion report for the poster.

Compute-Optimal Scaling for a Data-Constrained Antibody MLM

Jinglin Jian · Karenna Ng · Sarah M. Burbach · Shelby Ferrier · Mahdi Shafiei Neyestanak · Praneeth Gangavarapu · Benjamin Nemoz · Jonathan Hurtado · Stefano Forli · Bryan Briney

Scripps Research, La Jolla, CA, USA

muP-completeP infrastructure  ·  iso-FLOP allocation & repetition-return experiments  ·  Rd*≈151  ·  2026-07-22

1   The question

Scaling laws are by now well established for large models: the bigger the model, the more capable it is and the better it does on downstream tasks. But how do you know how large a model to train, and how much data it needs to match? The field’s most popular answer — Chinchilla — says spend compute at ~20 tokens per parameter. That recipe, though, assumes an effectively infinite corpus. Our antibody corpus is fixed and small: U0 = 7.04M sequences ≈ 2.25×109 tokens per epoch. Once compute grows, we are forced to repeat data, and repeated tokens are worth less than fresh ones. The right object is therefore a data-constrained ("domain-Chinchilla") law that separates model size N, unique data U, and repetition R = D/U0:

L(N, U, R) = E + A / Nα + B / Deffβ,    Deff = U0·(1 + Rd*·(1 − e−(R−1)/Rd*))

Six parameters: floor E, capacity term (A, α), data term (B, β), and the repetition decay constant Rd*. Everything below is aimed at pinning these six from our own runs.

return and allocation overview
At a glance — return & allocation on the fixed antibody corpus. (Left) repeated data stays near-fresh far longer under masking (Rd*≈151) than under causal LMs (Rd*≈15): 151 epochs are worth ≈96 fresh, with no overfitting turn through the deepest 118.5 epochs. (Right) at one fixed budget the compute-optimal recipe is set by the objective — the two causal-LM recipes (Chinchilla, Muennighoff) pick ≈500M models, while masked modeling (Cheng, ours) goes smaller and longer; our optimum is 80M for 51 epochs.

2   Aim 1 — muP-completeP: tune the LR once, transfer to any size

To trace a loss-vs-N curve at each compute budget we must train models from 20M to 800M. Re-tuning the learning rate at every size would confound "size effect" with "LR mistuning". muP-completeP removes that: you tune a single base_lr at the 124M proxy, and the parameterization fans it out and rescales the rest of the network automatically as a function of width and depth. Concretely, what completeP modifies:

Tensor groupQuantitycompleteP scaling (relative to base 256-wide, 1-deep)
hidden weight matriceslearning ratebase_lr × (1/width_mult) × Lαd−1
hidden weight matricesinit variance∝ width−1
residual branchoutput scale∝ L−αd  (= 1/√L at αd=0.5)
readout / unembeddinginit & LR∝ 1/width ; LR width-invariant
embed / LayerNormlearning ratewidth-invariant (scale 1)
Adam ε, weight decayε ÷ width_mult (× L−αd on hidden); wd × width_mult

Here width_mult = hidden/256 and depth enters through the exponent αd. On 124M that gives hidden_lr = base_lr / 12.5 — you set one number, completeP does the rest.

The one fix that mattered: αd = 1.0 → 0.5

At the textbook depth exponent αd=1.0 the depth transfer is broken. Changing the residual/LR depth exponent to 0.5 (residual ∝ 1/√L) fixes it. Coordinate-check transfer scores (lower is better; <0.10 excellent, 0.10–0.20 ok, >0.20 broken):

Coord-check axisαd = 1.0αd = 0.5non-muP control
width0.1380.0910.55 (broken)
depth0.275 (broken)0.0910.30 (broken)
joint width+depth+heads (real ladder path)0.075–0.1201.024 (broken)
Outcome: base_lr locked at 2.5×10−3 (bowl minimum, verified) and reused at every model size — no per-size LR sweep. An aspect-ratio probe (wide vs deep at fixed N, C) further shows model shape is a second-order effect (Δloss ≤ 0.001, within noise), so N is the right coordinate and depth transfer holds in a full training run, not just the 8-step diagnostic.

3   Two experiment families

FamilyWhat variesPins
Allocation — iso-FLOP ladder (isoJ)fixed corpus U0; at each budget ck fix total D, scan N (20M–800M)α, A, and the N-frontier N*(C)
Return — repetition grid (rdREP)fresh arm (R=1, vary U) + repetition arm (fix U, crank R→128, 3 seeds)β, B, E (fresh) and Rd* (repetition)

4   Results

iso-FLOP bowls and repetition curve
Measured iso-FLOP bowls: eval loss vs model size N (log), one curve per compute budget c1–c5 (★ = compute-optimal N*). The optimum stays small (≈20–80M) and the empirical frontier climbs only slowly across the 6.5× compute span, far below the free-data Chinchilla prediction. (Repetition-return curves — near-fresh band widening with unique data, sharp turn at R≈64–96 for U0/32 up to >118.5 for the full corpus — are summarized in the overview figure and Section 6.)

Representative bowl (c1, C = 8.3×1018), final eval loss (LR fully decayed):

N20M40M80M124M160M200M320M
loss.21967.22015.22263.22694.23006.23132.23438
Headline: the compute-optimal model is ~10× smaller than the free-data Chinchilla prior. At c1 the prior predicts N*≈228M; we measure N*≈20–40M. Every budget's optimum sits far to the left, and the optimum stays small (≈20–80M) across all five budgets rather than climbing toward the prediction.

5   The fitted law & compute-optimal frontier

Solving the surface along each iso-FLOP line gives the compute-optimal frontier N*(C), R*(C), L*(C). On a single fixed corpus the six parameters are individually non-identifiable (a "sloppy" model — E, α, β, Rd* are constrained only jointly), so we report the derived frontier rather than parameter point values. The deepest run (20M@c4, ~118 ep) sets the repetition cap at R≤118. The single additive surface carries residual stress at the top two budgets (reduced χ2 ≈ 3.83 on the turn-free R≤118 domain): the fitted N* stays ~30M while the measured bowls turn up at 40–80M. We therefore take the measured bowl minima as the primary N*(C) evidence and use the fit for the two-regime structure and the L* interpolation. The joint fit places the repetition constant at Rd*≈1512ν≈3.1) — an order of magnitude above the causal-LM ≈15, because dynamic masking makes each repeat only a partial repeat.

C (FLOPs)fitted N* [95% CI]R* (ep)L*measured N* (bowl)
c1  8.3×101825M [10, 31]240.216620–40M
c2  1.3×101926M [10, 32]370.2131≤20M
c3  2.1×101927M [13, 33]580.209720–40M
c4  3.4×101929M [21, 35]880.206640M
c5  5.4×101934M [34, 37]1170.203980M

Fitted N* uses the joint σ-weighted robust fit (bootstrap CIs, 300 resamples); measured N* is the two-sided bowl minimum on the isoFLOP ladder. They agree at c1–c3 and diverge at c4–c5 — the additive form cannot bend up fast enough, so the measured value is what we report as the optimum.

isoFLOP curves and compute-optimal allocation
Fit diagnostics for the data-constrained law (reduced χ2≈3.8 on the turn-free R≤118 cells). (a) eval loss vs N, one curve per budget (points = measured cells, ★ = measured optimum, ◊ = fitted optimum); the held-out c6 measured optimum (80M) lands below its predicted curve. (b) loss vs repetition R along each iso-FLOP line, ★ = fitted compute-optimal R* sliding 24→117. (c) predicted vs measured loss; the held-out c6 cells sit above the diagonal (measured < predicted).
The allocation rule: extra compute does not buy a bigger model first. It buys more epochs of a small (~30M) model (matching Muennighoff’s “smaller models, more epochs”), and grows the model only once epochs saturate at the repetition ceiling (~118 ep, around c4–c5). Under left-censoring a single N*(C) slope is not identifiable, so the frontier is reported as measured optima rather than as a power-law slope. The fresh-arm data exponent is β ≈ 0.44. The turn is flat (~64–96 ep) at small corpora and rises steeply with U, the deeper arms setting lower bounds (U0/8 >160, U0/4 >192, full corpus >118.5). The ceiling is also N-dependent: on U0/32, 124M overfits past 64–96 ep while 20M keeps improving through 128 ep — set by the parameter-to-data ratio N/U, not the corpus alone.

Held-out test fixed before measurement at C = 8.7×1019 FLOPs: predicted N*(c6) ∈ [54, 87]M, L*(c6) = 0.2029 [0.2003, 0.2062]. Measured: the c6 bowl bottoms at 80M (eval loss 0.1922) — inside the predicted size interval ✓ and below the predicted loss, so the fit runs conservative at high C. The size call holds and the loss error falls on the safe side.

6   Headline conclusions

Corpus: v2026-05-21 clustered99, 7,044,237 train / 50,000 eval sequences, MLM 15% masking, max length 320. All losses are held-out eval loss at fully-decayed LR, identical eval set and masking across runs.