一句话定义:图像分词器(image tokenizer)是一种把图片压成一串离散编号(token)的模型,代表作是 VQ-VAE(Vector Quantized Variational Autoencoder,向量量化AI 词典:变分自编码器">变分自编码器)和它的加强版 VQGAN。它输出的不是像素,而是一段类似"3721、88、904……"的号码序列。
它是怎么做到的
拆成三步看:
1. 编码:一个卷积网络把图片切成小块,每块变成一个连续向量。一张 512×512 的图,可能被压成 32×32=1024 个向量。
2. 量化:准备一本"码本"(codebook),里面存着比如 8192 个标准向量。每个向量去码本里找最像的那个,然后丢掉向量本身,只留下它的编号。这一步是"离散化"的关键,也是名字里"向量量化"的由来。
3. 解码:另一个网络按编号把向量查回来,拼回一张图。
打个比方:普通压缩像把照片存成高精度扫描件,图像分词器则像把照片翻译成"填色本编号"——"第 37 号色块、第 12 号色块……"。颜色被限定在有限几支笔里,细节会损失,但整幅画的结构还在。而且因为只剩编号,图片就变成了一串"单词"。
VQ-VAE 和 VQGAN 差在哪
VQ-VAE 只要求重建得"平均意义上像",结果常偏模糊。VQGAN 在训练时额外加了对抗损失(GAN)和感知损失,逼着解码器产出更锐利、更像人眼期待的纹理。代价是训练更复杂、更容易不稳定。实际做生成时,通常是"VQGAN 负责图像↔编号,另找一个自回归 Transformer 负责预测下一组编号",和语言模型写文章是同一套玩法。具体选哪版、码本多大,以官方页面和实际实验为准。
和相邻概念的区别
| 方案 | 输出 | 能否还原图片 | 典型用途 |
|---|---|---|---|
| 普通自编码器 | 连续向量 | 能 | 压缩、去噪 |
| VAE | 连续的隐变量分布 | 能 | 生成、插值 |
| CLIP 图像编码器 | 整图一个语义向量 | 不能 | 检索、分类、图文对齐 |
| ViT 的 patch embedding | 连续向量序列 | 本身不能 | 图像理解 |
| VQ-VAE / VQGAN | 离散编号序列 | 能 | 图像生成、多模态统一建模 |
一句话记住差别:CLIP 把图变成"一句描述",VQGAN 把图变成"一篇文章的稿子",后者可以再写回去。而 ViT 虽然也切 patch,但向量不量化,所以它服务于"看懂",不服务于"重画"。
对从业者的意义
想让一个模型既读文字又画图,就必须先让图和文说同一种语言——离散 token。图像分词器就是这个翻译层。它带来的直接权衡是:码本越大、下采样倍率越低,重建越清晰,但 token 序列越长、生成越慢;反过来序列短、速度快,细节就糊。做多模态项目时,这往往是第一个要拍板的参数。
对普通人的意义
你手机相册里的一张照片,在模型眼里可能只是几百个编号。理解这一点,就能理解为什么"同一个模型既能看图又能画图"开始变得可行——它不是在看像素,而是在读一串代号。
