27届大模型面试准备(三十一):多模态推理与视觉思维链------从"看见"到"想明白"
前面 A14 讲了视觉语言模型(VLM)的"架构视角"------图文怎么对齐、怎么融合;A25 讲了"多模态 Agent 的应用视角"------视觉模型怎么当 Agent 的眼睛。这一篇补上中间最被低估、也最常考的一块:多模态推理。看见不等于想明白:能描述图里有什么,和能从图里推出一个结论,是两件事。本文按"感知 vs 推理 → 视觉思维链 → 数学/科学推理 → 空间与具身 → grounding 与推理耦合 → 训练方法 → 评测与失败模式 → 端到端案例 → 行业落地 → 与 4MRAG 的关联 → 生产落地深潜 → 与文本推理对照 → 面试速答"展开,结尾给面试速答和高频追问清单。
一、从感知到推理:为什么"看见"不等于"想明白"
VLM 的第一代能力是"感知":检测物体、打标签、写 caption、做 VQA 的单选题。这些任务本质上是从像素到离散答案的浅层映射,不要求多步逻辑。但真实场景大量需求是"推理":看图数有几个三角形、读折线图判断趋势、根据电路图排障、从一张表格推出下季度预测。这类任务要模型在图像表征之上做多步符号运算,错误会沿推理链累积。
把能力分层看更清楚:
多模态能力金字塔
顶层 推理/决策 : 数形结合、读图推断、空间规划、具身决策 ← 本篇重点
│
中层 视觉思维链 : 把"怎么想出来的"显式说出来(Visual CoT)
│
底层 感知/对齐 : 检测、caption、VQA、图文对齐 ← A14 已覆盖
面试常问的区分点:感知考"是什么",推理考"所以呢"。一个模型能准确 caption 一张包含饼图的图,却可能算错饼图里最大扇区占比------这就是感知强、推理弱的典型表现。近年的评测(MathVista、MMMU、ChartQA、DocVQA)正是冲着推理层设计的,要求模型结合视觉与领域知识逐步推导。
二、视觉思维链 Visual CoT:把推理显式化
2.1 为什么需要"看见中间步骤"
文本大模型靠 Chain-of-Thought(CoT)把多步推理显式写出,显著提升复杂题正确率。多模态场景同理:直接要模型"看图给答案",它往往在隐空间一次性憋答案,容易跳步出错。视觉思维链的做法是让模型在出最终答案前,先输出"推理轨迹"------可以是文字步骤,也可以是"在图上画框/画箭头"的中间视觉标记。
两类典型形态:
| 形态 | 做法 | 代表 |
|---|---|---|
| 文本式 Visual CoT | 模型先写"第一步看 X,第二步算 Y..."再给答案 | 通用 VLM + CoT 提示 |
| 视觉标记式 | 模型输出特殊 token,在图上定位/圈注关键点再推理 | GoT、视觉草稿本(visual sketchpad) |
2.2 视觉草稿本:让模型"画出来再想"
纯文本 CoT 有个短板:模型很难在脑子里精确处理空间关系(比如数不规则图形的个数)。"视觉草稿本"思路让模型能生成中间图(圈出物体、画辅助线、标注坐标),把不精确的空间运算外化到一张图上,再基于这张图继续推理。这相当于给模型一个"Scratchpad 画板",把空间推理从"心算"变成"笔算"。
# 视觉思维链推理的最小骨架(伪代码,示意调用范式)
def visual_cot_solve(vlm, image, question):
# 第一轮:让模型定位/圈注关键区域,输出视觉标记
marks = vlm.generate(image, "请圈出与问题相关的区域并说明关注点",
output_visual_marks=True)
annotated = draw_marks(image, marks) # 把圈注画回图上
# 第二轮:带着标注图做逐步推理
steps = vlm.generate(annotated,
"请一步一步推理,最后用 '答案:' 给出结论")
return parse_answer(steps)
要点:视觉标记不是装饰,而是把"注意力该放哪"显式化,既提升可解释性,也常提升准确率------因为迫使模型先定位再推理,避免"凭整体印象瞎蒙"。
三、多模态数学与科学推理
3.1 为什么数学/图表是推理试金石
数学题(MathVista)和图表题(ChartQA)把"读图 + 计算 + 常识"绑在一起:模型要先从图中抽取结构化信息(坐标轴、柱高、扇区比例),再做算术或代数,最后还可能要用到领域知识(如"斜率代表增长率")。任何一环掉链子都答错,所以这类题极能区分模型真实推理力。
3.2 图表理解的两种失败
常见错误模式:一是"看错刻度"------把柱状图高度按相对位置误读;二是"算错关系"------抽对了数但加减乘除或比例搞错;三是"张冠李戴"------把图例和系列对错。工程上缓解:在 prompt 里要求模型"先列出从图读出的数值,再计算",把感知与计算解耦成两步,错在哪一步一目了然,也方便后处理校验。
# 图表题的解耦推理:先抽数,后计算
def chart_qa(vlm, chart_img, q):
facts = vlm.generate(chart_img,
"只从图中提取回答问题所需的数值与单位,逐条列出,不要计算")
nums = parse_facts(facts) # 结构化抽取
calc = vlm.generate(f"已知 {nums},问题:{q},请逐步计算")
return calc
四、空间与具身推理
4.1 空间推理难在哪
"图里A在B左边第几个""把杯子移到盘子右侧"这类任务,要求模型内部有一致的空间坐标表征。文本模型没有真实空间体验,VLM 虽然看得到图,但要把像素里的相对位置转成可操作的"左/右/上/下/第几",需要模型学到稳定的空间绑定。研究(如 BLINK、SpatialVLM)显示,很多 VLM 在精细空间关系上仍弱,尤其涉及计数、深度排序、视角变换时。
4.2 具身与规划
具身推理(VLA,vision-language-action)更进一步:模型看图 + 指令,直接输出"下一步动作"(如机械臂移动)。这要求推理从"得出一个结论"变成"规划一串动作",且每步动作会改变观测。训练上常把"观察→思考→动作"序列用 imitation learning 或 RL 学出来。面试若问"多模态推理和具身什么关系",答:具身是多模态推理的动作化延伸,推理结果要落地成可执行动作并闭环到新观测。
五、Grounding 与推理的耦合
5.1 先定位再推理,还是交替进行
grounding 指"把语言里的指代表达对应到图上具体区域"(如"把红色的车"框出来)。推理常依赖 grounding:要回答"左边那辆车的颜色",先得 grounding 出"左边那辆车"在哪。两种范式:
- 串行:先全图 grounding 出所有实体框,再基于框做推理;
- 交替(reAct 式):推理中需要某区域就临时去 grounding,边想边看。
交替更灵活、更省算力(不用对全图细粒度检测),但要求模型学会"何时该去看"。这对 Agent 场景尤其关键------B24 的 GUI Agent、B25 的多模态 Agent 本质都是"推理驱动的动态 grounding"。
串行 grounding: [全图检测] -> [框集合] -> [基于框推理]
交替 grounding: [想] -> 需要X -> [看X区域] -> [继续想] -> 需要Y -> [看Y] ...
六、训练方法:怎么让模型"会推理"
6.1 数据是关键:推理轨迹比答案更值钱
和纯感知不同,推理能力高度依赖带"过程"的数据。SFT 阶段用"图文 + 逐步推理 + 答案"的三元组,比只用"图文 + 答案"训出的模型推理强很多。难点在于过程标注贵------所以常用"强模型先生成推理链,再蒸馏给小 VLM"(知识蒸馏),或用程序化合成(自动出题 + 渲染图 + 标准解)。
6.2 强化学习对齐推理
A22 讲过的 GRPO/RLHF 在多学科推理里同样适用:用可验证奖励(答案对不对、代码跑通没)做 RLVR,让模型在多模态推理上自我改进。例如数学图表题"答案数值可自动校验",非常适合做 RLVR 信号;而开放题则用 LLM-as-Judge 或人工偏好。注意:多模态 RL 的奖励设计要比文本更难,因为"过程对不对"不像最终数字那么好自动判定。
# 多模态 RLVR 的最小范式(示意)
# 奖励 = 最终答案是否数值相等(可自动校验)
def reward(image, q, pred, gold):
if numeric_equal(extract(pred), gold):
return 1.0
# 过程奖励:关键中间步骤命中(需标注)
return partial_credit(pred, gold_steps)
# 用 GRPO 在 (image, q, gold) 上优化策略,详见 A22
七、评测与失败模式
7.1 常用基准
| 基准 | 考什么 | 痛点 |
|---|---|---|
| MathVista | 图文数学推理 | 空间+计算耦合 |
| MMMU | 多学科图表/公式 | 领域知识深 |
| ChartQA | 图表问答 | 刻度误读 |
| DocVQA | 文档版式理解 | 小字/表格结构 |
| BLINK | 细粒度感知与空间 | 像素级精度 |
7.2 三类高频失败
- 感知幻觉:图里没有的东西硬说有(A26 幻觉在多模态下更突出,因为视觉信号更易被模型"脑补")。
- 计算跳步:抽数对但算错,或 CoT 中途逻辑断裂。
- 空间错位:左右、上下、第几关系搞反。
面试追问常是"你的多模态模型答错了一道图表题,你怎么定位是感知问题还是推理问题"------答:用解耦探针,先固定让模型只抽数(看数值对不对),再固定给正确数值让它算(看计算对不对),两段分别测就能定位。
八、一个端到端案例:视觉数学题的完整推理
光说概念不够,走一道具体题看清"感知喂给推理"的链路。题目(MathVista 风格):一张柱状图,横轴是月份 1-6,柱高分别为 12、18、15、22、20、25(单位:万元),问"下半年若保持 6 月增速,全年总和约多少"。模型的推理轨迹应分四步:第一步感知抽取,从图里读出六个数和坐标轴含义(这一步若把 22 看成 20,后面全错);第二步确认"6 月增速"指 (25-20)/20=25%;第三步外推下半年六个月用等比或线性增长各算一遍,给出区间;第四步求和并说明假设。把这四步显式写出,任何一步错都能定位------是抽数错(感知)、还是增长率理解错(语义)、还是外推算错(计算)。这也解释了为什么工程上要把"抽数"和"计算"解耦:先让模型只列数值,人/规则校验数值对了,再让它算,错误率显著下降。视觉草稿本在这类题上尤其有用------让模型把柱顶高度标出来,把"心算高度"变成"图上量",空间误差被外化,后续推理建立在更稳的感知之上。
九、行业落地:哪些场景真的依赖多模态推理
不是所有多模态需求都要"推理",但下列场景推理是刚需,纯感知/ caption 模型顶不住:
- 自动驾驶与机器人:不只检测行人,还要推"他会不会横穿"(轨迹预测)、"前面施工该绕还是等",这是时序加空间的联合推理;
- 医疗影像:读片不只是标结节,还要结合病史、报告规范推出"疑似哪类、建议何种随访",是视觉加知识的推理;
- 工业质检:定位缺陷后还要归因"是模具磨损还是来料问题",指导产线调参,推理驱动决策;
- 文档智能:从扫描合同或报表里抽条款、算金额、判合规,是版式理解加领域规则的推理;
- 零售与货架:识别缺货后还要推"该补多少、调货优先级",连接库存系统做动作。
共同点:输出不是"描述",而是"带依据的结论或动作"。这些场景也正是我们的 4MRAG 能发力的地方------单模型推理证据不足时,检索增强补上外部知识(如行业规范、历史案例),把"猜"变成"查了再推",既提准确率也提可解释性。
十、和我们自己的 4MRAG 研究怎么连
你的论文方向是"面向复杂推理的多模态检索增强生成(4MRAG)",正好踩在多模态推理的痛点上:当图里信息不足、或需要外部知识才能推理时,纯靠模型"想"会错。4MRAG 的思路是------推理过程中动态召回相关多模态证据(图、文、表),把"闭门造车"变成"边查边想",这就把多模态推理从"单模型内推理"升级成"推理 + 检索增强"。MCTS-MRAG 进一步用树搜索在多条推理路径里择优,本质是对"多模态推理过程"做结构化搜索而非一次性生成。面试被问"多模态推理的瓶颈和你的解法",这就是一个极具差异化的故事:不是堆更大模型,而是让推理过程能按需取证据、能搜索多条路。
十一、生产落地深潜:把多模态推理真正用稳
前面讲了原理与范式,落到工程里多模态推理还有一整套"算得清、查得明、防得住"的账要算,这部分往往才是面试里区分"读过论文"和"真部署过"的分水岭。
11.1 成本结构:视觉编码器是隐藏的大头
很多人以为多模态推理的成本就是"多模态大模型本身贵",其实还有一个容易忽视的点:视觉编码器(ViT 类)和投影层的推理成本。在"一图多问"的场景里,同一张图会被反复编码。正确做法是把图像编码结果缓存起来,后续每个子问题只复用一次编码,而不是每次都重新过一遍视觉塔。这就把成本从"图片数 × 问题数"降到了"图片数",对带图长对话、多轮视觉 QA 是数量级的优化。会算这笔账,才算真懂多模态服务的成本构成,而不是只会说"模型贵"。
11.2 把推理步骤结构化,便于可校验
视觉思维链的好处不只是"想得更准",还在于"想得可见"。生产里建议让模型把推理过程以结构化字段输出(例如 observation / hypothesis / computation / answer 四段),而不是一大段自然语言。这样既能让用户看到"模型到底看见了什么、怎么算的",也便于做自动校验:数学题可以只抽取最后的 answer 做数值比对,图表题可以抽取 computation 里的算式做符号校验。可解释性和可校验性在这里是同一件事的两面------输出结构化了,监控和回归测试才好做。
11.3 防幻觉的闭环:定位 + 置信 + 回查
多模态幻觉比纯文本更隐蔽,因为"图里有没有某物"人眼一秒能判,但系统自己没有眼睛。一个有效的闭环是:在回答里强制标注"依据来自图的哪个区域"(grounding box),再对这个区域做二次裁剪验证(把裁剪图单独送回模型确认)。当模型给出的依据区域与结论不匹配时,触发降级或回查检索。这比单纯依赖模型"自我纠错"可靠得多------因为纠错本身也可能幻觉。把"结论"和"可验证依据"绑定,是多模态推理上线的安全底线,也呼应了 A26 讲过的幻觉缓解思路。
11.4 选型:什么时候上多模态推理模型,什么时候用"文本 + 工具"
实战决策:信息能稳定结构化(规整表格、扫描单据、固定版式)时,先抽取再交给文本 LLM 推理更准更省,因为绕开了感知噪声;信息本质视觉(空间关系、图表趋势、图像内容理解)时,必须原生 VLM,抽取会丢信息。另外前文提到的"视觉编码器缓存""结构化输出"都是上线前就该定的工程规格,而不是事后补救。能把"成本-质量-可校验"三笔账同时算清,是多模态推理工程师的核心能力。
十二、和文本推理的能力对照:别把 VLM 当小号 LLM
常被问"多模态推理和文本推理有什么区别,能不能复用文本那套"。答案是:推理的"元能力"能复用,但"感知噪声"和"空间表征"是 VLM 独有,不能把它当小号 LLM 糊弄过去。
可复用的部分:分解(把难题拆成子问题逐步解)、自一致性(多次采样投票取优)、反思(发现错了回头改)、工具调用(算数交给计算器)------这些在文本 LLM 上被验证过的范式,VLM 基本照用。比如 MathVista 上"多采样自我一致性"同样显著提分,说明"推理的控制流"是跨模态通用的,迁移成本很低。
不能复用的部分有二。一是感知噪声会直接灌进推理。文本模型输入是干净的离散 token,VLM 输入是带噪的视觉表征,抽数错一步、推理全歪。所以多模态推理必须配"感知校验"环节(先抽数再算),而文本推理天然不需要------这是两者工程落地最大的差异。二是空间与像素级对齐。文本里"第三个"是明确的序号,图里"左边第三个"要靠模型自己建立空间坐标系,这是文本没有的能力缺口,也是 BLINK 这类基准专攻的点,很多 VLM 在精细空间关系上仍弱。
最后补一句训练视角的对照:文本推理的 RLVR(A22)奖励好设计,因为答案常可数值校验;多模态推理的"过程对不对"更难自动判定,所以多模态 RL 更依赖带过程标注的 SFT 数据和人工偏好。这也解释了为什么多模态推理的数据比文本推理更贵------你不仅要标答案,还要标"模型在图上该看哪、该想哪几步"。能把这条"感知-推理耦合导致的额外成本"讲明白,是区分"用过 VLM"和"懂多模态推理"的关键。
十三、面试速答 + 高频追问清单
面试速答(一句话版):
-
多模态推理 = 在感知之上做多步逻辑;"看见"是感知,"推出结论"才是推理。
-
视觉思维链把推理过程显式化,文本式 CoT 或视觉草稿本(画出来再想)都有效。
-
图表/数学题是推理试金石,常见失败是刻度误读、计算跳步、空间错位。
-
grounding 与推理常耦合:串行(先全图检测再推理)或交替(边想边看)。
-
训练靠带过程的数据 + RLVR;评测要解耦"感知错还是推理错";落地要算清成本与可校验。
高频追问清单:
-
感知和推理的本质区别?为什么 VLM 能写 caption 却算错饼图?
-
视觉思维链和文本 CoT 有何不同?视觉草稿本解决什么短板?
-
图表题为什么难?你如何定位模型是"看错数"还是"算错"?
-
空间推理的常见失败模式?如何缓解左右/上下/第几的错位?
-
grounding 串行和交替两种范式各适合什么场景?
-
多模态推理的训练数据怎么来?为什么"过程"比"答案"值钱?
-
RLVR 在多模态推理里奖励怎么设计?哪些可自动校验、哪些不能?
-
多模态幻觉和纯文本幻觉有何不同?怎么闭环防?
-
具身(VLA)和"静态多模态推理"的根本区别是什么?
-
你的 4MRAG 怎么缓解多模态推理瓶颈?为什么检索增强能提升推理而非只是补知识?