多模态模型怎么「看懂」图片,它到底能看准什么

2小时前发布

多模态模型怎么「看懂」图片,它到底能看准什么

第一次用多模态模型的人,常有两个极端反应。一种是惊到:随手拍一张乱糟糟的办公桌,它能说出桌上有显示器、水杯、几叠文件、一盆绿植。另一种是失望:让它数一下照片里有几个人,它数错了;让它读一张 {MOD}上的金额,它读串行了。

两种反应都是真的。它不是「会看图」,是「能对图片做某种特定处理」。搞清楚这个处理在哪些地方可靠、哪些地方会失灵,用起来就顺手了。

图片在它眼里不是图

人看图是一眼整体,先看到场景,再关注细节。模型不是。它拿到图片后先做切割,把图分成很多个方格,每个方格转成一串数字,再把这些数字当作文本一样处理。

所以它理解的其实是「一块一块的视觉特征」,加上这些块之间的位置关系。这个过程丢了很多信息:原始分辨率被压缩过,细小的笔画可能模糊;方格切开的边界,正好切在关键处,就会读错。

有个直观的比喻:让它看图,接近让它读一份分辨率不高的「由文字描述组成的图纸」。图纸上说「左上角有一块深 {MOD}区域,形状接近矩形」,它据此推断那是显示器。推断得挺准,但细节靠猜。

一只手举着手机拍摄桌上的纸质票据,背景是浅 {MOD}桌面

它擅长的几类任务

整体描述。给它一张商品图,让它写卖点文案、生成图片说明、判断适合什么场景。这类任务不要求精确,它表现很好,因为它擅长的正是抓住主要特征然后组织语言。

类别判断。这张图是室内还是室外、是工业设备还是家用电器、风格偏现代还是偏传统。这类粗粒度判断它做得很稳,因为训练数据里这类样本极多。

文字识别,前提是清晰。清晰的截图、印刷体文档、规范的表单,它能读得相当准,还能顺手把内容整理成结构化格式。这是它最实用的能力之一,日常处理大量截图信息效率很高。

格式转换。给它一张表格截图,让它转成文字表格;给它一张流程图,让它写成步骤说明。只要图片清晰,这类任务它做得好,因为它做的是「读懂结构再用文字重写」。

它做不好的几类

精确计数。让它数图里有多少人、多少个零件、多少根钢筋,超过五个就容易错。原因是它没有逐个数数的机制,它是根据「画面密度」估的。要精确数量,别指望它。

密集小字。表格里的小号数字、合同里的脚注、说明书上的参数表,这些它经常看错。图片压缩后,小字的笔画糊成一团,它只能靠上下文猜。金额、型号、日期这类信息,出了错代价很大。

空间关系。让它说「左边那个和右边那个哪个大」,它常常答反。它对左右、上下、前后这些关系的判断不稳定,尤其是画面里有多个相似物体的时候。

细节差异。两张几乎一样的图,让它找不同,它会漏掉大部分。它倾向描述「这两张图整体上差不多」,而不是逐点比对。

手部、文字排版、复杂图表。手指数量、文字是否居中、折线图的拐点,这些精细判断它做得差。让它看图说趋势可以,让它读出具体数值不行。

俯拍装满金属零件的塑料料盒,零件整齐分格摆放

为什么会错在这些地方

三层原因,都好理解。

第一层是分辨率。图片进来要先降采样,一张四千万像素的照片,会被压到一千多像素再处理。压缩过程中,小字和细节就没了。你以为它看到了原图,其实它看到的是一张缩略图。

第二层是切块。图被切成方格后,跨格的内容会被割裂。一行文字正好横跨两个格子,每格里只有半截,读起来就串。这也是为什么密集文字区域错得特别多。

第三层是训练目标。它被训练来做「图文匹配」和「视觉问答」,任务里大多数问题问的是「这是什么」而不是「数一数有几个」。训练时很少见到需要精确计数的样本,它自然学不会。

怎么用才能拿到好结果

几个具体做法,按有效性排序。

给清晰图,别给缩略图

要读文字,就传原图或者截图,不要传微信压缩过的转发图。一张被压缩三次的图,字都糊了,什么模型也读不准。要读表格,可以用截图工具只截表格区域,去掉无关的空白边距,让每个字占的像素更多。

切成小块分别问

一份十页的合同,不要整份拍下来一次问。一页一问,或者一页分上下两半问。信息密度降下来,准确率立刻上去。这一步多花几分钟,省的是后面核对的时间。

让它描述,别让它下判断

问「这张图里有几个人」,容易得到错的数字。问「请逐行描述图里每个人所在的位置和姿态」,它会一个一个说,你从描述里自己数。前者是让它做不擅长的事,后者是用它的长处。

同理,不要问「这个方案合不合规」,要问「图里有哪些文字,逐条列出来」。判断留给自己。

关键数字一律复核

金额、日期、型号、规格、编号,这五类信息从图片里读出来之后,全部人工核一遍。这不是不信任模型,是这类错误的代价太高。审核一张报销单的金额错了一位数,后面全是麻烦。

它和 OCR 不是一回事

有人会问:我为什么不直接用文字识别工具,要绕一层模型?两者分工不同。

文字识别工具解决的是「把图上的字原样抄下来」。它准、快、便宜,但只给字,不理解含义。给一张费用报销单,它把二十个字段全抄出来,哪个是金额、哪个是日期、哪些该进哪一栏,还得你自己处理。

多模态模型解决的是「看懂这张图在说什么」。它能判断这是一张差旅报销单,能识别出金额栏在右侧中部,能把字段按你要的格式整理成一条记录,还能顺手判断这张单子缺了什么。

所以正确的搭配是:数量大、只需要文字的场合用识别工具;需要理解、需要整理、需要判断的场合用模型。两者串起来用效果更好——先识别出准确文字,再交给模型整理。这样既保了准确率,又拿到了理解能力。

反过来,直接让模型去读密集小字,准确率不如专门的识别工具。这个分工搞清楚,能省不少冤枉钱。

一个真实的使用差别

有个做装修的团队,量房之后要整理几十张现场照片,写进施工说明。一开始的做法是整张照片丢给模型,让它描述。输出的文字很流畅,但经常把「飘窗」写成「阳台」,把「承重墙」和「隔墙」搞混。

改进的办法很土:让他们在拍照时就分区域拍,一面墙一张,近距离拍清楚;然后在提问时带上上下文,比如「这是主卧东墙,毛坯状态,请描述墙面、窗、插座位置」。

改完之后的输出质量提升很大。原因不复杂:图片信息密度降低了,每张图只有一面墙,模型不用在复杂画面里挑重点;上下文补上了它看不出来的信息,比如哪个房间、哪面墙,这些它从照片里推不出来。

这个案例说明一件事:多模态的效果,很大一部分不由模型决定,由你给的素材质量决定。清晰的图、明确的提问、必要的背景说明,这三样到位,普通模型也能给出可用结果。

一句实话

多模态模型的定位,更接近一个「看图很快、会写字、但眼神一般的助手」。它能帮你把图片信息转成文字,能替你完成大量重复的看图归类工作,速度比人快很多。但它不是扫描仪,不是测量工具,也不是审图员。

判断标准可以简化成一句:要它「说清楚看到了什么」,放心用;要它「给出一个精确的结论」,加人工复核。这条线划清楚,它能实实在在省下大量时间;划不清楚,它给的每一个错误数字都会变成返工。

装修毛坯房里,一个人举着卷尺贴着墙面测量,墙面是水泥本 {MOD}