ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

多模态 LLM 实战:一张图等于多少 token,账怎么算

多模态 LLM 实战:一张图等于多少 token,账怎么算

多模态 LLM 实战:一张图等于多少 token,账怎么算

结论先放这儿

图像视觉 token 数(16px patch 估算)
336 × 336441
512 × 5121024
1024 × 10244096
长截图 1280 × 400020000

一张高分辨率截图轻松吃掉几千到两万个视觉 token,比一段长文字贵得多。多模态的账先算图像侧,再算文本侧,混着估会翻车。

一、图像怎么变成 token

视觉模型把图片切成小方块,每个方块过一个编码器变成一个向量,这就是视觉 token。切法通常按固定边长(14 或 16 像素)划网格,token 数就是几何题:

import math def vision_tokens(width, height, patch=16): return (width // patch) * (height // patch) for w, h in [(336, 336), (512, 512), (1024, 1024), (1280, 4000)]: print(w, 'x', h, '->', vision_tokens(w, h), 'token')

分辨率翻一倍,token 数翻四倍,成本跟着平方涨。这也是很多产品在上传前先压缩图片的原因,画质损失可接受,省下来的账单实在。

二、分辨率和成本的三笔账

第一笔,输入计费。视觉 token 按输入价计费,一张 1024 见方的图约 4000 token,按常见价格折算比一段几百字的中文还贵。批量截图理解的场景,先把图压到模型能认清的最小尺寸。

第二笔,上下文窗口。视觉 token 和文本 token 共享同一个窗口。塞几张高分辨率图,留给对话历史的余量就被挤掉,多图任务先算总账。

第三笔,延迟。视觉 token 越多,首 token 延迟越长。实时场景(截图问答、摄像头流)要么降分辨率,要么只送关键帧。

三、选型注意

各家模型对图像的处理方式不一样。有的固定分辨率切一格,超过就压缩到规格内;有的动态分辨率按长宽比切块,长图切成多块逐块编码。选型时先看两点,支持的图像 token 上限和计费方式,再把你的真实图片样本跑一遍实测 token 数,别拿文档示例当自己场景的账。

实测方法和 Tokenizer 篇一个道理,同一段内容不同编码差异很大,图像侧同理:

# 用 API 返回的 usage 对账,图像 token 通常单列 # usage.prompt_tokens_details.image_tokens 或类似字段

四、三个坑

坑一,整页长图直接塞。一张 4000 像素高的长截图就是两万 token,先按视口切段再喂,每段配一行说明。

坑二,表格当图片送。表格类截图用视觉模型提取容易丢行列,能转文本(OCR 或结构化输出)的先转,视觉模型留给图表和示意图。

坑三,忘记多图累积。十张图的对话,视觉 token 累积进历史,后续每一轮都在为它付费。历史里的旧图及时替换成摘要。

写在最后

多模态的账分图像侧和文本侧,图像侧是几何题,token 数随分辨率平方涨。上传前压图、长图切段、表格先转文本、历史旧图换摘要,四招下来成本差数倍。把真实图片样本跑一遍实测,再定预算。

实测口径以各家 API 返回的 usage 为准,估自己的账要用自己的图片样本。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进