·FREE·PAPER·9 min read

Paper Walkthrough: AURORA-LM — A Diffusion Language Model That Keeps Its Text Latent Full-Width Instead of Compressing It

A walkthrough of AURORA-LM, a continuous-latent diffusion language model that rejects the usual compromise of compressing text latents to make diffusion easier. It keeps a decodable, width-1024 latent and learns its distribution with a low-rank input pathway, width-calibrated noise, and self-trajectory consistency.

Key points

  • Earlier continuous language generation put ease of generation and fidelity of reconstruction in a tug-of-war over a single representational bottleneck.
  • AURORA-LM freezes a high-capacity autoencoder trained only to reconstruct tokens, then learns its output distribution with a Block-causal Diffusion Transformer via flow matching.
  • The low-rank input bottleneck keeps the prediction target at full width D, and D_b=128 works best (mean MAUVE 0.808).
  • On unconditional OpenWebText generation with 1,024-token sequences, AURORA-LM-S achieves Gen-PPL 23.56 and MAUVE 0.890, the best among the evaluated systems.
  • The 1B model's MMLU score is 22.2%, so absolute performance remains research-scale, and longer contexts are named as future work.

AURORA-LM: Autoencoding Unified Representation for Continuous-Latent Diffusion Language Modeling

Primary source — what this article is built on

undefined2026-08-03→undefined2026-08-13same month

AURORA-LM: Autoencoding Unified Representation for Continuous-Latent Diffusion Language ModelingJiajun Liang, Yucheng Liao, Yukang Cao et al. · 2026-08-03 · v1arXiv:2608.02602Paper page·PDF
undefined

Language remains an outlier in generative modeling: while images, video, and audio are increasingly modeled in continuous latent spaces, text generation still relies predominantly on discrete tokens. Existing continuous language models either inherit embedding spaces not designed for joint generation and decoding, or compress autoencoded latents to ease diffusion, sacrificing token-level fidelity. Instead of simplifying the representation to suit the generative model, we preserve a high-capacity, decodable text latent and design the diffusion model to learn its distribution directly. We introduce AURORA-LM, a continuous-latent diffusion language model that separates the construction of a decodable text representation from the modeling of its distribution. A Query-based Encoder-Decoder organizes text into a high-capacity, prefix-aligned latent sequence, and a Block-causal Diffusion Transformer learns its distribution through flow matching, generating blocks left to right while denoising positions within each block in parallel. Because such a latent is harder for diffusion to model, AURORA-LM restricts only the noisy-input pathway while retaining the full clean-latent prediction target, accommodating full-width latents without reducing decoder-facing capacity. We further calibrate the noise-level distribution to the latent width, and introduce self-trajectory consistency to bridge independently sampled training noise and iterative denoising at inference. AURORA-LM achieves the strongest performance among evaluated continuous and diffusion-based language models on OpenWebText free generation and XSum summarization. Scaling to 1B parameters with about 1500 EFLOPs of total compute yields further gains, surpassing a larger publicly released latent-diffusion language model under a matched evaluation protocol. All experiments are conducted on Ascend NPUs.


Text is the last holdout of discrete generation

Images, video, and audio are now mostly generated by diffusion models operating in continuous latent spaces. Text is the exception: it is still produced one discrete token at a time, picked from a vocabulary (§1). Even multimodal systems usually go the other way, converting continuous signals into discrete tokens so they fit the language-model toolchain. The paper asks the reverse question: can language itself be represented and generated in a continuous space? (§1)

Think of it as a moving job. You pack a text into a box of continuous vectors (encoding), a moving company — the generative model — learns to produce such boxes from scratch, and the recipient unpacks the box back into text (decoding). The trouble is in the packing. Make the box small and light and the movers have an easy day, but when you open it, the dishes are chipped — the exact original words don't come back.

AURORA-LM (a collaboration between Nanjing University, Nanyang Technological University, and Imperial College London; arXiv:2608.02602) takes a clear position: keep the box big, and train better movers.

The dilemma in prior work: compress it and it ships, but arrives broken

The paper sorts existing continuous language generation into two camps (§1, §2.3).

The first is embedding-space methods. Diffusion-LM and PLAID denoise sequences of word embeddings directly; TEncDM uses contextual features from a pretrained encoder. Borrowing an existing representation is convenient, but its width and organization were never designed to support both generation and faithful decoding at once (§1).

The second is autoencoder-based methods. LD4LG, COSMOS, and Cola-DLM first map text into a purpose-built latent space and then run diffusion there. Compressing and smoothing the latent makes the diffusion model's job easier — but the decoder depends on that same latent, so compression also strips away information needed to recover the exact words and their order. Ease of generation and fidelity of reconstruction end up in a tug-of-war over a single representational bottleneck — that is the paper's diagnosis of the field (§1).

You can feel this "lossy compression eats the details" effect with JPEG. Crank up the compression and the file gets lighter, but the fine structure never comes back. In a text latent, the fine structure that vanishes is the exact wording.

FIG 1The lossy-compression trade-off, felt through JPEG. Lowering the quality factor shrinks the data but erases detail. In compressed-latent text generation, the "detail that vanishes" is the exact words and their order — which is precisely the problem AURORA-LM sets out to avoid

AURORA-LM's answer: fully separate representation from distribution modeling

AURORA-LM splits the work into two stages (§3).

In stage one, a Query-based Encoder-Decoder maps text into a high-capacity latent sequence, trained with a single objective: reconstruct the original tokens. No concessions are made to make generation easier.

In stage two, the autoencoder is frozen, and a Block-causal Diffusion Transformer learns the distribution of its outputs via flow matching — generating blocks left to right while denoising all positions within a block in parallel. Because the representation is fixed before the generator is designed, the usual backwards pressure — "diffusion is struggling, so shrink the latent" — never enters the loop (§2.3, §3).

Component 1: an autoencoder that builds a prefix-readable latent

The encoder turns a token sequence of length LL into N=round⁡(cL)N = \operatorname{round}(cL) latent vectors of width DD, where cc is a retention ratio and c=1c=1 means no sequence compression (§3.2). The trick is in what each query is allowed to see. The ii-th latent query attends only to the preceding latents and to the first ⌈iL/N⌉\lceil iL/N \rceil tokens — so a prefix of the latent sequence corresponds exactly to a prefix of the text. The decoder is symmetric: when reconstructing token jj, it may only look at the matching latent prefix. This alignment is what later makes left-to-right blockwise generation possible (§3.2).

Training is plain token-level cross-entropy. Two regularizers make the latent robust: token-embedding dropout zeroes each input embedding entirely with probability 0.3, and latent dropout zeroes each latent coordinate with probability 0.6 (§6.1.1). After training, the autoencoder is frozen and its outputs standardized per channel before stage two begins (§3.3).

Component 2: diffusing left to right, one block at a time

The generative side is built on flow matching (see our introduction to diffusion models for background). A clean latent x0x_0 and Gaussian noise ε\varepsilon are connected by a straight line (§3.1):

xt=(1−t) x0+t ε,t∈[0,1]x_t = (1-t)\,x_0 + t\,\varepsilon, \qquad t \in [0,1]
(1)

Here x0x_0 is the clean latent, ε\varepsilon is pure noise, and tt is the mixing ratio: at t=0t=0 you have data, at t=1t=1 pure noise. The model learns to walk this line backwards — concretely, to predict the clean endpoint x0x_0 from any point along the way. In words, the equation is just a dial that blends the real thing with static: set the dial to zero and you get the untouched text latent, set it to one and you get pure static, and every setting in between is a partly-ruined copy the model is asked to repair.

The latent sequence is partitioned into blocks of QQ positions, and the probability factorizes autoregressively: each block is generated conditioned on the completed blocks before it, with all positions inside the block denoised jointly (§3.3). QQ is a dial between sequential context and parallel speed. In the paper's measurements, MAUVE falls from 0.909 at Q=4Q=4 to 0.631 at Q=64Q=64; the chosen Q=16Q=16 keeps 0.816 while cutting the number of sequential stages to a quarter of the Q=4Q=4 setting (§4.1.3). At inference, completed prefixes are KV-cached and reused as conditioning for the next block (Fig. 3c; see our KV cache explainer).

How to actually learn a width-1024 distribution: three design moves

The latent was made wide for the decoder's sake, which makes its distribution harder for diffusion to learn. The paper stacks three designs on top of each other to cope (§3.4, §4.1.2).

1. A low-rank input bottleneck. There is little value in reading a heavily corrupted input at full width — at high noise, most of the variation is just Gaussian noise. So only the input pathway is narrowed, through two linear layers:

Win=WupWdown,Wdown∈RDb×DW_{\mathrm{in}} = W_{\mathrm{up}} W_{\mathrm{down}}, \qquad W_{\mathrm{down}} \in \mathbb{R}^{D_b \times D}

WdownW_{\mathrm{down}} projects the width-DD noisy input down to a narrow width DbD_b, and WupW_{\mathrm{up}} lifts it to the Transformer's hidden width. In words, one fat input layer is replaced by a narrow doorway followed by a re-expansion: the model reads a summary of the noise-corrupted input instead of all DD of its numbers. Crucially, the prediction target stays at full width DD, so nothing the decoder needs is thrown away — it still has to hand back all DD numbers even though it only read a digest of them going in. Experimentally, Db=128D_b=128 works best (mean MAUVE 0.808, §4.1.2).

2. Noise allocation calibrated to latent width. How much training time is spent at each noise level is tuned to the representation. Sweeping the tan-dd schedule, MAUVE improves consistently as more training mass is pushed toward high-noise states (larger m0.7m_{0.7}), and the same trend holds for logit-normal schedules — it is the allocation, not the parameterization, that matters. The final system uses d=7d=7 (§4.1.2).

3. Predict the clean latent directly. Across the four combinations of prediction target and loss space, x0x_0-prediction with an x0x_0-space loss wins at both input widths. Measuring the loss in velocity (vv) space reweights the error by 1/σ21/\sigma^2, concentrating supervision on low-noise states — the exact opposite of the high-noise calibration above — and performance collapses (MAUVE 0.815 vs. 0.059 at Db=128D_b=128; Table 1, §6.1.2).

Two further mechanisms bridge the gap between training and inference. Self-conditioning feeds the previous sampling step's clean-latent estimate back in as an input. Self-trajectory consistency adds an auxiliary loss that aligns the model's predictions before and after one of its own denoising updates, using an EMA (exponential moving average) copy of the model as the stable target (§3.4). The payoff is dramatic in the few-step regime: MAUVE at 8 sampling steps jumps from 0.116 to 0.672, and at 16 steps from 0.310 to 0.786 (§4.1.3, Table 16).

The generation loop, as pseudocode (summarizing §3.5):

z = encode(prompt)                  # empty for unconditional generation
for b in range(num_blocks):
    x = randn(Q, D)                 # one block of Gaussian noise
    for t in schedule(steps):       # high noise -> low noise
        x0_hat = denoiser(x, t, prefix=z)  # predicted at full width D
        x = euler_step(x, x0_hat, t)       # remove one step of noise
    z = concat(z, x0_hat)           # append finished block to context
text = frozen_decoder(unstandardize(z))

Experiments: best of the evaluated continuous and diffusion models under matched protocols

On unconditional OpenWebText generation with 1,024-token sequences (Table 2), AURORA-LM-S (130M-parameter denoiser) achieves the best results among the evaluated systems: Gen-PPL 23.56 and MAUVE 0.890. The prior continuous model ELF-B comes close on perplexity (24.11) but collapses on distributional similarity (MAUVE 0.229); the autoregressive baseline sits at 39.40 / 0.851. On XSum summarization (Table 3), AURORA-LM-S leads on all three metrics with ROUGE-1/2/L of 36.6 / 13.4 / 28.9.

For the scaling test, the 1B-parameter AURORA-LM-L — trained on a 294.7B-token mixture with roughly 1,500 EFLOPs of total compute — beats Cola-DLM, a publicly released 1.8B latent-diffusion language model, on all nine language benchmarks (macro average 32.6 vs. 25.1; Table 4, §4.3). All experiments run on Ascend NPUs (§4).

Limitations, and how to read the numbers

A few lines are worth drawing before taking the results at face value.

How this gets used in practice

The audience that gets the most from this paper is generative-modeling research engineers and architects of multimodal foundations who want text, images, and audio on one generative substrate. The most transferable part is not the architecture itself but the tuning playbook for learning a high-dimensional latent with diffusion.

The dials the paper actually turns: the noise-schedule shift (dd in tan-dd), the input bottleneck width DbD_b, the block size QQ, the sampler (Euler vs. SDE-DPM++) and step count, and the guidance scale — SC-CFG at wsc=4w_{sc}=4 for unconditional generation, CFG at w=2.0w=2.0 for conditional, both applied only in the high-noise window σ∈[0.9,1.0]\sigma\in[0.9,1.0] (§4.2, §6.2.4).

The failure modes are also legible straight from the tables. First, don't reuse a vv-space loss by default: a standard setting in image diffusion, it collapses to MAUVE 0.059 on this wide latent (Table 1). Second, don't fix the noise schedule independently of the representation width — the optimal high-noise allocation shifts with DD (§4.1.2). Third, if you want few-step inference, a consistency-style auxiliary loss is a prerequisite: vanilla flow matching degrades badly at 8–16 steps (§4.1.3). In practice, these three points make a useful first-pass checklist whenever you point continuous-latent diffusion at a new domain — say, time series or code under a custom tokenizer. That reading is our practical extrapolation, not a claim from the paper.

Takeaways

To build up the foundations, see our introduction to diffusion models and KV cache explainer; for the lossy-compression intuition, try how JPEG works.

References

  1. Jiajun Liang, Yucheng Liao, Yukang Cao, Jiazhe Wei et al.. (2026-08-03) AURORA-LM: Autoencoding Unified Representation for Continuous-Latent Diffusion Language Modeling. arXiv:2608.02602Paper page·PDF

This article is written from the source paper above. Where they differ, the original is authoritative.

Published by TechAthletes · Editorial policy · How we cite · Corrections

Comments

Sign in to comment