多模态模型中的视觉 tokenizer 总览
交互教程
追踪像素如何进入语言模型,并区分这种接口与图像编解码器。
前置阅读:ViT · 语义表征 · Vision Transformers Need Registers:给 ViT 增加内部计算位置
之前已经能做什么
Section titled “之前已经能做什么”图像 token 的三种含义
Section titled “图像 token 的三种含义”在 VQ 自编码器中,图像 token 常指码本索引;在 ViT 中,它通常是连续特征向量;在 LLM 输入中,image 占位 ID 标记将要写入视觉向量的位置。这个占位 ID 本身并不是编码图像内容的视觉词表项。
广义 visual tokenizer 可以指整条输入路径:调整尺寸、切分像素、编码特征、减少位置、对齐维度。重建 tokenizer 还需要像素解码器与相应目标。能够回答图像问题的模型,不会因此自动提供这个解码器。
改变了什么,为什么
Section titled “改变了什么,为什么”阅读顺序从左到右。点击模块,将它与计算和代码对应。代码为教学伪代码;来源链接提供论文方法或已核查的实现。
追踪五个阶段之间的接口
先记录调整后的图像尺寸,而不只是原文件尺寸;再记录 patch 网格、编码器宽度、压缩规则和 LLM 宽度。空间分组改变位置数量,投影改变特征宽度;两者都不自动等同于向量量化。
image = resize_with_model_rules(image)
patches = patchify(image)
features = visual_path(patches)
visual_embeddings = connector(features)
llm_input[image_positions] = visual_embeddings训练状态:静态实现审计;训练状态见下文。
分别计算位置数、维度与有效项
256×4096 的连续表示包含 1,048,576 个标量。称其为“256 tokens”并不能给出码率,存储精度也不同于学习到的信息量。判断效率前,应比较有效图像面积、向量宽度和下游任务。
valid_visual = sum(valid_image_positions)
# Do not count padded image slots as content.
# Do not call valid_visual the complete context length.训练状态:静态实现审计;训练状态见下文。
追踪五个阶段之间的接口
Section titled “追踪五个阶段之间的接口”先记录调整后的图像尺寸,而不只是原文件尺寸;再记录 patch 网格、编码器宽度、压缩规则和 LLM 宽度。空间分组改变位置数量,投影改变特征宽度;两者都不自动等同于向量量化。
对于已调整的 H′×W′ 图像、patch 边长 p、空间合并边长 m,编码器网格有 H′W′/p² 个位置,LLM 接收 H′W′/(pm)² 个视觉向量。Gemma 4 12B 的模型接口取 p=48、m=1;预处理阶段的 16 像素单位会重新组合为大像素块。
image = resize_with_model_rules(image)
patches = patchify(image)
features = visual_path(patches)
visual_embeddings = connector(features)
llm_input[image_positions] = visual_embeddings相近的 token 数可以隐藏不同计算
Section titled “相近的 token 数可以隐藏不同计算”Qwen3-VL 和 Qwen3.5 使用可学习 merger:拼接四个相邻特征向量,再经过 MLP。Gemma 4 编码器分支对九个编码后的空间位置求平均。Gemma 4 12B 直接嵌入更大的像素块。这些操作在减少位置前混合了不同的信息。
Qwen3-VL 向三个早期 LLM 层加入中间视觉特征;已审计 Qwen3.5 实现的输入路径仅使用最终合并视觉输出。Gemma 4 应分成小编码器、大编码器和 encoder-free 分支。下表采用具体 checkpoint revision,不以家族名称猜测结构。
逐步理解机制
Section titled “逐步理解机制”分别计算位置数、维度与有效项
Section titled “分别计算位置数、维度与有效项”256×4096 的连续表示包含 1,048,576 个标量。称其为“256 tokens”并不能给出码率,存储精度也不同于学习到的信息量。判断效率前,应比较有效图像面积、向量宽度和下游任务。
补齐后的 batch 张量可能包含空槽;语言上下文还可能含图像边界、换行、时间戳及普通文字。计算器仅统计有效视觉位置。已准备视频模式假设抽帧和尺寸调整已完成,不估算完整服务请求。
valid_visual = sum(valid_image_positions)
# Do not count padded image slots as content.
# Do not call valid_visual the complete context length.从像素尺寸追踪到视觉 token
形状计算,不运行模型。图像模式复现固定版本的尺寸取整规则;Qwen 的预算在此指定为最大视觉 token 对应的像素面积,不是服务商计费值。
| 阶段/计算项 | 结果 |
|---|---|
| 调整后高度 | 512 |
| 调整后宽度 | 512 |
| 时间组数 | 1 |
| 补齐/复制帧数 | 1 |
| 模型 patch 网格行数 | 32 |
| 模型 patch 网格列数 | 32 |
| 预处理空间单位 × 时间组 | 1024 |
| 模型 patch 位置数 | 1024 |
| 有效视觉 token | 256 |
| LLM 视觉特征形状 | [256, 4096] |
| 连续标量数 | 1048576 |
2×16×16 patches → ViT → 2×2 concat + MLP → LLM
27 vision blocks · width 1152 → 4096
输入:视觉 embedding 写入图像位置,文字 embedding 保留。
有效 token 不包括 padding 槽、图片边界、换行、时间戳文字或其他文本。视频模式不执行抽帧和视频预算分配:输入边长必须是 Qwen 的 32 或 Gemma 的 48 的倍数。单图的帧复制是时空 patch 接口操作,不意味着有运动信息。
已核对的具体配置
核对日期:2026-11-03. 每行链接到固定版本。参数相同不表示权重相同;12B 的 patch 列表示模型接收的像素块。
| 型号 | 模型 patch | 视觉层/宽 | 空间操作 | LLM 宽 | DeepStack 零基层 |
|---|---|---|---|---|---|
| Qwen3-VL-2B-Instruct | 16×16 | 24 / 1024 | 2×2 concat + MLP | 2048 | 5, 11, 17 |
| Qwen3-VL-8B-Instruct | 16×16 | 27 / 1152 | 2×2 concat + MLP | 4096 | 8, 16, 24 |
| Qwen3-VL-235B-A22B-Instruct | 16×16 | 27 / 1152 | 2×2 concat + MLP | 4096 | 8, 16, 24 |
| Qwen3.5-2B | 16×16 | 24 / 1024 | 2×2 concat + MLP | 2048 | — |
| Qwen3.5-9B | 16×16 | 27 / 1152 | 2×2 concat + MLP | 4096 | — |
| Qwen3.5-397B-A17B | 16×16 | 27 / 1152 | 2×2 concat + MLP | 4096 | — |
| gemma-4-E2B-it | 16×16 | 16 / 768 | 3×3 average | 1536 | — |
| gemma-4-E4B-it | 16×16 | 16 / 768 | 3×3 average | 2560 | — |
| gemma-4-12B-it | 48×48 | 0 / 3840 | Pixel projection | 3840 | — |
| gemma-4-31B-it | 16×16 | 27 / 1152 | 3×3 average | 5376 | — |
| gemma-4-26B-A4B-it | 16×16 | 27 / 1152 | 3×3 average | 2816 | — |
“—”表示本轮检查的路径没有 DeepStack 注入,不表示没有视觉信息。所有分支传递连续向量;本表没有把文字词表大小当作视觉码本。
为何必须看预训练目标
Section titled “为何必须看预训练目标”CLIP 使用图文对比匹配,SigLIP 使用基于 sigmoid 的成对目标,SigLIP-2 又扩展训练配方。DINO 类方法使用不同图像视图间的自蒸馏。这些目标能产生有用语义特征,但不明确要求恢复每个像素。
多模态文字训练可按不同阶段更新连接器、编码器和 LLM。冻结编码器仍计算特征,其输入梯度也可能存在。Early-fusion 训练不意味着架构没有编码器;部署时量化权重也不意味着连续视觉特征变成 VQ codes。
这些结果不能证明什么
Section titled “这些结果不能证明什么”哪些设计可以迁入重建研究
Section titled “哪些设计可以迁入重建研究”对 UAR,一个有意义的实验是固定某个编码器,分别使用 merger 前后特征训练解码器,保持图像数据和 decoder 容量一致,分别测量重建、语义和成本。这是建议实验,不是三个模型家族已报告的结论。
本综述是 2026-11-03 核对的快照,聚焦指定家族,不拼接不可比榜单、不推断缺失的视觉预训练配方,也不替换当前 VAR 优先路线。
视觉 token 数相同,是否意味着压缩程度或质量相同?
不意味着。特征宽度、输入分辨率、表征类型、训练与下游用途都可能不同。
来源与后续阅读
Section titled “来源与后续阅读”自绘图和伪代码用于教学;原论文图片单独标注来源。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。