60 秒回答模板

动态分辨率的目标是在不固定压缩所有图片的情况下保留细节,同时控制视觉 token 数。核心做法是按图像尺寸和任务需要选择网格、patch 或 tile,再设计能表达二维位置和尺度的编码。 为什么要动态分辨率:固定分辨率会让长图、小字、图表和细节被压缩,也会让简单图片浪费 token。动态分辨率按内容复杂度分配视觉 token,提高效率和细节保留。 如何切分输入:常见做法包括保持长宽比缩放、按 tile 切图、选择不同 patch 网格、对局部区域高分辨率裁剪,并限制最大 token 预算。 位置编码要表达二维结构:位置编码要让模型知道 patch 在原始图片中的 x/y 位置、tile 位置、尺度和顺序。可以用二维绝对/相对位置、插值位置编码或带尺度信息的编码。 兼顾局部和全局:只看高分辨率局部会丢全局关系,只看低分辨率全图会丢细节。可用全图低分辨率加局部高分辨率 tile 的多尺度方案。 训练推理要一致:动态分辨率策略必须在训练中覆盖不同长宽比、分辨率和任务类型,否则推理时模型可能不会正确利用新增视觉 token。 最后要把方案落到可验证的指标、失败兜底和迭代闭环上。面试里不要只讲概念名词,要说明边界、取舍、数据来源、线上观测和出问题后的回滚或人工介入。

考点 token 预算
难度 真实面经题
回答目标 展示你理解 VLM 输入分辨率、位置编码和 token 成本之间的工程取舍。

深入解析

01

为什么要动态分辨率

固定分辨率会让长图、小字、图表和细节被压缩,也会让简单图片浪费 token。动态分辨率按内容复杂度分配视觉 token,提高效率和细节保留。

02

如何切分输入

常见做法包括保持长宽比缩放、按 tile 切图、选择不同 patch 网格、对局部区域高分辨率裁剪,并限制最大 token 预算。

03

位置编码要表达二维结构

位置编码要让模型知道 patch 在原始图片中的 x/y 位置、tile 位置、尺度和顺序。可以用二维绝对/相对位置、插值位置编码或带尺度信息的编码。

04

兼顾局部和全局

只看高分辨率局部会丢全局关系,只看低分辨率全图会丢细节。可用全图低分辨率加局部高分辨率 tile 的多尺度方案。

05

训练推理要一致

动态分辨率策略必须在训练中覆盖不同长宽比、分辨率和任务类型,否则推理时模型可能不会正确利用新增视觉 token。

易错点

  • 只说提高分辨率,不考虑视觉 token 成本。
  • 忽略长宽比,直接拉伸导致空间关系失真。
  • tile 切分后没有告诉模型 tile 的原图位置。
  • 只保留局部细节,丢失全局语义。
  • 训练没覆盖动态策略,推理时效果不稳定。

面试官追问

动态分辨率和简单 resize 有什么区别?

resize 把所有图片压到固定大小,动态分辨率会根据长宽比和复杂度分配 token,保留更多关键信息。

位置编码为什么重要?

没有合适位置编码,模型难以理解 patch 之间的空间关系、tile 顺序和局部区域在原始图片中的位置。

如何控制视觉 token 成本?

设置最大 tile 数、按任务选择分辨率、使用区域裁剪、压缩低信息区域,并对长图和复杂图做特殊策略。

动态分辨率会带来哪些风险?

训练推理分布不一致、位置编码外推不稳、tile 顺序混乱、细节过多导致文本上下文被挤占。