
这是我计划写的视频模型系列的第一篇。我的目标,是把自己对不同设计选择的理解夯实下来:tokenization、架构、数据、预训练、后训练、推理和评估。希望这些整理后的笔记,对其他人也有用。
为什么需要 tokenization?
生成式视频模型基于扩散框架(Sohl-Dickstein’15, Song ‘19, Ho ‘20),通常通过 flow matching(Albergo ‘22, Lipman ‘22, Liu ‘22)来实现。为了降低计算量、提升预测质量,扩散模型会在 latent space(潜在空间)里训练;这个空间压缩掉了低层感知细节(Rombach ‘21)。latent diffusion models 全程在这个压缩空间里工作,因此不用直接在高分辨率图像或视频数据上训练和推理。直观地说,把低层细节的重建交给另一个模型处理,可以让扩散模型专注于生成更高层的语义特征。
Tokenization:输入和输出
视频 tokenizer 的作用,是提供扩散建模要使用的压缩 latent space。对视频模型来说,压缩有两个轴:空间和时间。因此,从高层看,一个视频 tokenizer 应该对原始视频数据做时空压缩,同时仍然保留从 latent space 重建出未压缩输出的能力。

同时处理图像和视频
我们希望有一个统一的 tokenizer,既能处理图像,也能处理视频。MAGVIT-v2(Yu ‘24)建议把 tokenizer 的输入组织成形状为 [1+T, H, W, 3] 的数组。因此,单张图像对应 T = 0。在这个设计下,形状为 [1+T, H, W, 3] 的输入,会被编码成形状为 [1+T', H', W', C] 的 latent representation,其中 T/T' 是时间压缩因子(通常为 4),H/H' = W/W' 是空间压缩因子。
为什么不直接用 .mp4?
抽象地说,视频 tokenization 和经典视频压缩方案(例如 VVC H.266;Bross ‘21)的目标是一样的。标准压缩方法当然也可以拿来当视频建模的 tokenizer,但当前最先进的神经网络 tokenizer,在压缩率和质量之间取得了更好的权衡;可以看 MAGVIT-v2 论文的图 6。那自然会有一个问题:既然如此,为什么视频压缩还没有被 neural tokenizers 接管?原因是计算成本。标准压缩方案可以在 CPU 上高效运行,这对它们的大规模使用场景至关重要;而 neural tokenizers 需要 GPU/TPU,才能高效实现。
通过 VAE 做 tokenization
今天的视频 tokenization 几乎完全基于变分自编码器(VAEs;Kingma ‘13)。最常用的 tokenizer 包括 WAN-VAE(WAN team ‘25)、Stable Diffusion VAE、COSMOS tokenizer(NVIDIA ‘25)和 MAGVIT-v2(Yu ‘24)。下面我会讨论不同 tokenization 方案里的几个关键设计选择。
离散 vs. 连续
第一个主要分叉,是连续 tokenizer 和离散 tokenizer。连续 tokenizer 会把一个视频编码成连续的 latent representation:
ℰ : ℝ^(1+T×H×W×3) → ℝ^(1+T′×H′×W′×C)
这样就可以在这个紧凑的 latent space 里训练扩散模型;例如 WAN(WAN team ‘25)就是这样。
离散 tokenizer 由一个 encoder 和一个 quantizer 组成:
ℰ : ℝ^(1+T×H×W×3) → ℝ^(N×K), 𝒬 : ℝ^K → 𝒮 (finite codebook)
这里,encoder 会产生一个长度为 N 的 latent variable 序列,每个 latent variable 的维度是 K。随后,quantizer 会把序列里的每个 latent variable 映射成一个离散 token,这个 token 属于一个有限 codebook。为了把 tokens 解码回视频,离散 tokens 会先被 de-quantized,然后送入 decoder:
𝒟 : ℝ^(N×K) → ℝ^(1+T×H×W×3)
离散 tokenizer 基于 VQ-VAE(van den Oord ‘17)的各种变体。尤其是 MAGVIT-v2(Yu ‘24)提出了一种 VQ-VAE 变体,作者称之为 lookup-free quantization(LFQ)。LFQ 去掉了 VQ-VAE codebook 里的 embedding dimension,因此不需要再计算有限 codebook 中的最近点。VideoPoet(Kondratyuk ‘24)也使用 MAGVIT-v2 tokenizer。NVIDIA COSMOS tokenizer(NVIDIA ‘25)则先把视频变换成 wavelet representation,再用 FSQ(Mentzer ‘23)做 quantization。
和连续 tokenizer 相比,离散 tokenizer 让我们可以用语言建模架构来做视频生成。原则上,这意味着可以借用语言建模里的所有进展(例如架构改进、训练和推理优化等),同时也能为视频生成(videos out)和视频理解(videos in)提供统一表征。
理解压缩、重建质量和视频生成质量之间的关系
视频 tokenizer 做了多少压缩、重建质量如何、以及基于 tokenized representations 训练后生成的视频质量如何,这三者之间有一种微妙的关系。压缩和重建质量之间的权衡很直观:压缩率越高,就越难保留高保真重建所需的细节。
压缩和视频生成质量之间的关系就没那么直观了。你可能会以为,一开始压缩越多,视频建模越容易;但如果 representation 被压得太狠,视频质量又会下降。换句话说,压缩应该存在一个「甜区」。如下方 MAGVIT-v2 论文中的图所示,对于 VQ-VAE tokenizer 来说,情况确实如此。不过,MAGVIT-v2 也用 LFQ 证明:可以在增加 vocabulary size(也就是降低压缩)的同时,同时提升重建质量和生成质量(至少在图中考察的 vocabulary size 范围内是这样)。

更近期的工作(Yao ‘25)发现,把 tokenizer 的 features 对齐到预训练视觉基础模型,也可以提升生成质量和重建质量。
架构:因果 tokenization
最先进的视频 tokenizer,如今都已经收敛到因果 tokenization 架构(WAN tokenizer、MAGVIT-v2、COSMOS):未来帧不会影响过去帧的 representation。以 NVIDIA COSMOS tokenizer(NVIDIA ‘25)为例,它先用 wavelet transformation 处理每四帧一组的帧组,然后再应用 causal convolution 和 attention layers。

更近一些,COSMOS models 已经改用 WAN tokenizer(见 COSMOS3;NVIDIA ‘26),后者也采用了类似 MAGVIT-v2 的 causal architecture。
视频 tokenization 为什么要用 causal architecture,其实有很多理由,而且比我最初理解的更微妙。
一个不能用来支持因果 tokenization 的理由。 首先,为了理解这里的微妙之处,我们先看一个其实不需要因果 tokenization 的场景。假设你想训练一个 full-sequence diffusion model(也就是非自回归模型),而且它只会用于 text-to-video 模式(text in, videos out)。在这种情况下,非因果架构其实完全可以。事实上,让未来帧的 features 反过来影响过去帧,甚至可能有好处;比如某个东西在未来帧里变清楚了,这些信息也许能帮助提升过去帧的生成质量。
I2V 或 V2V 生成。 到 image-to-video(I2V)或 video-to-video(V2V)生成时,事情就更有意思了。在这里,causal encoding 和 causal decoding 都很方便。causal tokenizer 会把给定的图像/视频上下文 x 编码成 z,视频模型则生成未来的 encoded frames z'。decoder 接收 z 和 z',并重建未来帧 x'。要让非因果方案跑起来,就麻烦得多。比如,如果训练序列 (x, x') 通过 non-causal encoder 编码,那么过去帧 x 的 representation 会依赖未来帧 x' 的 representation。可是在推理时,我们看不到未来帧,因此也就无法为 conditioning frames x 计算出正确的 encoding。
推理速度。 对流式视频生成来说,causal tokenization 同样非常方便。一旦 z'(encoded future frames)生成出来,它们就可以作为 conditioning,用来继续生成更多帧,而不需要重新计算 representation。WAN tech report(WAN team ‘25)第 4.1.3 节进一步讨论了 causal tokenization 如何通过 feature caching 支持高效推理。
损失函数和训练 curriculum
视频 tokenizer 的训练分多个阶段进行。
图像 tokenization。 对 WAN 模型来说,第一阶段只训练图像 VAE(T = 0)。这会提供一个 spatial prior,对训练完整的视频 tokenizer 很有帮助。
低分辨率训练。 第二阶段会把图像 VAE「膨胀」成带有时间组件的模型,然后在低分辨率(128 x 128)帧和短视频序列(5 秒)上微调。在这一阶段,训练会结合 L1 reconstruction loss、VAE KL prior loss,以及 LPIPS(用于鼓励感知相似性;Zhang ‘18)。
高分辨率训练。 第三阶段会在更高质量的视频上继续微调 tokenizer,这些视频有不同的分辨率和长度。在这一阶段,会按照 VQ-GAN(Esser ‘21)引入 adversarial loss。
新兴方法:自适应、层级式和多视角 tokenization
视频 tokenization 是一个非常活跃的研究方向。下面我会讨论几条令人兴奋的工作线。
自适应 tokenization。 标准视频 tokenizer 会把 tokens 均匀分配给视频的不同部分。但视频里有些部分明显比其他部分复杂得多。最近一条关于自适应 tokenization的工作线,试图给视频中「更有意思」的部分分配更多 tokens。ElasticTok(Yan ‘24)通过在训练时随机 mask 掉一定数量的 tokens 来做到这一点,迫使剩下的 tokens 去表示视频里的信息。InfoTok(Ye ‘25)则使用一个固定压缩率的 tokenizer(例如他们实验里的 COSMOS tokenizer),通过预测 reconstruction loss 来判断某个视频需要多少 tokens。这个 token budget 随后会交给一个 adaptive compressor,后者会删除信息量最低的 tokens。
面向长时域生成的 tokenization。 另一条新兴工作线是层级式 tokenization。MilliVid(Chandratreya ‘26)把视频编码成一个 token 层级,用来捕捉从粗到细的不同层级信息。这能提升长时域视频生成的一致性和质量。FramePack(Zhang ‘25)的动机也类似,都是面向长时域生成;不过它会给「更相关」的过去帧分配更多 tokens,例如根据时间距离或 feature similarity 来判断相关性。
多视角 tokenization。 SceneTok(Asim ‘26)会把多视角场景观测编码成 tokens。这些 tokens 作为场景的 diffusable representations,可以用于从新视角生成视频。
我们真的需要视频 tokenization 吗?
让我们回到文章开头关于视频 tokenization 的论点。tokenizer 提供一种紧凑的 latent representation,让扩散建模在计算和数据层面都更高效。但 tokenizer 也会施加一个硬瓶颈:解码后的视频,只能捕捉 latent space 能够表示的东西。如果 tokenizer 丢掉了某些信息,生成视频里就会出现扩散模型无法消除的 artifacts。
为什么要把精细细节的表示交给 tokenizer?为什么不能让扩散模型自己负责一切?带着这个动机,我们正在看到一条绕过 tokenizer、直接在 raw image space 中工作的研究线(例如 JiT 和 AsymFlow)。这些方法已经开始具备和 latent diffusion models 竞争的能力。
我个人的判断是,tokenizers 是短期拐杖。最终,我们会找到办法,把扩散模型从冻结 tokenizer 的瓶颈里解放出来。