← 返回题目列表

多模态大模型如何处理高分辨率和不同宽高比的图像?

高频 中等 第 2 / 25 题 更新于 2026/07/25
高分辨率AnyRes动态分辨率视觉 Token

简化版

高分辨率处理是在**「看清局部、保住全局、控制 token 数」** 之间取舍。常见方案:固定缩放(简单但小文字糊)、保比例补边(不失真但浪费像素)、全局缩略图 + 局部切块(AnyRes)(兼顾整体和细节)、动态分辨率(按原图尺寸生成可变 token)。高分辨率能改善小文字和细节识别,但切块数量会推高视觉编码、LLM Prefill 和上下文成本,还必须保留「局部块 ↔ 整图」的位置关系,否则模型看清局部却判错整体布局。

详细版

  • 固定缩放到正方形:最简单,但可能拉伸变形或丢细节;
  • 补边保比例:不失真,但有效像素利用率低;
  • 切块(全局图 + 局部块):先给全局缩略图理解布局,再把原图按网格切成视觉编码器支持的块,兼顾整体与清晰;
  • 动态分辨率:不同图产生不同数量 patch token,批处理时打包或填充。

工程上要限制最大像素、最大块数、视觉 token 预算块越多不代表越好——跨块物体、阅读顺序、坐标映射更难,冗余视觉 token 还挤占文本上下文。

完整版教学

一、固定缩放的损失:一个 OCR 例子

最简单的做法是把任意图缩到固定尺寸(如 336×336),但对细节任务是灾难:

一张 3000×2000 的文档,缩到 336×336:
  长边压缩约 9 倍 → 原本 20 像素高的文字,只剩 ~2 像素
  → 编码前信息已消失,再强的 LLM 也无法恢复

强行拉伸还会改变物体形状(圆变椭圆),中心裁剪则可能直接删掉边缘内容。信息在编码前丢了就永远回不来——这是所有高分辨率方案要解决的根本问题。

二、全局图 + 局部块(AnyRes 类)

主流解法是「既要整体、又要细节」:

一张高分辨率图:
  1. 全局缩略图 → 编码 → 若干 token(理解整体布局)
  2. 按宽高比选网格(如 2×3),切成 6 个局部块
  3. 每块分别过视觉编码器 → 拼接所有块的视觉 token
  → [全局 token] + [块1 token]...[块6 token] 一起给 LLM

AnyRes 类方法根据图像宽高比动态选网格。关键工程细节:必须给每个块加块顺序/分隔符/二维位置信息,否则模型不知道某个局部块来自图的哪个位置,会把左上角的字和右下角的字搞混。

三、动态分辨率:减少拉伸和补边

动态方案尽量保持原始宽高比,把不同尺寸的图转成可变数量的 patch token。好处是减少无效拉伸和补边浪费;代价是同一 batch 里样本长度不同,需要 Token Packing、Padding Mask 或按长度分桶来处理变长。

易错点:训练时只见过固定尺寸,推理时直接放大并不保证泛化——位置编码插值 + 没在高分辨率上训练充分,效果可能不升反降。

四、Token 成本:为什么高分辨率这么贵

高分辨率的代价要算清楚这笔账:

若每个块产生 T 个视觉 token,用 K 个局部块 + 1 张全局图:
  视觉 token 总数 ≈ (K+1) × T
例:T=576,K=6 → (6+1)×576 = 4032 个视觉 token
  → 光是图就占了 4000+ 上下文,比大多数文字问题长得多

而 LLM Prefill 的注意力和激活随总序列长度增长,所以高分辨率同时推高视觉塔和语言塔的成本。可用池化、查询重采样、Token 合并/剪枝降低长度,但每种压缩都要测细节任务是否退化。

五、文档与 OCR:不只是「看清字」

文档任务比自然图更苛刻——不仅要识字,还要理解阅读顺序、表格单元格、版面坐标。所以要保留页码、块坐标、重叠区域,必要时结合专门的 OCR / 版面分析工具。

记忆钩子:模型给出流畅的文本,不代表逐字转录准确——它可能「猜」出了看起来合理但错误的内容(文字幻觉)。高价值文档要用专门 OCR 交叉验证。

六、常见误区与追问

  • 误区:分辨率越高越好。 块越多,跨块物体/阅读顺序/坐标映射越难,冗余 token 还挤占上下文,存在最优点。
  • 误区:切块后模型自动知道块的位置。 必须显式加块顺序/坐标/分隔符,否则局部关系丢失。
  • 误区:推理时直接放大就能处理高分辨率。 训练没见过的尺寸 + 位置编码插值,泛化没保证。
  • 追问:固定缩放的根本问题? 信息在编码前就丢失,后续无法恢复(小文字被压没)。
  • 追问:AnyRes 的核心思路? 全局缩略图看布局 + 局部块看细节,按宽高比选网格,需保留块位置。
  • 追问:高分辨率的 token 成本怎么算? 约 (K+1)×T,K 个块加全局图,直接推高 Prefill。
  • 追问:文档任务要注意什么? 除识字还要阅读顺序/表格/坐标,流畅文本≠逐字准确,需 OCR 验证。

七、加强记忆

高分辨率处理记「看清局部、保住全局、控制 token」的三角取舍:固定缩放简单但小文字糊(信息编码前就丢)、补边不失真但浪费、全局图+局部块(AnyRes)兼顾但要保留块位置、动态分辨率减拉伸但要处理变长。核心代价是 token 爆炸——视觉 token ≈(K+1)×T,直接推高 LLM Prefill,所以切块不是越多越好。文档 OCR 尤其要注意:流畅文本≠逐字准确(文字幻觉),高价值场景用专门 OCR 交叉验证。选型看任务:自然图用较低固定分辨率,OCR/图表用动态或切块。