多模态大模型输入信号的离散化

量化/离散化并不是为了把 Transformer 的隐藏维度 d 变短;d 是模型容量的选择。它更像是把感知信号先压缩成更紧凑的 token 序列:要么减少 token 数 n,要么减少每个 token 的比特数,从而降低数据、缓存和生成难度;而进入 Transformer 后,仍统一用 d 维表示进行推理与融合。

d (任何token投影成同一个长度 d 的隐藏向量,这是真正的内部token表示,作为网络的处理对象)是大模型训练的一个超参数。并不与token离散还是连续直接相关,虽然连续token的design,会促使研究者倾向于选择更大的 d,好留下/捕捉更多的信息。

一个自然的问题是:如果最终都要投影到同一个固定的隐藏维度 d 里,那我把视觉表示做离散量化,岂不是“重复劳动”?

答案是:不重复。量化/离散化解决的主要不是“d 该多长”,而是另外三件更贵、更要命的事:序列长度 n、比特数/带宽、以及生成端的难度。做个比喻,d 只是“车道宽度”,量化更多是在“减少车流量、压缩货物体积、换一种更容易开车的路”。

量化/离散化并不是为了把 Transformer 的隐藏维度 d 变短;d 是模型容量的选择。它更像是把感知信号先压缩成更紧凑的 token 序列:要么减少 token 数 n,要么减少每个 token 的比特数,从而降低数据、缓存和生成难度;而进入 Transformer 后,仍统一用 d 维表示进行推理与融合。

一、d 固定不等于成本固定:真正的重头往往在 n 和注意力

在 Transformer 里,最敏感的是 token 数 n,因为注意力的开销大体跟 𝑛平方走。

例子:256×256、8×8 patch → 1024 tokens

这时再“固定 d=1024”,仍然要付出 1024×1024 规模的注意力矩阵成本。

而很多离散化方案(尤其是“先编码到更小的潜空间 latent,再离散”)真正干的是:
把 n 从 1024 砍到更小(比如 256、128、甚至更少),这是实打实的减法。

关键点:
离散化经常和“空间下采样/潜空间token化”绑定出现,它省的首要是 n,而不是 d。

二、量化/离散化的“省”,经常发生在 Transformer 之外:数据、缓存、I/O、显存

即便进模型后都变成 d 维向量,离散表示仍然有明显优势,因为它让“流动的东西”从浮点变成整数码int:

数据存储与训练管线:连续 latent 往往是 fp16/fp32 的大块张量;离散 code 是 int(再配合熵编码就更夸张了),数据集体积、读盘带宽、吞吐都会降很多。

中间结果缓存:比如多轮编辑、视频生成、多段推理,缓存离散码(index)比缓存高维连续特征更省得多。

跨模块传输:端侧/服务端/多机之间传中间表示时,离散码天然更省带宽(也更不容易“飘”或“糊”)。

这些开销在真实系统里非常“肉疼”,而且往往比你想象的更早成为瓶颈。

三、离散化还会改变“生成问题”的性质:从回归连续值变成选码本

生成模型最难的一步是什么?很多时候是:
在高维连续空间里生成“看起来像”的东西,既要细节又要稳定。

离散码本(VQ 这类)把生成变成:

先生成一串离散符号(选哪个 code),

再由解码器把符号还原成图像/音频。

这会带来两个常见收益:

学习目标更“像语言”:LLM的自回归/序列建模更顺手。

错误更可控:连续回归的小偏差会导致视觉上糊、飘;离散码的错误更像“选错词”,后处理或自回归本身的纠偏空间更大。

当然它也可能带来副作用(码本过小会导致“积木感/失真”),但这不是“重复劳动”,而是在换一种折中。

提炼一下,总结如下

很多读者第一次听到“把图像也离散成 token”,都会产生一个自然的疑问:既然最后进到 Transformer 里,所有 token 都要被投影成同样长度的隐藏向量 𝑑
(例如 1024),那把视觉表示做离散量化,岂不是重复做功?

关键在于:量化并不是为了把 𝑑 变短。𝑑 是模型容量的选择——就像“这台大脑有多宽的工作台”。量化真正改变的,是另外两件更昂贵的东西:一是序列有多长(token 数
𝑛),二是每个 token 以多少比特在系统里流动(存储与带宽)。

以 256×256 的图片为例,按 8×8 patch 切分就是 1024 个 token,长度已经是“千级”,注意力的开销会随 𝑛 平方放大;这时哪怕 𝑑 固定,计算也依然很重。很多“离散化”方案往往同时在做一件更实惠的事:先把图像编码到更低分辨率的潜空间,再在潜空间里离散化,从而把
𝑛 从 1024 压到更小的量级——这才是省算力的第一刀。

更重要的是,离散 token 在 Transformer 之外也能显著省钱:它让中间表示从高维连续张量(浮点表示)变成整数码(int表示),数据集更小、读写更快、缓存更轻,跨模块传输的带宽压力也更低。换句话说,离散化是在“运输与存储层面”先把货物压缩了;至于进入大模型之后是否用 𝑑 = 1024 来统一表示,那是“工作台宽度”的问题,两者并不矛盾。

所以,把视觉信号离散成 token 不是重复劳动,而是把成本从“又长又重的连续序列”转成“更紧凑、更易搬运的符号序列”,从而让多模态统一建模更接近语言模型那套LLM成熟的工程范式。

 

发布者

立委

立委博士,多模态大模型应用咨询师。出门问问大模型团队前工程副总裁,聚焦大模型及其AIGC应用。Netbase前首席科学家10年,期间指挥研发了18种语言的理解和应用系统,鲁棒、线速,scale up to 社会媒体大数据,语义落地到舆情挖掘产品,成为美国NLP工业落地的领跑者。Cymfony前研发副总八年,曾荣获第一届问答系统第一名(TREC-8 QA Track),并赢得17个小企业创新研究的信息抽取项目(PI for 17 SBIRs)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理