多模态大模型跨模态算术能力评测:从原理到工程实践
1. 项目概述:当大模型“看见”并“听见”数学
“多模态大语言模型的算术能力”这个标题,乍一看有点反直觉。我们通常认为大语言模型(LLM)擅长的是文本生成、逻辑推理和代码编写,而算术计算,尤其是精确的数值运算,似乎是传统计算器或专用数学软件的领地。但最近,随着多模态大语言模型(MLLM)的爆发式发展,一个有趣且极具挑战性的问题浮出水面:当一个模型不仅能读懂“3乘以5等于15”这段文字,还能“看见”一张画着3组、每组5个苹果的图片,甚至“听见”一段语音说“三乘五”,它能否统一地理解并计算出正确的结果?这不仅仅是做对一道数学题那么简单,它触及了MLLM是否真正实现了跨模态语义对齐与抽象概念理解的核心。
我最近花了大量时间深入测试和研究了几个主流的多模态大模型,比如Qwen-VL、GPT-4V,以及一些开源的视觉语言模型,在文本、图像描述、图表甚至简单手绘草图上进行乘法运算。结果发现,情况远比想象中复杂。模型在纯文本数字乘法上可能表现尚可,但一旦问题以图像形式呈现,比如一个商品价签上写着“¥15/件,购买4件”,或者一段音频指令“请计算录音中提到的两个数字的乘积”,模型的性能就会出现显著的分化。这背后涉及到的,是视觉特征提取、文本编码、模态融合、符号推理与数值计算等多个环节的协同。
这项研究的意义,远不止于让AI做个口算题。它实际上是一个绝佳的“探针”,用以评估MLLM在现实复杂场景下的应用潜力。想象一下,在智能教育中,AI需要批改孩子手写的数学作业;在工业质检中,AI需要从仪表盘图像中读取数值并进行合规性计算;在无障碍辅助场景,AI需要为视障用户描述并计算账单。如果模型连基础的跨模态算术都处理不好,这些高级应用就无从谈起。因此,拆解MLLM的算术能力,尤其是其薄弱环节——乘法计算,成为了理解其能力边界、优化其架构的关键切入点。
2. 核心挑战与能力边界拆解
为什么乘法计算,特别是跨模态的乘法,对MLLM来说如此困难?这需要我们从模型的工作原理和不同模态的特性来层层剖析。
2.1 模态差异与信息损失
首先,文本、图像和音频是三种信息密度和表现形式截然不同的模态。
- 文本模态 :信息最精确、结构化。数字“35”在文本中是一个明确的符号序列。对于LLM来说,经过海量代码和数学文本训练的它,识别并计算“35*47”在符号层面是相对直接的任务,本质上是模式匹配和序列生成。
- 图像模态 :信息是稠密且连续的像素矩阵。模型需要先从像素中检测出数字字符(这本身就是一个OCR任务),然后识别这些字符的排列顺序(例如,“35”可能被识别成两个独立的数字“3”和“5”,还是整体“三十五”),最后再理解这些数字代表的数值意义。光照、角度、字体、背景干扰都会引入噪声。例如,一张模糊的价签照片,数字“5”可能被误识别为“6”或“8”。
- 音频模态 :信息是随时间变化的波形。模型需要先进行语音识别(ASR),将声学特征转化为文本“三十五乘以四十七”,然后再进入文本理解与计算流程。口音、语速、背景噪音都是挑战。更复杂的是,中文里“三十五”是一个整体词汇,模型需要将其正确分词并映射到数字“35”。
核心难点在于 :模型在图像和音频模态中进行的“识别”步骤,是存在错误率的。这个前置步骤的错误会直接传递到后续的计算环节,导致“输入即错误”,无论后面的计算模块多强大都无济于事。而纯文本输入则 bypass 了这个最易出错的识别环节。
2.2 符号接地与数值理解
即使模型成功从图像或音频中提取出了文本“35”和“47”,另一个更深层的问题出现了:模型真的“理解”这些符号背后的数值意义吗?还是仅仅在模仿文本中的计算模式?
这就是“符号接地”问题。对于LLM,数字在训练语料中是作为token存在的。它通过学习“35 47”后面经常跟着“1645”,建立了强大的共现概率。但这可能只是一种统计关联,而非真正的算术运算。当我们把问题换成“一个篮子里有35个苹果,又放进47个苹果,总共有多少个苹果?”,模型需要先将自然语言描述映射到乘法运算“35 47”,这考验的是语义理解。如果再进一步,给模型看一张画着35个苹果和47个苹果的图片(甚至苹果的排列方式不规则),要求它计算总数,难度就呈指数级上升。模型必须从视觉场景中抽象出“计数”这一概念,再将计数结果进行算术运算。
乘法比加法更考验这种抽象能力,因为它涉及倍数关系和更高阶的抽象。例如,从一张“3行5列”的苹果阵列图片中理解“3*5=15”,需要模型具备行列感知和空间分组的能力。
2.3 计算路径与幻觉风险
MLLM通常遵循“编码-融合-解码”的流程。以视觉问答为例:
- 视觉编码器 (如ViT)将图像切成块,编码成一系列视觉特征向量。
- 文本编码器 (LLM的嵌入层)处理问题文本,如“图片中两个数字的乘积是多少?”。
- 多模态融合器 (如交叉注意力机制)让文本特征去“查询”相关的视觉特征。
- 大语言模型解码器 基于融合后的上下文,生成答案。
问题就出在第4步。LLM解码器本质上是一个自回归的文本生成器。当它需要输出一个数字答案时,它是在预测最可能的下一个token序列。如果视觉特征提取有误(把35看成36),或者融合过程中关键信息被稀释,LLM可能会基于其强大的语言先验,“自信”地生成一个错误的但看起来合理的数字(例如,35*47它可能“觉得”1655比1645更顺口),这就是“幻觉”在数学计算上的体现——它编造了一个看似正确实则错误的答案。
注意 :许多评测只关注最终答案的对错,但忽略了中间过程。一个理想的MLLM应该具备“思维链”能力,即在生成最终答案前,能输出其推理步骤:“我看到的第一个数字是35,第二个数字是47,计算35 47,35 40=1400,35*7=245,1400+245=1645”。这不仅能提高结果的可信度,也便于我们定位错误发生在识别阶段还是计算阶段。
3. 实战评测:主流MLLM的乘法计算表现
为了获得一手认知,我设计了一套简单的评测集,在本地和云端测试了多个模型。评测集包含三类问题:
- 文本乘法 :纯文本输入,如“请计算12345 * 6789”。
- 图像乘法 :
- Type A: 清晰印刷体数字图片(如截图、扫描件)。
- Type B: 自然场景中包含数字的图片(如路牌、价签、仪表盘)。
- Type C: 表达乘法关系的图示(如矩阵排列的点阵图、倍数关系条形图)。
- 音频乘法 :合成语音,清晰读出乘法算式,如“请计算三十五乘以四十七”。
以下是部分测试结果的定性分析:
| 模型类型 | 文本乘法 | 图像乘法 (Type A) | 图像乘法 (Type B/C) | 音频乘法 | 主要问题观察 |
|---|---|---|---|---|---|
| 纯文本LLM (如ChatGPT-3.5) | 优秀(大数可能出错) | 不适用 | 不适用 | 不适用 | 依赖内部计算逻辑或调用工具,纯符号运算尚可,但无视觉能力。 |
| 通用MLLM (如GPT-4V) | 优秀 | 良好 | 一般 | 需配合ASR | 对清晰图像识别准,但复杂场景或抽象图示理解力下降,偶尔产生幻觉答案。 |
| 开源视觉LLM (如Qwen2-VL-7B) | 良好 | 一般 | 较差 | 不适用 | 数字识别(OCR)能力是主要瓶颈,常出现识别错误;计算逻辑不稳定。 |
| 专用数学MLLM (如未广泛发布) | 优秀 | 优秀(设计目标) | 良好(设计目标) | 未知 | 通常通过增强的视觉编码器(高分辨率、数字敏感训练)和数学思维链训练来针对性优化。 |
实测细节与心得 :
- GPT-4V类模型 :在Type A图像上表现稳健。但对于一张手绘的、圆圈排列成3行5列的图片,提问“总共有多少个圆圈?”,它有时会直接回答“15个”,有时却会描述“我看到3行,每行大约5个,所以大概是15个”。这个“大概”暴露了它在从像素到计数的确定性推理上仍有不足。对于Type B,如一个稍微反光的价签,错误率明显上升。
- Qwen2-VL-7B本地部署 :这是我重点测试的开源模型。在8卡服务器上部署后,其图像识别能力是明显的短板。例如,一张清晰的“256 x 128”图片,它可能识别成“256 x 120”或“255 x 128”。 一个关键发现是 :模型的算术能力严重依赖于其底层LLM的数学能力。即使视觉编码器识别正确了“256”和“128”,如果其基座LLM(7B参数)本身的多位数乘法能力弱,最终答案也会出错。这体现了“木桶效应”——MLLM的跨模态算术能力受限于其最弱的一环(可能是视觉识别,也可能是核心计算逻辑)。
- 计算精度与格式 :几乎所有模型在处理极大数字(如10位数乘法)时都会失败或胡言乱语。此外,答案的格式也很重要。有些模型会输出“答案是1645”,有些输出“1645”,有些则会附带多余的解释。在需要程序化调用的场景下,答案格式的不一致会带来额外处理成本。
实操心得 :不要盲目相信MLLM的“直觉”。对于任何涉及精确数字的计算任务,最佳实践是采用“MLLM作为解析器 + 外部计算工具作为执行器”的 pipeline。即,让MLLM负责从多模态输入中提取出结构化的算式(如“35*47”),然后将这个算式字符串传递给一个可靠的计算库(如Python的
eval(),或更安全的numexpr)或符号计算引擎来获取结果。这样将感知任务与确定性的计算任务解耦,能极大提升整体系统的准确性和可靠性。
4. 提升MLLM跨模态算术能力的可行路径
基于以上分析和测试,如果我们想要增强一个MLLM的跨模态乘法(乃至通用算术)能力,可以从以下几个层面进行思考和实践,这些思路同样适用于其他需要精确性的跨模态理解任务。
4.1 数据层面:构建高质量的跨模态算术数据集
模型的能力上限很大程度上由训练数据决定。通用的图文对数据(如COCO)中虽然包含数字,但并非为算术任务设计。
- 合成数据 :可以大规模合成包含数字的图片,并生成对应的问题和答案。例如,自动生成不同字体、大小、颜色、背景、遮挡程度的数字图片,对应“数字识别”、“简单运算”等任务。关键是要引入足够的噪声和多样性,以模拟真实场景。
- 真实数据标注 :收集真实世界的含数字图像(价签、仪表、文档等),进行精细标注。不仅标注数字本身,还要标注数字之间的空间关系(如上下标、分数、乘法符号)和上下文语义(如“单价”、“总量”)。
- 思维链数据 :为每个样本不仅提供最终答案,还提供详细的推理步骤。例如:“步骤1:定位图片中的两个价格数字,分别是‘¥15’和‘¥20’。步骤2:提取纯数字15和20。步骤3:理解问题要求计算总价,即执行乘法15 20。步骤4:计算15 20=300。步骤5:输出答案:300元。” 这样的数据能有效训练模型进行可解释的推理。
4.2 模型架构与训练策略创新
- 增强视觉编码器 :针对数字和公式识别,可以微调视觉编码器,或者在视觉编码器后接入一个专用的OCR子网络。一些研究尝试将高分辨率处理引入视觉编码器,以更好地捕捉细小数字的细节。
- 模态融合改进 :在融合视觉与文本特征时,设计更精细的注意力机制。例如,可以让模型显式地学习将文本中的“第一个数字”、“乘以”等token与图像中的特定区域进行对齐,实现更精准的“指代”理解。
- 外部工具调用 :如前所述,这是目前最实用、最有效的路径。在模型层面,需要训练模型学会在何时、以何种格式调用计算工具。这可以通过在训练数据中插入工具调用示范,或采用类似Gorilla项目的工具使用微调来实现。模型学习到的技能是:“当我需要精确计算时,我将问题转化为算式,然后调用
calculator(query)。” - 分阶段训练 :先让模型在高质量的文本数学数据和合成图像数据上学习基础的算术和数字识别能力,再在更复杂、噪声更多的真实数据上进行鲁棒性微调。
4.3 评测体系构建:更科学的评估方式
“准确率”一个数字不足以说明问题。我们需要更细粒度的评测基准:
- 识别正确率 :模型从图像/音频中提取出的数字字符串,与标准答案的字符串匹配率。
- 计算正确率 :在识别正确的前提下,最终答案的数值正确率。
- 幻觉率 :模型是否在识别或计算过程中,生成了与输入无关或明显荒谬的数字。
- 鲁棒性测试 :对输入图像加入不同程度的模糊、噪声、旋转、遮挡,观察性能变化曲线。
- 泛化性测试 :测试在训练数据分布外的数字样式、语言口音、场景类型上的表现。
5. 实际应用场景与系统设计建议
理解了MLLM在跨模态算术上的能力和局限,我们就能更好地设计实用系统。
场景一:智能文档分析与财务审核 用户上传一张发票照片,系统需要提取金额、税率并计算税额和总额。
- 系统设计 :采用多阶段Pipeline。第一阶段,使用专用的OCR模型(如PaddleOCR、Tesseract)或针对财务文档微调的视觉模型,高精度地提取所有数字和文本字段,并理解其语义标签(如“单价”、“数量”)。第二阶段,将提取出的结构化数据(JSON格式)输入给规则引擎或LLM进行逻辑验证和计算。这样,MLLM可能只用于处理OCR无法确定的模糊字段或理解复杂备注,而不负责核心计算。
场景二:交互式教育辅导 孩子用手机拍下手写的数学题“12 × 13 = ?”,APP需要批改。
- 系统设计 :首先,使用手写数字识别模型识别算式。然后,将识别出的算式文本“12 * 13”送入系统。这里可以有两种路径:1)直接由后台计算引擎得出结果156;2)将算式和原始图片一起输入MLLM,要求其输出计算步骤和答案,用于生成讲解。后者对MLLM的要求更高,需要其具备可靠的思维链能力。
场景三:无障碍辅助工具 视障用户拍摄一个商品包装,询问“这一箱有多少包?总重量多少?”(包装上写着“每包50g,共24包”)。
- 系统设计 :这是一个典型的跨模态理解任务。MLLM需要看到图片,理解“每包50g”和“共24包”的文本及其空间关系,然后推理出用户可能想问的是总重量,并计算50*24=1200g。在这种情况下,端到端的MLLM方案可能比分离的OCR+计算Pipeline更简洁自然,但对模型的综合能力要求极高。一个折中方案是,MLLM负责理解用户意图和图片语义,生成结构化查询(
calculate_total_weight(per_unit_weight=50, quantity=24)),再由确定性的函数执行计算并返回结果。
通用建议 :
- 明确需求精度 :如果业务要求100%准确(如金融计算),务必引入外部工具链和人工复核环节,MLLM仅作为预处理或辅助。
- 设计降级策略 :当MLLM置信度低或输出格式异常时,系统应能回退到更基础的方法(如转人工、提示用户重新输入)。
- 持续迭代与评估 :针对你的特定场景(如某种特定风格的仪表盘),收集数据对预训练MLLM进行领域微调,能显著提升效果。
6. 未来展望与个人思考
多模态大语言模型的算术能力研究,像一把钥匙,打开了我们审视其“智能”本质的一扇门。它清晰地表明,当前以生成和概率为核心的MLLM,在需要确定性、精确性和深度符号推理的任务上,依然存在结构性的短板。它们更像是博闻强识、善于联通的“通才”,而非严谨精确的“专家”。
我个人认为,未来的发展方向不会是让MLLM变成一个超级计算器,而是让它更好地成为“人类与工具之间的智能中介”。它的核心价值在于 跨模态的理解、意图的解析和任务的规划 。对于乘法计算这类任务,理想的终态应该是:MLLM能完美地理解用户通过文字、图片、语音提出的复杂数学需求(例如,“帮我比较一下这两张超市小票上哪个折扣力度大”),然后将需求分解,精准地调用一系列专用工具(OCR、计算器、数据库查询)来协作完成,最后再用人类友好的方式组织答案。在这个过程中,MLLM的“算术能力”体现为它能否正确地将现实世界的问题,映射到形式化的数学表达式和工具调用序列上。
因此,当前的研究重点,除了继续提升模型的基础感知和推理能力外,更应聚焦于如何让MLLM稳定、可靠地学会使用外部工具。这包括工具检索、调用格式生成、结果解析和错误处理等一系列子问题。当我们构建起这样一个MLLM与确定性工具共生的生态系统时,它所能解决的“乘法计算”,乃至更复杂的科学、工程、商业问题,其边界才会被真正拓展。而对于开发者来说,理解这种“混合智能”的范式,并据此设计系统架构,比单纯追求模型在某个评测集上的分数提升,更具有现实的工程意义。
更多推荐
所有评论(0)