简介:多模态大模型常陷入“顾此失彼”的视觉困境:学会聚焦细节,却丢掉全局计数与扫描能力。本文拆解主流“在线自蒸馏+放大裁剪”方案的得与失,引出以空间坐标“路标”为核心的合成数据新思路,并给出数据构造、训练与评估的完整实践参考,帮助开发者系统性提升模型看图能力。
教一个孩子数照片里的猫,有两种方式:
两者给出的结论相同,但传递的信息完全不同。方式一只有结论本身;方式二在结论之外,还传递了“结论中的每一部分与画面中哪个位置对应”的空间映射。对人类如此,对模型更是如此:训练数据里的每一个“五”,都需要与画面中五个分散的视觉实例建立一一对应,任何一处对应失败,模型输出的数字就会错。
这正是多模态大模型(MLLM,能同时理解图像与文字的大语言模型)训练中最容易被忽视的一点:数据的“信息形态”往往比数据数量更关键。一支研究团队近期的工作把这个问题摆到了台面上——当训练信号里带上“指着哪里”的路标时,模型学到的不只是数数这一件事,而是看图的通用能力,并且会向图表理解、文档阅读、复杂真实场景检索等任务迁移,整体收益超出预期。
要理解这个问题的根源,需要先看MLLM的基本结构:
这条流水线存在三个天然瓶颈:
所以,模型缺的不是“更多的图”,而是带空间锚定的监督信号。
过去一年,语言模型圈流行一种叫“在线自蒸馏”的技术:让同一个模型的“开卷版”当老师——老师额外看一份学生看不到的“小抄”,在学生生成答案的过程中实时纠正;训练结束后,学生独立作答也能接近老师水平,小抄则被抛弃,全程不需要引入外部更强的模型。
把这套思路搬到看图任务上,主流做法是:老师看一张放大、裁剪过的图像局部,学生看完整原图。相当于近视的学生做阅读理解,老师悄悄给自己配了放大镜,再口述“重点在哪一段”。
这个方案有效吗?有效,但有明显代价。该研究团队的对比实验显示:
一边学会了聚焦细节,一边忘掉了全局扫描。拆开来看,原因至少有三层:
结论是:“给老师更好的眼睛”这条路,天花板不高,副作用不小。
研究团队的转向很有启发性:既然“小抄”放在输入侧会变成学生甩不掉的拐杖,那能不能把提示改造成输出侧的行为?
其核心做法可以概括为:为图像中每个关键目标生成空间坐标(或包围框),然后把这些“路标”直接写进回答文本。例如教数数时,老师的回答不是干巴巴的“共有3只猫”,而是:
第1只在(142, 305)附近,第2只在(688, 210)附近,第3只在(455, 760)附近。所以共有3只猫。
学生蒸馏到的,就不只是一个数字,而是“先定位、再作答”的完整推理链。推理时不需要任何外部提示——模型自己产出路标,再顺着路标组织答案。这个设计有三个精妙之处:
更重要的发现是迁移性:训练时只教“指认”这一件事,计数、细粒度查找、文档与图表理解等能力出现了跨任务的正向迁移。这符合一个朴素原则——当你教会模型“证据在哪里”,它同时也学会了“证据是什么”。
这套思路最大的价值在于:数据可以大规模合成,不依赖人工逐图标注。下面是一条可落地的管线。
{"image": "scene_00417.jpg","question": "这张照片里有几只猫?","answer": "第1只在(142, 305)附近,第2只在(688, 210)附近,第3只在(455, 760)附近。共有3只猫。","points": [[142, 305], [688, 210], [455, 760]]}
坐标建议做归一化,例如统一映射到[0, 1000]的整数区间,与原图分辨率解耦,避免模型记住绝对像素尺度。
def build_sample(image, detector):objs = detector(image)objs = [o for o in objs if o.score > 0.6] # 过滤低置信度,抑制标签噪声cats = sort_spatial([o for o in objs if o.label == "cat"]) # 统一从左到右排序cot = " ".join(f"第{i}只在({x}, {y})附近" # 逐实例生成路标for i, (x, y) in enumerate(map(center_of, cats), 1))return {"image": image.path,"question": "这张照片里有几只猫?","answer": f"{cot}。共有{len(cats)}只猫。"}
这项研究最值得吸取的方法论教训在评估环节:只盯单一基准,会系统性误判一个方案的价值。实践建议如下:
完整链路涉及海量图像与标注的存取、批式清洗任务和GPU训练。工程上,通常把图像与标注放在对象存储、用容器任务调度清洗脚本、训练跑在GPU集群上——这些能力在百度智能云等云平台上都有对应的服务类目,按通用方式接入即可。更关键的是自己做好三件事:数据配方版本化、过滤阈值与超参记录、与训练脚本一并归档,保证任何一个实验结果可复现、可回溯。
回到开头的问题:教AI数猫,是直接给答案,还是指着图讲?这项工作给出的完整回答是:
对开发者的直接启示是:在规划视觉训练数据时,把“空间锚定”当作一等公民来设计,往往比盲目堆量更能改变模型的行为质量。同样的思路还可以自然推广到视频时序定位、文档版面理解、界面元素定位等场景——凡是答案有“落点”的任务,路标都值得一试。