ESC
输入关键词搜索文章
目录

视觉领域的离散分词器 (Visual Tokenizer)

引入

这篇文章主要想谈一谈我目前对视觉领域的离散分词器的理解,主要目的是整理自己的知识,从而更好地向前。

才疏学浅,还请见谅。

首先,第一节我们会结合自然语言处理领域的一些知识,讲解 Next Token Prediction 范式的原理及相应的模型简要发展历程, 随后引入到视觉领域,为什么我们要在视觉领域引入视觉分词器,以及它有什么用。而后,我会讲一下视觉分词器一些分类及进展。

Next-Token Prediction

大语言模型在自然语言处理 (Natural Language Processing, NLP) 领域取得了巨大的成功,这不能不归功于它所使用的自回归 (Autoregressive, AR) 模型。 AR 模型采用 Next-Token Prediction(NTP) 的方式来生成整段的文字,表现出了优良的 Scaling Law.

AR 模型之所以能取得如此巨大的成功,不能不归功于它的 NTP 过程。 NTP 过程是一个通过已知预测未知的过程,在训练模型学会 NTP 时,我们让模型学会了概率预测。这一点,是在以 BERT 为代表的双向预测方案所不具备的。

概率的链式传导法则

NTP 过程的理论基础是 概率的链式传导法则 。我们知道概率的链式法则表达如下:

$$P(X_1, X_2, \dots, X_n) = P(X_1) \cdot P(X_2 | X_1) \cdot P(X_3 | X_1, X_2) \dots P(X_n | X_1, \dots, X_{n-1})$$

用连乘符号表示:

$$P(X_{1:n}) = \prod_{i=1}^{n} P(X_i | X_{<i})$$

我们发现,概率计算的链式法则(Chain Rule)本身有很好的无限延展性。通过序列前缀的信息,预测下一个元素是什么,随后再下一个,再下一个……无穷匮也。

这个过程可以不断继续下去。而且这个不断延续的过程中,每一步所建模的是同样的东西:概率。

这就是 AR 模型要建模的过程。有些时候不得不感慨,有一些很高级的技术,背后的数学原理可能也没有想象得那么高深。

AR 模型希望用一个学习出来的模型 \(P_\theta\) 去拟合上面公式中的 \(P\). 这个 \(P\) 是一种条件概率。而数学上来说,世界上发生的所有事情都可以用条件概率来表示。可以说,学会了条件概率,就学会了一切。

而且,学习这种条件概率的过程非常平滑。概率驱进于真实概率,我们能很方便地设计一个奖励函数/损失函数来驱动模型向着这个方向前进。

在理论可达无限长度的 AR 模型训练过程中,模型对世界的概率分布建模越来越准确,越来越靠近真实事件中这个序列的概率分布。

我们希望在序列中进行的每一次预测,模型都能专注于做好基于已知概率建模这一件事。这种纯粹,也许就是可拓展性的来源。

RNN & LSTM

RNN 对链式法则的过程做了一点修改,它用一个潜状态把前 \(n-1\) 个元素给包裹了进来。

$$H_t = f(H_{t-1}, X_t)$$
$$P(X_t | H_t)$$

这种方式能够保证模型在进行序列处理时,边处理边压缩信息。但是问题是随着序列长度的增加,信息量必然是增加的,然而隐状态 \(H_t\) 的长度却不能无限量地增加。这导致 RNN 必然会遇到遗忘的问题。同时,它也不够纯粹。在 RNN 中,模型不仅要学会建模概率,还要学会压缩信息。

究竟是“概率即智能”还是“压缩即智能”呢?我目前还不知道,但是 RNN 想让模型同时做这两件事,似乎没有让模型只做一件事效果好。

由于模型把过往信息压缩得太过了,反而导致模型没办法建模好链式法则中所体现的条件概率。无法建模条件概率,就导致了

并且, RNN 还有一个很让人讨厌的特性,那就是 随时间反向传播 (BPTT)

RNN 的梯度回传导致它的训练不能并行,梯度也必须随时间回传。这一点无比恼人。

Transformer

Transformer 每两个 token 之间都要计算注意力,这给它带来了处理长程依赖的能力,链式法则的长度哪怕再长,Transformer 也能计算它们之间的关系。这确保了 Transformer 做的工作无比地纯粹:概率建模。没有潜状态、没有辅助信息,它所做的就是纯粹的概率建模。

从某种意义上来说,Transformer 不做信息压缩,不学习数学、物理规律,他学习的就是纯粹的概率。它就是链式法则在 AI 领域具象化身。

Transformer 甚至和链式法则一样,都不能区分不同 Token 之间的位置信息,而必须要依靠位置编码

正如瘸子有了条好的拐杖,可以跑得比正常人还要快, AR 模型有了 Transformer ,进行文本生成的能力可以比人类还要强。

从像素到 Token

由于 AR 模型已经在 NLP 领域被证明了可行,同时,让模型直接建模概率,从而通过概率理解世界,这是一个相当有吸引力的想法。因此,我们自然而然地就会想要把 AR 模型搬到视觉领域来。

同时,视觉领域与 NLP 模型采用同一个架构还有一点好处,就是可以用同一个模型处理视觉信息,这样就可以避免转译造成的信息损失,让模型原生地能够在同一个潜空间里理解视觉与语言信息。这让真正的原生能够理解多模态的大模型成为可能。

离散化

我们要怎么在视觉领域应用 AR 模型呢?

要想训练一个视觉 AR 模型,我们首先需要能够把视觉数据表示成线性的离散元素。

当然,你会想:为什么要离散?连续不行吗?

连续当然也行,也有在连续空间里做 AR 模型的研究,但问题是人类语言数据是天然离散的,哪怕是嵌入了矢量的语义空间,事实上也只有有限数量的离散点可以取到。因此, Transformer 在大语言模型训练时学习到的能力是一种离散的条件概率分布。

\(X_n\) 能取到的值,终究逃不开一个码表。

这使得,语言模型建模的始终是一个 离散条件概率分布 ,而我们最终还是希望能实现多模态的模型,让模型同时拥有处理图像的能力和处理语言文字的能力。如果我们让视觉信息变成连续空间里的分布,就会有一些不匹配。

是否会造成模型性能下降我没有了解过,但按我的理解来说,我们希望视觉信息与语言信息能在语义空间里统一使用离散的条件概率分布,以保持统一性。

预测什么

确定了要离散以后,我们要处理下一个问题:

我们的 AR 视觉模型,要预测什么?

最直接的想法就是像素,这就是 Next-Pixel Prediction. 但是这种方法最大的问题就在于计算量。每一个像素都要计算一次,那么一张 256*256 的图像,就已经有 65536 个元素了,对比到文本中,那就是 65536 个词元,几万个词的文章,计算量可想而知。

Next-Pixel Prediction 的研究也有不少,但是 Next-Pixel Prediction 的计算量问题是无法解决的。

要想解决这个问题,我们不对看一看语言模型的 Token 的什么,是怎么处理的。

首先,我们知道语言的最小单元是字符,如,但是并不是一个字符表达一个意思,比如说 prepare, 从词源和构词法的角度,它由前缀和词根组成:

那么实际上,我们没必要把它拆成 p-r-e-p-a-r-e, 可以把它拆成 pre-pare. 这样虽然增加了我们要表示的码字的数量,也就是增大了码本的大小,但优点也很明显:

  1. 模型的理解成本降低了。它不再需要先学会理解把 p-r-e 连接起来,人类已经把这个确定性的过程完成了。
  2. 模型的计算负担减少了。把字符变成了词元以后,一篇文章的元素数量立即就减少了,那么链式法则的长度下降,模型不需要建模那么复杂的概率分布,自然建模所需要的参数量也就减少了。

那么这么一来,我们就希望在视觉领域,也能把图像通过先人工拆分成 Token 序列,以减少序列的长度,从而降低模型计算量与计算难度的目的。

怎么划分 Tokens ?

但是,问题又来了:语言领域信息是天然离散有限的,要想划分 Tokens 很简单,因为人类语言原生就是离散的。但是视觉领域这就变成了一个难题。

这些 Token 可能对应着像素信息、图像的 patches 又或者是图像的 latent codes, 又或者是一个 scale .

到底要使用哪一种 Token 呢?这还没有定论。每一处划分方法,都已经有了相当多的研究。

进行划分 Tokens 工作的模块,被我们称作“分词器” (Tokenizer) 。

什么是离散分词器

最高提出离散分词器的工作是 VQVAE, 这篇标志性的工作为我们带来了“矢量量化” (VQ) 的概念。其最核心的想法就是,让 Encoder 生成的向量与一个可学习码本中的向量去相互靠近,最后训练出一个码本,能够用有限的向量来表示。

这里是视觉分词器与语言分词器最大的不同点。

语言信息表现形式离散的,但是表达的信息是稠密的。(比如“苹果”一个词里包含着很复杂的信息,但它就只是一个词。)

维度 图像 (Images) 语言 (Natural Language)
原始密度 极高 。每个像素都有 RGB 值,删掉一个像素影响极小 极低 。每个词都是离散符号,删掉一个词意思全变
语义密度 较低 。大量像素描述背景,有用信息分布稀疏 极高 。每个词都经过人类大脑的“精简和提取”
处理方式 遮盖 90% 的像素,依然能识别出图片内容 遮盖 90% 的词,整段文字将完全无法理解

Table 1:图像与语言在数据特性上的对比

VQVAE 最大的问题是,每一个 token 都只有局部的信息。

随后的 VQVAE-2 引入了多层次码表。试图让 tokens 能具有全局的信息。

SoundStream 则将残差的概念引入了离散分词器的概念之中,提出了 RVQ。其核心观点是用多个量化结果相加去逼近真实值。有点类似于泰勒展开的思想。把一个复杂的难以表示的信息拆成了多个简单、容易表示的信息。

VAR 继承了 RVQ 残差的概念,并学习了传统视觉方法中“拉普拉斯金字塔”的方法,将残差的理念扩展到了全局,再加上多层次码表以及 Next-scale prediction, 成就了目前这个领域的标杆。

TiTok 走的则是另一条路子,

认知科学

原型理论(Prototype Theory)

在认知心理学中,原型理论认为人类通过将新刺激与脑中的“原型”(最典型的样本)进行对比来识别物体。

对应关系: VQ-VAE 码本里的每一个向量向量 \(\mathbf{e}_i\) 就像是一个原型。认知行为: 当你看到一只从未见过的奇特杯子时,你的大脑会将其归类为“杯子”,是因为它在特征空间里离你脑中“杯子”的原型最近。VQ-VAE 的最近邻搜索(Nearest Neighbor Search)几乎完美复刻了这一逻辑。

知觉恒常性与特征提取(Perceptual Constancy)

人类认知具有“化繁为简”的能力,能从不断变化的感官输入中提取稳定的模式。

认知意义: 无论光线如何变化,你都能识别出那是红色。

VQ-VAE 逻辑: Encoder 负责过滤掉无关紧要的噪声(连续信号中的微小波动),而码本则负责将其映射到一个离散的符号上。这种从“连续感官输入”到“离散认知概念”的跃迁,是认知科学中模式识别的关键步骤。

心理词典与组块化(Chunking)

认知科学中的“组块化”理论认为,人类通过将碎片信息组合成有意义的单元(Chunks)来减轻记忆负荷。

码本作为组块: VQ-VAE 的码本本质上就是一套高效的编码表。它不是记录像素,而是记录“某种特定的纹理”或“某种特定的几何结构”。

自下而上的加工: 这种从局部特征识别(码本索引)到全局理解(Decoder 重构)的过程,符合认知科学中“自下而上”的信息加工模型。