登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  科技周边 >  人工智能

多模态图片输入怎么控成本:分辨率、切片与 token 预算核对

来源:17golang原创

时间:2026-08-27 10:50:59 161浏览 收藏

线上图像问答接口突然变贵,第一反应通常是怀疑模型或重试逻辑。真正容易被忽略的是图片本身:同一张截图从 800×600 换成 2400×1800,视觉模型可能要按更多区域切片,输入 token 和延迟都会跟着上涨。成本控制的关键不是把所有图片压成小图,而是先判断任务需要“看整体”还是“读细字”。

先按尺寸估算图片会被拆成多少视觉块,再用低分辨率完成粗筛,只有需要读小字或局部字段时才提高分辨率;这样比所有请求一律上传原图更容易把预算和准确率同时守住。

要点速览
  • 图片两边都不超过 384 像素时,Gemini 图片输入按 258 tokens 计;更大的图片会进入 768×768 区块切分。
  • 粗分类、去重、是否存在目标等任务优先低分辨率;OCR、小字段核对才值得提高视觉预算。
  • 批量图片要先核对单图预算、总图片数和失败重试,不能只看文本 token。
  • 压缩后必须复核旋转方向、裁剪区域和关键文字,省下 token 却丢掉证据并不算优化。

先把“图片贵”拆成三个可核对的量

多模态请求的输入不只有提示词。图片通常会先经过视觉编码,再以视觉 token 参与上下文。工程上可以把一次请求的预算拆成三项:图片切片 token、文字提示 token、输出 token。本文重点看第一项,因为它最容易随着尺寸和图片数量突然放大。

以 Gemini 图片理解文档中的规则为例,宽高都不超过 384 像素的图片计作 258 tokens;更大的图片会按约 768×768 的区域切分,每个区域仍按 258 tokens 计。文档同时说明,具体切片数量要结合尺寸和裁剪规则估算,下面的函数适合做上线前的粗估,不应替代真实用量统计。

import math

def rough_image_tokens(width, height):
    if width 

这个估算的价值在于提前发现数量级:一张小缩略图和一张需要切成多块的大截图,不应该共用同一个预算假设。真正上线后,还要把接口返回的 usage 与这次估算并排记录,观察供应商规则或模型版本变化。

图片尺寸从整体输入到多块切片,展示视觉 token 预算上升的因果关系

故障现场:为什么原图越清晰,账单反而越难看

有一个很典型的批处理场景:每天把商品截图交给模型判断“是否有明显缺陷”。任务只需要看轮廓和颜色,却沿用了客服上传的 2400×1800 原图。模型回答并没有明显变准,但每张图都带来更多视觉区域,批量任务的耗时和费用一起上升。

这里不要急着把图片质量一刀切。先给任务分级:

  • 整体判断:是否存在目标、是否为空白、粗粒度分类,可先缩放到短边 384~768 像素测试。
  • 局部读取:订单号、表格小字、截图中的报错字段,需要保留目标区域,必要时裁剪后单独送入高分辨率。
  • 混合任务:先用低分辨率筛掉大部分无关图片,再把命中的少量图片进入局部复核。

“先粗筛、后复核”不是模型能力保证,而是一个可测的工程策略。用同一批样本记录召回率、误报率、平均延迟和每千张图片的输入 token,只有准确率损失可接受时才上线。

视觉模型先低分辨率粗筛,再对命中图片提高分辨率读取小字的修复路径

media_resolution 该怎么和任务匹配

Gemini 3 文档提供了 media_resolution 这个控制项,用来决定每张输入图片或视频帧允许使用的视觉 token 上限。高分辨率更适合读取细小文字和小目标,但会增加 token 使用量与延迟;低分辨率更适合快速筛选。参数名相同,不代表所有模型或供应商的档位和上限完全相同,接入时必须以当前模型文档和实际 usage 为准。

可以把配置写成任务级策略,而不是全局常量:

{
  "task": "receipt_screening",
  "media_resolution": "low",
  "escalate_when": ["命中疑似异常", "需要读取小字段"],
  "max_review_images": 3
}

第一阶段只回答“要不要复核”,第二阶段只发送裁剪后的证据区域。若第二阶段仍然看不清,优先检查图片是否旋转、是否被过度压缩、目标是否占画面太小,而不是盲目把整个原图再次提交。

批量输入和重试最容易漏掉的边界

单图预算可控,不代表批处理就安全。一次请求中如果放入多张图片,应该先计算总预算,并给失败重试设置上限。网络错误重试时复用同一批图片,可能让输入消耗按次数重复;业务上可以把图片哈希、批次编号、尝试次数写入日志,避免把一次失败误认为一次新样本。

另外,图片格式和方向也会影响结果质量。公开文档列出了 PNG、JPEG、WEBP 等常见格式;无论采用哪种格式,都应在进入模型前确认 MIME 类型正确、图片已按 EXIF 或业务规则旋转、文字区域没有被裁掉。格式转换的目标是减少无效体积,不是把证据压成模型无法辨认的噪点。

上线前的四项复盘检查

  1. 取一批真实图片,记录原始尺寸、缩放后尺寸、估算切片数和接口实际 usage。
  2. 把整体判断与小字读取拆成两条路径,比较低分辨率和高分辨率的准确率差异。
  3. 为图片总数、单批 token、最大重试次数设上限,超出时进入人工复核或延后处理。
  4. 保留失败样本,重点检查方向、局部裁剪、MIME、过度压缩和模型版本,而不是只看平均成本。

如果一项优化只让账单下降,却让关键字段识别失败,应该回滚。对多模态系统来说,正确的成本指标是“完成一次可靠判断的平均代价”,不是最低的单次 token 数。

常见问题

图片一定要缩放到 384 像素吗?

不一定。384 像素是文档规则中的一个预算分界示例,不是所有任务的质量上限。需要读小字时,应保留局部细节并用真实样本验证。

提高 media_resolution 就一定更准确吗?

不一定。它只提供更多视觉预算,不能修复旋转错误、模糊、裁剪错位或原图本身缺失的信息。

如何判断压缩是否过头?

拿业务中最小的关键字段做复核:如果人眼在原图中能读到,而压缩图中字符边界已经粘连,就应提高局部尺寸或改用裁剪复核。

总结

控制多模态图片成本,第一步是把尺寸、切片数和视觉预算变成可记录的数字;第二步是按任务分层,让低分辨率承担筛选,高分辨率只处理真正需要细节的少量证据;最后用实际 usage、准确率和延迟做回归。这样改的是输入路径,而不是简单牺牲图片质量。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>