Flattened vs. Hierarchical SODA Models

A compute-matched comparison, and a 1.1B scale-up of the winning recipe

Update — July 2026

SODA answered how to scale a flattened discrete-audio LM. It did not answer whether flattening is the right thing to scale. So: at matched training compute, does a CSM/Moshi-style hierarchical factorization model speech better?

Why This Experiment

SODA turns each 80 ms audio frame into 8 Mimi RVQ tokens (1 semantic + 7 acoustic) and flattens them into one long stream, which a single decoder models with uniform cross-entropy. Our scaling study derived compute-optimal allocation rules for that setup. But an allocation rule only covers the design space it was fit on—if a different factorization has a different frontier, the rules move with it. Testing that is the natural next step on our own result.

The alternative, such as CSM (Sesame) and Moshi (Kyutai), factorizes hierarchically: a backbone transformer whose positions are “steps” (one text token, or one whole audio frame summed from its codebook embeddings), plus a small depth transformer that predicts the remaining acoustic codebooks inside each frame. It is what much of the field builds. Comparisons between the two families, though, tend to differ in data, tokenizer and compute budget as well as in factorization, which makes the contribution of the factorization itself hard to isolate. We built this campaign so the two arms differ in exactly one thing.

There is also a standing practical reason to want the answer before scaling further. The hierarchy carries a KV cache of length T instead of 8T, and decodes audio for roughly 7× fewer FLOPs per generated second. If it is also competitive in quality, that changes what is worth serving.

Two positions this study could support:

  • Flattened. Within-frame left-to-right attention over all 8 codebooks is worth what it costs, and a single head over a 144,644-token vocabulary is a strong joint model.
  • Hierarchical. Spending sequence positions 8× more cheaply frees backbone capacity for long-range structure, and a small depth transformer suffices for within-frame acoustics. We do not apply a delay pattern, keeping the comparison against the flattened arm as tight as possible.

What we found (compute-matched at 3×1018 FLOPs)

  • A single NLL number cannot rank the two families. An NLL is an average of per-token bits, so it needs weights: how much should a text token count against a late acoustic one? Scoring the same four models three different ways reverses the ranking — flattened wins by 17% when every token counts equally, but under Moshi-style or semantic-only weighting every hierarchical run beats every flattened run.
  • The families split along a clean axis. At matched compute the hierarchy roughly halves ASR word error and wins every semantic, lexical and text benchmark that resolves above chance; the flattened model wins every acoustic NLL component and speaker similarity.
  • Generation reliability is structural. Every hierarchical run terminates on all 1,088 zero-shot TTS prompts; four of the five flattened runs — at both budgets — fail to terminate on 24–71% of them, getting stuck emitting silence instead of closing the utterance, which was an issue we encountered in the flattened SODA models.
  • A graded per-codebook loss weighting is a Pareto improvement over Moshi. Moshi weighting is flat: text and semantic tokens count 100, and every acoustic codebook counts 1. Grading it instead — weighting acoustic codebook k by 100(1−k/7), so the early codebooks keep most of the weight and the late residuals are starved — matches or beats it on every semantic metric while recovering most of its generation deficit. This is the recipe we scaled.
  • And the split survives at scale. Carrying the recipe to SODA-Hier (1.1B, 1.17×1020 FLOPs), it beats a flattened model trained with 1.5× its compute (SODA-Flat-1.8e20) on ASR and every text/lexical task—and loses to one trained with 0.77× its compute (SODA-Flat-9e19) on SALMon and both TTS metrics.

What We Ran

Two arms over the same Mimi RVQ tokens (8 codebooks × 2048 entries, 12.5 Hz), trained on utterance-level interleaved speech and transcripts:

  • Arm F (flattened) — the SODA architecture: one Qwen3 decoder over the flat 144,644-vocab stream, 4096-token windows (≤41 s of audio).
  • Arm H (hierarchical) — a Qwen3 backbone whose positions are steps, with a unified 130,308-way head predicting the next step's text/semantic token, plus a small Qwen3 depth transformer with per-codebook 2048-way heads for the 7 acoustic codebooks. 1024-step windows (~82 s of audio).

The comparison is only meaningful when the other moving parts are controlled: the same corpus (15.7B flat tokens ≈ 42k audio-hours), the same tokenizer and id space, the same Qwen3 blocks, and the same solver-derived batch/learning-rate/step rules with no per-run tuning. Critically, both arms define normalized joint distributions over the same token sequences—we assert flat_tokens == steps + 7 × frames per document at preprocessing.

Three loss recipes appear below, differing only in how much weight each token type carries in the cross-entropy. (i) Uniform weights every token equally—the published SODA recipe, which means 7 of every 8 audio tokens are late-RVQ acoustic residuals. (ii) Moshi weights text and semantic tokens 100 and acoustic tokens 1, concentrating capacity on content at the expense of acoustic detail. (iii) Decay is the graded middle ground introduced in Finding 3: acoustic weights fall geometrically across the 7 codebooks instead of dropping off a cliff.

One scope note. A full isoflop suite is expensive—SODA's own required 64 models—and we have not run one for the hierarchical arm. What follows is a compute-matched comparison at the smaller budgets where such a comparison is affordable, plus a single scaled-up run of the recipe it selects. So we can say which factorization is better at these budgets; we cannot draw a hierarchical compute-optimal frontier.

Experiment Budget What varies Design question
P1 3×1018 architecture, each at its published recipe Which factorization wins at matched compute?
P1b 3×1018 hier loss → uniform How much of the gap is the loss weighting rather than the architecture?
P1c 3×1018 flat loss → Moshi Completes the 2×2 and gives the interaction term.
P5 3×1018 hier loss → graded decay Moshi and uniform are the two extremes. Can a graded weighting beat both, instead of landing somewhere between them?
P2 3×1018 width d ∈ {512, 896}, both arms Is the P1 result an artifact of d=768? Where is each arm's optimum?
P3 3×1018 depth-transformer size (hier) Does the within-frame capacity allocation matter?
P4 1×1018 compute budget Does the gap between the arms move with budget?
SODA-Hier 1.17×1020 the selected recipe, 39× the budget Do the pilots' conclusions survive an order of magnitude more compute?

13 campaign runs plus the scale-up. Every run gets the same evaluation battery: teacher-forced NLL on LibriSpeech dev-clean as a per-token-type vector; ASR 0/2-shot WER on test-clean; zero-shot TTS on seed-tts-eval English (1,088 prompts, WER via whisper-large-v3 and speaker similarity via WavLM); and the paired-likelihood suite (sBLIMP, sWUGGY, SALMon, s/tStoryCloze, tBLIMP, tWUGGY), with the speech tasks scored two ways—all-tokens-uniform and semantic-only.


Finding 1: No Single NLL Number Can Rank Architectures

Held-out NLL is a proper scoring rule and both arms model identical token sequences, so the comparison is mathematically sound. The catch is what “the NLL” even means when 7 of every 8 audio tokens are late-RVQ acoustic residuals. A scalar NLL is an average of per-token bits, and an average needs weights: you have to decide how much a text token counts relative to a semantic one, relative to a late acoustic one. Uniform cross-entropy is one such choice of weights; a weighted cross-entropy is another. Training under a weighted loss is exactly maximum likelihood under the matching weights.

So we held the four trained 2×2 models fixed and re-scored each one three times, changing nothing but the weights used to average its per-token bits: uniform (every token counts equally), Moshi (text and semantic tokens count 100, acoustic tokens 1) and semantic-only (codebook 0 of each frame, nothing else). Those are deliberately the same three shapes as the three training losses — which is the whole problem. Mean nats per scored token, lower is better:

Model (loss it was trained with) Weights used to score it
Uniform Moshi 100/100/1 Semantic-only
p1-flat (uniform) 3.81 2.47 2.70
p1c-flat (moshi) 4.41 2.43 2.65
p1b-hier (uniform) 4.26 2.31 2.55
p1-hier (moshi) 4.43 2.25 2.49

Rows are four fixed models; columns are three ways of averaging their per-token bits. Bold = best in that column. Under uniform scoring the flattened model wins by 17%. Under the Moshi weights the ranking flips completely — every hierarchical run beats every flattened run, and even within one architecture the moshi-trained model overtakes the uniform one (2.43 < 2.47). Semantic-only scoring produces another hierarchical sweep.

So “which factorization reaches lower NLL” has no weight-free answer: each model wins under the weights its own training loss optimized, which makes any single-number comparison across losses close to circular. The fix is to stop reporting a scalar and report the NLL vector (text, semantic, per-codebook acoustic). Its components turn out to be excellent capability predictors—across architectures and losses, not just within one. Spearman correlations over the 12-run matrix:

Aligned pair |ρ|
bits/text-token ↔ ASR 0-shot WER 0.94
semantic NLL ↔ sWUGGY (semantic-scored) 0.94
acoustic-cb1 NLL ↔ SALMon 0.86
acoustic-cb1 NLL ↔ TTS speaker similarity 0.85

Magnitudes only. Each of these NLL components predicts its aligned capability. The uniform aggregate (bits per audio-second) does not: it tracks the two acoustic metrics (SALMon, speaker similarity) and can mislead on other capabilities across model classes—because 7 of every 8 audio tokens are late-RVQ residuals whose bits carry little task-relevant information.

How this relates to the scaling result we found previously. SODA's headline method finding—that capabilities are predictable from validation lossreplicates here, and it stands. What this work adds is its scope. That relationship holds within a model family scored under its own training measure, which is exactly the setting it was established in (flattened + uniform CE, varying scale). It does not license comparing a scalar NLL across different training losses or architectures: there, the number you get is a choice of importance measure, and changing that choice reverses the ranking. Within the flattened family the original practice behaves exactly as before (ρ = +1.00 for NLL → sWUGGY); the hierarchical family breaks under uniform NLL and is restored by scoring it under its own training measure (sWUGGY +0.09 → +0.77, tWUGGY +0.14 → +0.89).

This is also why the scale-up comparison further down has no NLL rows.


Finding 2: Hierarchical Owns Semantics, Flattened Owns Acoustics

The headline pair at 3×1018 FLOPs and d=768. The hierarchical model wins nearly every capability: it roughly halves ASR word error at both zero and two shots, edges TTS-WER, and leads sWUGGY, tStoryCloze, tBLIMP and tWUGGY (per-run numbers in the table below). The flattened model's wins are all acoustic: uniform-scored SALMon (68.6 / 66.7), TTS speaker similarity (0.332 vs 0.230), and every acoustic NLL component (cb1–cb7 at 3.58–4.41 vs 4.57–4.94 nats), which is also what drives its 17% uniform-NLL advantage. Roughly 72% of that advantage is architectural rather than a loss-weighting effect (P1b). sBLIMP and sStoryCloze sit at chance for both, as in the original study at this budget.

Generation behavior separates the arms beyond the scores, and the pattern is arm-wide rather than pair-specific. The flattened model fails to produce a terminating generation on 24% of TTS prompts, and even its surviving transcripts are deletion-dominated (18.2% DEL vs 10.9% SUB—truncated or incomplete speech), where the hierarchical model terminates on all 1,088 and errs by substitution (17.8% SUB, 7.7% DEL). The non-terminating cases share a characteristic failure mode: instead of ending the utterance the flattened model gets stuck in silence and runs on to the generation cap. Every hierarchical run in the campaign terminates on 100% of prompts; four of five flattened runs drop 24–71%.

Run Arm Recipe bits/a·s ↓ b/txt ↓ ASR-0s ↓ TTS-WER ↓ TTS-SIM ↑ gen% sWUGGY tBLIMP SALMon
p1-flat flat uniform 562.6 1.93 37.1 31.2 0.332 76 55.6 62.0 68.6
p1-hier hier moshi 658.1 1.11 19.4 29.6 0.230 100 57.9 64.4 66.7
p1b-hier hier uniform 631.8 1.34 22.5 17.8 0.330 100 57.1 64.6 68.9
p1c-flat flat moshi 653.4 1.62 28.5 66.7 0.223 35 56.3 64.6 68.6
p2-flat-d512 flat uniform 567.7 2.21 46.9 48.1 0.318 100 54.9 62.5 68.5
p2-hier-d512 hier moshi 668.1 1.27 24.2 32.2 0.197 100 57.0 64.2 65.9
p2-flat-d896 flat uniform 562.2 1.86 32.2 39.7 0.322 29 55.8 62.4 68.9
p2-hier-d896 hier moshi 657.2 1.16 16.1 30.0 0.234 100 57.7 64.7 67.2
p3-small hier moshi 673.1 1.17 21.8 41.0 0.217 100 58.2 65.6 66.4
p3-large hier moshi 656.8 1.25 19.5 28.9 0.227 100 57.6 63.9 66.8
p4-flat flat uniform 586.5 2.64 43.3 47.5 0.301 63 54.9 61.3 68.6
p4-hier hier moshi 674.5 1.31 20.9 46.6 0.194 100 57.2 63.9 66.1
p5-decay hier decay 650.4 1.16 18.9 23.1 0.290 100 57.7 65.8 67.9

All 13 campaign runs. Paired-task scores in % (chance = 50); WER in %, lower better; bits/a·s = uniform-measure bits per audio-second; b/txt = bits per text token; TTS-SIM = WavLM speaker cosine; gen% = share of the 1,088 TTS prompts with a terminating generation. p4-* are the 1×1018 runs, everything else is 3×1018. Bold = campaign best. Where gen% < 100, TTS-WER and TTS-SIM cover only the surviving prompts and carry survivorship bias—those flattened numbers are optimistic. Full machine-readable table, including per-codebook NLL and both scoring variants: campaign_results.csv.


Finding 3: How Much Does the Loss Weighting Matter?

Architecture and loss weighting are two ways of doing the same thing: de-prioritizing acoustic tokens. Crossing them gives a 2×2 that is strongly non-additive (interaction ≈ −65 bits per audio-second).

Uniform CE Moshi 100/100/1
Flattened p1-flat — 562.6 bits/a·s
ASR 37.1 · TTS 31.2 @ 76%
p1c-flat — 653.4 bits/a·s
ASR 28.5 · TTS 66.7 @ 35%
Hierarchical p1b-hier — 631.8 bits/a·s
ASR 22.5 · TTS 17.8 @ 100%
p1-hier — 658.1 bits/a·s
ASR 19.4 · TTS 29.6 @ 100%

The 2×2. TTS entries are WER at the share of prompts that terminated.

On the flattened arm, weighting is a large, double-edged lever. Adding Moshi weighting buys most of the hierarchical arm's text and semantic profile—ASR 37.1 → 28.5, tBLIMP 62.0 → 64.6—at the cost of nearly the entire acoustic-NLL advantage (91 of the 96-bit gap). And the cost is not confined to likelihoods: termination falls from 76% to 35% of prompts, and TTS-WER on even the surviving third doubles, to 66.7.

On the hierarchical arm it is a small lever for likelihood capabilities and a large one for generation. Removing it costs some ASR (19.4 → 22.5) and buys back 26 bits of acoustic NLL—but TTS improves dramatically, to 17.8 WER at 0.330 similarity, the campaign's best TTS model on both axes, matching the flattened arm's speaker similarity at half its word error.

The asymmetry is the insight. Once the architecture has delegated acoustics to a depth module, down-weighting them in the loss has little left to do; on the flattened arm the loss is the only such mechanism, so it does all the work and pays the full acoustic price. Generation is where the substitution breaks—synthesis is the one task where the acoustic axis is load-bearing, and both moshi-weighted cells pay for their tilted measure with worse, less reliable generation.

A third recipe: graded per-codebook decay

Moshi and uniform are the two extremes of one knob, and the 2×2 shows each buying one axis at the other's expense. P5 asks whether something in between can beat both — rather than simply landing halfway. Instead of a flat 100/100/1 or 1/1/1, the acoustic codebooks get geometrically decaying weights:

wk = 100(1−k/7)   →   cb1..cb7 = 51.8, 26.8, 13.9, 7.2, 3.7, 1.9, 1.0

Text and semantic tokens keep weight 100. This puts ~51% of the per-frame loss mass on acoustics, against 87.5% for uniform and 6.5% for Moshi—concentrating it on the perceptually dominant early codebooks and starving the late residuals. Precedent: VoiceCraft's declining per-codebook weights (arXiv:2403.16973) are the same shape over EnCodec's 4 levels; hierarchical precedents (Moshi, UniAudio) do not decay.

All three recipes on the hierarchical arm at 3×1018 and d=768, so only the weighting differs:

Weighting Semantic axis Generation axis Acoustic NLL
sem NLL ↓ ASR-0s ↓ tBLIMP ↑ tSC ↑ TTS-WER ↓ TTS-SIM ↑ SALMon ↑ cb1 ↓ cb7 ↓
Moshi 100/100/1 2.492 19.4 64.4 61.3 29.6 0.230 66.7 4.57 4.94
Uniform 1/1/1 2.547 22.5 64.6 62.2 17.8 0.330 68.9 4.40 4.71
Decay 100(1−k/7) 2.485 18.9 65.8 63.1 23.1 0.290 67.9 4.39 5.06

Bold = best of the three. All three terminate on 100% of TTS prompts. tBLIMP 65.8 and tSC 63.1 are campaign bests; ASR 18.9 is the best of the d=768 runs (p2-hier-d896's 16.1 is the campaign-wide best).

Decay takes the whole semantic column outright and recovers most of the generation ground Moshi weighting gives up. The last two columns show why: it models cb1 as well as uniform weighting does, and pays for that only on the highest-order residual, which little downstream depends on. This is the recipe we carried into the scale-up.


Finding 4: Width, Depth Size, Budget, and Decode Cost

These are smaller probes than the isoflop suite behind the SODA paper — three widths, three depth sizes and two budgets, one run each. They settled the design choices the campaign needed, but they are observations at the budgets we ran rather than fitted trends.

  • Width. Under an isoflop budget, wider means fewer steps. Across d = 512/768/896 neither arm's NLL moves much — a few bits per audio-second, on a curve that looks flat rather than peaked — so we cannot locate either arm's optimum from these runs, and we do not claim a width trend. The capability metrics vary more over the same range (the hierarchical d=896 run is the campaign's best model, ASR 16.1 / 15.1), but with one run per point and no seed replicates we cannot separate a width effect from run-to-run variation. Settling this needs the isoflop treatment, which we have not run for the hierarchical arm. The one difference too large to be noise is on the flattened arm, where TTS termination falls 100% → 76% → 29% as width grows.
  • Depth-transformer size. Shrinking the depth transformer from the dd384L4 default to dd256L2 costs 15 bits per audio-second; growing to dd512L6 buys 1.4 — the default sits at the knee. Likelihood metrics are nearly insensitive, and the small variant even posts the best hierarchical sWUGGY and tBLIMP: everything the paired benchmarks measure lives in the backbone. Generation is the exception, and it is where an under-sized depth module is paid for (TTS-WER 41.0 against 29.6 for the default). Small, but not below the knee.
  • Budget. From 1×1018 to 3×1018 both arms improve on essentially every axis, and no ordering between them changes, on any metric — including the TTS split, where the hierarchy has the better WER and the flattened model the better speaker similarity at both budgets. Two budgets is a check rather than a slope: it says the cheap pilots predict the more expensive ones here, not how the gap behaves much further out.
  • Decode cost. Analytic, so unlike the rest of this section it does not depend on run count at all. The flattened model pays its 144,644-way head on all 8 tokens of every frame and carries a KV cache of length 8T; the hierarchy pays a 130,308-way head once per frame plus 2,048-way heads within it, at KV length T. At the P1 model sizes that is 47.4 GFLOPs per generated audio-second against 6.7 — a 7.0× advantage for the hierarchy, which depends only on the factorization and so carries over to the scale-up unchanged.

SODA-Hier: Scaling up p5 to 1×1020 FLOPs

The campaign's recommendation—hierarchical factorization, graded decay weighting, wide backbone, small depth—was selected on 1×1018/3×1018 pilots. SODA-Hier asks whether it survives an order of magnitude more compute. It is essentially a scaled-up P5: the same arm and the same recipe at 1.1B parameters (a d1536/L15 backbone of ~990M plus a dd1152/L4 depth transformer of ~122M), trained on a 396k-hour Yodas+Emilia corpus for 1.168×1020 FLOPs—38.9× the campaign's 3×1018 point—and evaluated on the identical battery.

Keep the scale in perspective. At 1.17×1020 FLOPs this is a larger ablation, not a large-scale run: SODA's published run used 1.3×1022 FLOPs, about 110× more. SODA-Hier extends the campaign's compute ladder by an order of magnitude and shows the recipe holds there.

It is a 55%-of-plan run, and that is deliberate rather than truncated. The plan was 95,033 steps (one epoch, 2.12×1020). Cluster contention made the remaining ~10 days unobtainable, so we used the defining affordance of the warmup–stable–decay schedule: any stable-phase checkpoint plus a decay leg is a finished model for the smaller budget. The stable trunk was stopped at step 42,346 and a 10,000-step linear decay leg branched from it, for 52,345 steps total. That puts the decay at 19.1% of the shortened run — inside the 10–20% band supported by MiniCPM and Hägele et al. (2024), and essentially the same 20% shape every campaign run used, which keeps the result on the campaign's schedule line. Data seen stays under one epoch, so nothing repeats, and the trunk checkpoint is pinned and resumable — a higher-budget point remains available without redoing any work.

Metric p5-decay
(3×1018, 308M)
SODA-Hier
(1.17×1020, 1.1B)
bits per audio-second ↓ 650.4 603.5
bits per text token ↓ 1.161 0.738
semantic NLL ↓ 2.485 2.166
ASR 0-shot WER ↓ 18.9 7.7
ASR 2-shot WER ↓ 18.3 7.2
TTS-WER ↓ 23.1 17.2
TTS-SIM ↑ 0.290 0.362
sWUGGY / sWUGGY-sem 57.7 / 63.8 60.4 / 67.1
tBLIMP / tWUGGY 65.8 / 65.8 70.2 / 70.6
SALMon / SALMon-sem 67.9 / 66.5 69.2 / 68.1
sBLIMP / sStoryCloze 49.9 / 51.2 51.8 / 50.6

38.9× the compute, 3.6× the parameters, 9.4× the corpus. Every metric that resolved above chance in the campaign improves, several by large margins, and nothing regresses. sBLIMP and sStoryCloze remain at chance, as they do at every campaign budget, and MMLU/HellaSwag sit at chance (~0.25 / 0.27)—expected for a ~1B speech-first model, and reported as “not above chance” rather than as a trend.

Two results deserve emphasis. ASR more than halves, 18.9 → 7.7 zero-shot; the campaign's best ASR model managed 16.1, so the scaled run is at less than half that error on the same test set with identical decode parameters. And the acoustic axis moves with scale: the campaign's honest summary was that flattened models were the better acoustic models, with speaker similarity their strongest evidence (best flattened run 0.332, every hierarchical run 0.19–0.33). SODA-Hier reaches 0.362—above every flattened run in the campaign—while also posting the best TTS-WER. But those flattened runs are 3×1018 models. The harder test is against flattened models that are also scaled up.


Against Compute-Optimal Flattened Models at a similar scale

The campaign could only answer the flat-versus-hierarchical question at 1×1018/3×1018. Our original isoflop sweep supplies the missing large-scale reference: flattened models trained near compute-optimally at their scale, evaluated with the same harness. SODA-Hier's budget falls between two of those points, and the parameter counts bracket too (851M / 1.1B / 1.23B):

  • SODA-Flat-9e19 — 851M (d1408/L14), 0.77× SODA-Hier's training budget.
  • SODA-Flat-1.8e20 — 1.23B (d1664/L17), 1.5× SODA-Hier's training budget.

That gives a reading rule. Where SODA-Hier beats the 1.5× model it is clearly better—it wins against more flattened compute than it had. Where it loses to the 0.77× model it is quite likely worse—it loses against less. Between the brackets is a draw.

Metric SODA-Flat-9e19
(0.77×)
SODA-Hier
1.17×1020
SODA-Flat-1.8e20
(1.5×)
Verdict
ASR 0-shot WER ↓ 15.5 7.7 11.9 clearly better
ASR 2-shot WER ↓ 14.4 7.2 11.4 clearly better
sWUGGY speech 57.1 60.4 57.6 clearly better
sWUGGY text 68.3 70.6 69.6 clearly better
sBLIMP text 67.7 70.2 69.7 clearly better
sBLIMP speech 49.7 51.8 50.1 ≈chance for all
MMLU / HellaSwag-norm 26.5 / 29.3 25.4 / 27.4 27.4 / 30.5 ≈chance band
SALMon 70.7 69.2 70.6 quite likely worse
TTS-WER ↓ 10.2 17.2 9.5 quite likely worse
TTS-SIM ↑ 0.504 0.362 0.525 quite likely worse

Scores in %, chance = 50 except MMLU/HellaSwag (25). Both SODA-Flat models are near-compute-optimal at their scale; their suffixes give the training budget.

The campaign's axis split survives at scale, against compute-optimal opponents, on both sides. SODA-Hier is clearly better on every semantic, lexical, text and ASR metric that resolves—beating even the flattened model with 1.5× its compute—and quite likely worse on the acoustic and generation-quality axes, losing SALMon and both TTS metrics to even the 0.77× model. The flattened arm's home turf extends, at compute-optimal scale, to TTS intelligibility as well as speaker similarity. The observation above—that SODA-Hier beats the campaign flats on TTS—does not carry over to flattened models that are also scaled up.

We note that SODA-Hier is not compute-optimal at its budget. Its width was anchored to CSM rather than isoflop-optimized, while the SODA-Flat models are near-optimal at theirs. This handicap makes the hierarchy's wins conservative and its losses ambiguous.