AutoToken:视觉-语言预训练中的视觉Tokenizer
以下为原文完整复述,可直接复制到 CSDN:
AutoToken:可扩展视觉-语言预训练中的视觉Tokenizer 深度分析
1. 视觉Tokenizer的组成部分
AutoToken论文(“AutoToken: Learning to Tokenize for Scalable Vision-Language Pretraining”)提出了一种面向大规模视觉-语言预训练的视觉Tokenizer。该Tokenizer本质上是一个图像/视频离散自动编码器,包含以下关键组件:
编码器(Encoder):将输入图像或视频帧映射到紧凑的潜在表示。AutoToken的编码器采用类似残差网络(ResNet)结构的卷积神经网络,并结合视觉Transformer的表征能力。默认配置下包括4个残差块用于逐步下采样。编码器将高维像素数据压缩为低分辨率的特征映射。例如,对于512×512512\times512512×512图像,编码器下采样因子为16,输出32×3232\times3232×32的特征图(即1024个潜在特征)。编码器输出的每个特征向量将在量化模块中被离散化为最接近的代码向量。
代码本(Codebook)与量化模块:采用向量量化(VQ)的离散化机制,将连续的编码器特征映射到有限离散代码。AutoToken使用索引反传量化(Index Backpropagation Quantization, IBQ)方法改进传统VQ。代码本包含KKK个可学习的嵌入向量(代码向量);AutoToken在训练时令编码器输出ze\mathbf{z}_eze与代码本中所有向量计算距离,选择最近的一个编码ei\mathbf{e}_iei作为量化结果zq\mathbf{z}_qzq。与传统VQ-VAE不同的是,IBQ对整个代码本进行联合优化,通过对编码特征与代码的一阶近似直通估计(straight-through estimator)来反传梯度。也就是说,将编码ei\mathbf{e}_iei的one-hot选择视为可微分的参数,使所有代码向量在每次反传中都被更新,保持编码器输出分布与代码本嵌入空间的一致。这种方法避免了仅部分代码被更新导致的“代码本塌陷”,显著提高了代码本利用率(达到约96%)。AutoToken因此可以扩展到大规模代码本(如218=2621442^{18}=2621442
