M6-025M6: Multimodal & Generative ModelsDynamic Resolution & Visual TokensEasy
Mastery:

Dynamic Resolution & Visual Tokens: 解释动态分辨率(native resolution)的原理与动机。

📐 Mathematical Definition
fixed: resize→H0×W0;dynamic: split(H,W)→⌈H/P⌉×⌈W/P⌉ tokens\text{fixed}:\ \text{resize}\to H_0\times W_0;\qquad \text{dynamic}:\ \text{split}(H,W)\to \lceil H/P\rceil\times\lceil W/P\rceil\ \text{tokens}
⚡ Executive Summary
Core Concept: 不做固定尺寸缩放,按图像原生分辨率切分 patch,使 token 数与图像内容/尺寸匹配,保住细节。

📌 Key Takeaways

  • •
    固定分辨率:统一缩放到 224/336/448,会损失细节(尤其小字)
  • •
    动态分辨率:按原生分辨率切分,token 数与图像尺寸成正比
  • •
    动机:文档/OCR/细粒度任务需要高分辨率,固定缩放会毁掉细节

📐 Mathematical Derivations

数学机理:<strong>固定分辨率的问题</strong>——传统 VLM 把任意尺寸的图像<strong>统一缩放到固定尺寸</strong>(如 336×336),再切 patch。<strong>后果</strong>——(a) <strong>细节丢失</strong>——一张 2000×3000 的文档图缩到 336×336 后,小字变得模糊不可辨(OCR 失败);(b) <strong>宽高比失真</strong>——非方形图被拉伸/压扁;(c) <strong>信息密度不匹配</strong>——简单图(如单个物体)与复杂图(如文档)都被压到同样的 token 数,前者浪费、后者不足。<strong>动态分辨率(native resolution)</strong> 的做法——<strong>不缩放</strong>(或只做有限缩放),而是<strong>按原生分辨率切分 patch</strong>:token 数 = ⌈H/P⌉×⌈W/P⌉,<strong>与图像尺寸成正比</strong>。<strong>效果</strong>——(a) <strong>保住细节</strong>(高分辨率图的 token 更多,小字可辨);(b) <strong>保持宽高比</strong>;(c) <strong>token 数与信息量匹配</strong>(复杂图多给 token)。<strong>代表实现</strong>——(a) <strong>Qwen2-VL 的 M-RoPE + 动态分辨率</strong>——按原生分辨率切 patch,用多维 RoPE 编码位置;(b) <strong>LLaVA-NeXT 的 AnyRes</strong>——把高分辨率图切成多个固定尺寸的 tile + 一个全局缩略图(见 tiling 题);(c) <strong>InternVL 的动态 tiling</strong>。<strong>代价</strong>——(a) <strong>token 数不可控</strong>(高分辨率图可能产生数千 token,成本高);(b) <strong>需要位置编码支持任意网格</strong>(见 2D RoPE 题);(c) <strong>训练时需混合多种分辨率</strong>(否则无法泛化)。<strong>缓解</strong>——用<strong>token 压缩</strong>(池化/查询压缩)把高分辨率的 token 数压到可控范围(如 Qwen2-VL 用 2×2 池化压缩)。<strong>关键权衡</strong>——<strong>'细节 vs 成本'</strong>:动态分辨率保住细节但 token 多(贵);固定分辨率便宜但丢细节。<strong>实践</strong>——(a) <strong>通用场景</strong> → 固定中等分辨率(如 336/448)+ 可选动态;(b) <strong>文档/OCR/细粒度</strong> → 动态分辨率 + token 压缩;(c) 按输入类型<strong>动态选择</strong>(简单图低分辨率、文档图高分辨率)。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'固定缩放毁掉细节'是动态分辨率的根本动机</strong>——尤其对文档(小字)、图表(细线)、遥感(小目标);这是'通用 VLM 在文档任务上表现差'的主要原因。② <strong>'token 数与信息量匹配'是更深层的理由</strong>——固定分辨率下'简单图与复杂图同样 token 数'是浪费与不足并存;动态分辨率让'信息量与 token 数'成正比。③ <strong>'token 数不可控'是主要代价</strong>——高分辨率图可能产生数千 token,直接推高成本与延迟;故<strong>必须配合 token 压缩</strong>(否则不可用)。④ <strong>'位置编码需支持任意网格'</strong>——动态分辨率下 patch 网格尺寸可变,故需 2D/M-RoPE 编码(而非固定的一维位置);这是配套的技术要求。⑤ <strong>'训练需混合分辨率'</strong>——若训练只用单一分辨率,模型无法泛化到其他分辨率;故需在训练时随机化分辨率(这是重要的工程细节)。⑥ <strong>面试要点</strong>——被问'动态分辨率是什么',应给出'<strong>按原生分辨率切 patch(token 数 ∝ 尺寸)vs 固定缩放(丢细节)</strong>'与'<strong>动机(OCR/细节)+ 代价(token 不可控)+ 配套(2D RoPE + token 压缩 + 混合分辨率训练)</strong>';能指出'动态分辨率必须配合 token 压缩才可用'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    用固定分辨率处理文档图(小字丢失)
  • ✕
    动态分辨率不配 token 压缩(成本失控)
🎯 Interviewer Follow-ups
  • ?
    固定分辨率为什么损害 OCR?
  • ?
    动态分辨率如何处理'任意尺寸'的输入?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM6-024: VLM Connectors & Projections: 解释 VLM 中视觉 token 的放置位置(前置 / 后置 / 交错)与影响。📋Back to BankNext →M6-026: Dynamic Resolution & Visual Tokens: 解释 2D RoPE 在视觉中的必要性。