Papers › Continuous First, Discrete Later: VQ-VAEs Without Dimensional Collapse

Continuous First, Discrete Later: VQ-VAEs Without Dimensional Collapse

7 May 2026arXiv:2605.06870added by Syntology

Xinyu Zhao, Nikita Karagodin, Hamed Hassani, Sinan Hersek, Paul Pu Liang, Yury Polyanskiy

Title, abstract, authors and date from arXiv's metadata (CC0); this paper is not in the Papers with Code archive (frozen 2025-07-28).

While many approaches to improve VQ-VAE performance focus on codebook size and utilization, the effect of dimensional collapse, where trained VQ-VAE representations live in an extremely low-dimensional subspace (1-2% of full rank), remains unaddressed. We show theoretically and empirically that dimension collapse causes a hard loss lower bound that various codebook improvement techniques fail to surpass. Our analytic framework extends the sequential learning effect of Saxe et al. [2014] by introducing ideas from rate-distortion theory and explains how the latent collapse is caused by the VQ suppressing lower-variance directions. Our theory justifies a simple solution: a "warm-up phase" that trains the model as an (unquantized) autoencoder before introducing VQ. On both synthetic experiments and large-scale image (VQGAN) and audio (WavTokenizer) VQ-VAEs, we show that AE Warm-Up successfully restores representation dimension, leading to lower reconstruction and perceptual loss at the same training budget. Across codebook sizes K ∈ {2¹⁰, 2¹⁴, 2¹⁶}, AE warm-up raises VQGAN codebook effective dimension from 3-5 to 17-19 and reduces rFID by 17-35%; on WavTokenizer at K ∈ {2¹³, 2¹⁴}, it raises codebook dimension from 4 to 17-19 and improves PESQ by 11-14%. We empirically characterize how warm-up duration governs the achievable final loss. In agreement with experiment, our theoretical analysis predicts downstream performance as a function of warm-up length, enabling an adaptive criterion for switching from AE Warm-up to VQ-VAE training.

PaperPDFCode Syntology ran

In Syntology For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2605.06870")

Code

Syntology Ran 13 of 16 code samples harvested from 1 repository linked to this paper; 3 have no recorded run. Of those that ran: 13 ran with no contract checked.

By repository: found in paper text by Syntology: 16 samples from 1 repository, 13 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

xyz-zy/vqvae_latent_span_collapse found in paper text by Syntology report

Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

16 samples harvested; 13 ran; 0 honoured the contract we drafted; 3 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

13ran
3unverified

Licence: 0 of the 16 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from xyz-zy/vqvae_latent_span_collapse. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

compute_waterfill xyz-zy/vqvae_latent_span_collapse/VQGAN/eval_vqgan_waterfilling.py found in paper text by Syntology ran MIT (permissive) · 95e19c7fd52aa466 · report
compute_waterfill xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_ae_waterfilling.py found in paper text by Syntology ran MIT (permissive) · ab48634212ca75af · report
find_ae_ckpt xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_ae_waterfilling.py found in paper text by Syntology ran MIT (permissive) · 5c141b2be9354bae · report
find_ckpt xyz-zy/vqvae_latent_span_collapse/VQGAN/eval_val_std.py found in paper text by Syntology ran MIT (permissive) · b33525f44c0b0db9 · report
find_config_for_run xyz-zy/vqvae_latent_span_collapse/VQGAN/eval_val_std.py found in paper text by Syntology ran MIT (permissive) · 06acef828d85d18a · report
get_final_metrics xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_ae_warmup_scatter.py found in paper text by Syntology ran MIT (permissive) · d54d3242c568bac6 · report
get_final_metrics xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_ae_warmup_scatter_cbdim.py found in paper text by Syntology ran MIT (permissive) · 70c57936d066c47a · report
get_final_std xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_ae_warmup_scatter.py found in paper text by Syntology ran MIT (permissive) · 67195b3a6afd3017 · report
is_main xyz-zy/vqvae_latent_span_collapse/VQGAN/train_small2.py found in paper text by Syntology ran fingerprinted MIT (permissive) · 7f4da51e0bc41db4 · report
kmeans_full xyz-zy/vqvae_latent_span_collapse/VQGAN/eval_ae_kmeans_step0_allsamples.py found in paper text by Syntology ran MIT (permissive) · 7b2110d938733a3f · report
load_metric xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_cb16k_3panel.py found in paper text by Syntology ran MIT (permissive) · cda9542f1cb60640 · report
to_uint8 xyz-zy/vqvae_latent_span_collapse/VQGAN/eval_ae_kmeans_step0_allsamples.py found in paper text by Syntology ran fingerprinted MIT (permissive) · 392ea4d7aa702e8c · report
to_uint8_minus1_to_1 xyz-zy/vqvae_latent_span_collapse/VQGAN/train_small2.py found in paper text by Syntology ran fingerprinted MIT (permissive) · 3b024007f61d19cb · report
find_ae_run xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_ae_waterfilling.py found in paper text by Syntology unverified MIT (permissive) · 6a6a9dd34a779613 · report
find_run xyz-zy/vqvae_latent_span_collapse/VQGAN/plot_ae_warmup_scatter.py found in paper text by Syntology unverified MIT (permissive) · a9cade3c46a1d9b5 · report
load_model xyz-zy/vqvae_latent_span_collapse/VQGAN/eval_val_std.py found in paper text by Syntology unverified MIT (permissive) · a8836f887cef4509 · report

Results from the paper

The Papers with Code archive ends with its 2025-07-28 snapshot. This paper's arXiv identifier, 2605.06870, was issued in May 2026, after that date, so the archive has no leaderboard rows for it.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections