MathCoder-VL: Bridging Vision and Code for Enhanced Multimodal Mathematical Reasoning

TL;DR

MathCoder-VL以代码对齐视觉与数学,在MathVista几何子集达73.6%。

cs.CV 🔴 高级 2025-05-16 25 次浏览
Ke Wang Junting Pan Linda Wei Aojun Zhou Weikang Shi Zimu Lu Han Xiao Yunqiao Yang Houxing Ren Mingjie Zhan Hongsheng Li
多模态数学推理 视觉-代码对齐 FigCodifier 合成数据 几何推理

核心发现

方法论

论文提出两阶段框架:先用ImgCode-8.6M进行图像到代码的中训练,再用MM-MathInstruct-3M进行数学指令微调。核心模型FigCodifier基于InternVL2-8B,将数学图像转换为TikZ或Python;代码执行后得到ImageC,从而形成严格配对的图像—代码样本。随后以temperature=0.7生成新图,并由Qwen2.5-72B-Instruct生成题目,由Qwen2.5-Math-72B-Instruct与Qwen2.5-72B-Instruct交叉验证解答。

关键结果

  • MathCoder-VL-8B在MATH-Vision、MathVerse和MathVista GPS上分别达到26.1%、46.5%和73.6%,较InternVL2-8B提升6.1、10.6和11.6个百分点;在GAOKAO-MM Math上达51.2%,超过同规模开源模型。
  • 在MathVista几何问题子集上,模型较GPT-4o和Claude 3.5 Sonnet分别高8.9和9.2个百分点;在MATH-Vision平面几何中,角度、面积、长度准确率为48.6%、32.2%和32.1%。
  • 数据引擎最终保留4.3M TikZ与4.3M Python图像—代码对。代码成功率由初始TikZ的46.5%提升至81.2%,Python达到84.5%;合成题目经双模型答案一致性筛选后通过率为51%。

研究意义

该研究针对多模态数学推理中的关键瓶颈:视觉细节无法被自然语言描述完整表达,且图像与文本常存在语义或数值错配。代码不仅是描述媒介,更是可执行的图形生成程序,因此提供了可验证、信息完备的跨模态监督。结果表明,专门的数学视觉对齐能够显著提升几何、函数和多步题表现,为开源LMM构建大规模高质量训练数据提供了可复用路线。

技术贡献

技术上,论文将模型在环的数据生产机制用于图像到代码学习:模型生成代码,执行器验证可渲染性,再将新图反哺训练。该闭环突破了DaTikZ仅119K样本和人工设计图形类型有限的限制,并通过TikZ到Python转换扩展代码分布。训练时冻结LLM主干、更新视觉编码器与MLP投影器,以保持语言能力并强化数学视觉特征;第二阶段再联合微调整个模型。

新颖性

核心新意不是单纯扩大题目或解答文本,而是自动生成新的数学图形及其对应问题。相较MAVIS依赖人工代码、仅覆盖三类图形,FigCodifier可从真实K12、教材和论文图像中抽取结构并随机化生成,从而同时提升图像多样性、代码可执行性和跨模态对应精度。

局限性

  • 代码能成功渲染并不保证几何语义完全正确;模型可能遗漏标注、比例或隐含关系,且合成解答仅保留两种Qwen模型答案一致的51%样本。
  • 训练和数据构建成本较高,需执行大量TikZ/Python代码,并使用32或64张NVIDIA A800 80GB GPU;数据来源和过滤规则也可能造成分布偏差。
  • 论文主要报告准确率,尚未系统评估证明过程可信度、视觉幻觉、鲁棒性及更复杂非欧几何场景。

未来方向

后续可引入形式化几何验证器、符号计算器和可执行证明检查,减少“可渲染但不正确”的代码。还应扩展到3D、动态图、手写图和真实噪声图像,研究更强的自动去重、难例挖掘与多语言训练,并报告推理成本、校准度和分步证明质量。

AI 总览摘要

多模态大模型在自然图像问答上进展迅速,却常在看似简单的几何题上失败。原因并非只在语言推理能力不足,而在于模型难以准确读取点、线、角度、长度和空间关系。传统图像描述数据偏向自然场景,往往遗漏数学图中的关键细节,也无法保证文字与图形严格一致。

MathCoder-VL把“代码”作为视觉与语言之间的桥梁。研究团队训练FigCodifier,将数学图像转换成可执行的TikZ或Python程序;程序渲染出的ImageC与代码天然一致,由此构建8.6M规模的ImgCode-8.6M。随后模型以temperature=0.7生成新的数学图形,结合Qwen2.5-72B-Instruct生成问题,并用两个Qwen模型交叉验证答案,形成3M规模的MM-MathInstruct-3M。MathCoder-VL先进行视觉—代码中训练,再进行数学指令微调。

实验显示,MathCoder-VL-8B在MATH-Vision、MathVerse、MathVista GPS和GAOKAO-MM Math上分别达到26.1%、46.5%、73.6%和51.2%,较InternVL2-8B提升6.1、10.6、11.6和18.7个百分点;在MathVista几何子集上还超过GPT-4o与Claude 3.5 Sonnet。研究的意义在于,它把数学图形从“难以完整描述的图片”转化为“可执行、可验证、可扩展的程序”,但仍需解决语义正确性、成本和复杂图形鲁棒性问题。

深度分析

研究背景

LLM已能处理高难度数学推理,但LMM仍受视觉理解限制。代表性模型包括InternVL2、Qwen2-VL、Math-LLaVA、MAVIS和Multimath;MathV360K等工作主要扩展题目与解答,MAVIS虽使用代码生成图形,却依赖人工设计且类型有限。数学图像中的精确标注、比例和关系因此仍是短板。

核心问题

目标是让模型从数学图像中可靠提取结构,并将其与语言推理空间精确对齐。自然语言caption可能漏掉点位、数值或拓扑关系,人工构图难以扩展;同时,生成新题时图像多样性远低于文本多样性,导致训练分布狭窄。

核心创新

  • �� 用可执行代码替代不完备caption,建立图像与程序的精确监督。
  • �� 通过FigCodifier和模型在环迭代,把3M原始图像扩展为ImgCode-8.6M。
  • �� 将TikZ转换为Python,获得4.3M+4.3M两类代码样本。
  • �� 用temperature=0.7生成新图,再结合Qwen模型构建MM-MathInstruct-3M,实现图形、问题和解答同步扩展。

方法详解

  • �� 种子训练:用DaTikZ的119K图像—TikZ对训练初始图像到代码模型。
  • �� 数据收集:整合K12数据中的1.57M图像、教材202K图像、arXiv图像及MathV360K、Multi-Math等资源。
  • �� 代码生成:FigCodifier输出TikZ;GPT-4o mini将TikZ转为Python。
  • �� 可执行验证:运行代码并仅保留成功渲染的ImageC-Code对。
  • �� 清洗:去重删除4.4%,关键词过滤删除3.7%,白图过滤约0.5%,并限制代码长度。
  • �� 训练:第一阶段更新视觉编码器和MLP投影器、冻结LLM;第二阶段在3M多模态数学样本上联合微调。

实验设计

实验使用InternVL-Chat-2B-V1-5和InternVL2-8B作为基座,各训练一轮。中训练batch size为1024、学习率2e-5;指令微调batch size为512、学习率4e-5。采用DeepSpeed ZeRO-1和FlashAttention,2B模型使用32张、8B模型使用64张A800 80GB GPU。评测涵盖MATH-Vision、MathVerse、MathVista GPS、GAOKAO-MM及We-Math。

结果分析

MathCoder-VL-8B在四项主要指标上达到26.1%、46.5%、73.6%和51.2%,显著超过InternVL2-8B。它还以较小参数量超过InternVL2-76B:MATH-Vision高2.5个百分点,MathVerse高3.7个百分点,MathVista GPS高5.8个百分点,GAOKAO-MM高10个百分点。MATH-Vision平面几何平均准确率达37.6%,明显高于GPT-4o的25.7%。

应用场景

可用于中小学数学辅导、几何题自动讲解、教材与题库生成、图形化考试评测和科学教育辅助。实际部署需配置视觉语言模型、TikZ/Python渲染环境及安全沙箱;教育场景还需人工审核合成题目与证明步骤。

局限与展望

方法依赖代码执行成功作为主要质量门槛,但“能画出来”不等于图形关系正确。Qwen双模型一致性筛选会降低数据规模,并可能保留共同错误。大规模渲染、模型生成和GPU训练成本较高,且来源数据覆盖K12和英文、中文任务,可能存在领域偏差。未来应结合形式化验证、3D图形、噪声图和过程级评价。

通俗解读 非专业人士也能看懂

把模型想成一位看数学图的学生。普通图片说明像同学口头描述:“这里有个三角形,那里有条线。”这种描述很容易漏掉长度、角度或点的名字。MathCoder-VL采用另一种办法:让学生先把图画成一份详细的“施工图纸”,图纸里写清每个点放在哪里、每条线连哪里、圆有多大。只要照着图纸重新画出来,就能检查说明是否完整。

FigCodifier就是负责读图和写图纸的助手。研究者收集大量教材、考试和论文中的数学图,再让助手写TikZ或Python代码;代码成功画出的新图会与代码一起保存。这样,模型学习的不只是“这张图像像什么”,而是“图中的结构如何被准确生成”。

之后,系统把图纸稍微改造,生成新的图形,再请语言模型出题,并让两个模型独立解题。只有答案一致的题目才进入训练集。最终,MathCoder-VL先练习看图与读图纸,再练习完整解题,因此在几何题上明显强于普通视觉模型。它仍可能画出看似正确、实际关系错误的图,所以未来还需要像老师批改证明一样的自动检查器。

简单解释 像给14岁少年讲一样

想象你在玩一个需要看地图解谜的游戏。地图上有三角形、圆、箭头和数字,题目问你“这条线多长”。如果游戏只告诉你一句“地图上有个三角形”,你当然会抓狂,因为关键数字和位置都没了。

MathCoder-VL的聪明办法是给地图配一份“绘图程序”。程序像游戏里的建造指令:先放点A,再画线AB,最后写上30度。电脑照着程序重画图片,因此图片和说明不会互相打架。FigCodifier就是把已有数学图读成这种程序的工具。

研究者还让它把旧图改出许多新图,再让Qwen模型根据新图出题、写解答;两个模型答案相同,题目才留下。这样模型既见过大量真实题,也见过很多没完全重复的新图。训练后,8B版本在MathVista几何测试中得到73.6%,比原来的InternVL2-8B高11.6个百分点。

不过它不是魔法。程序可能成功画图,却把点的位置或数学关系弄错;训练也需要很多显卡。就像优秀玩家仍会看错地图,未来还需要一个能自动检查几何证明的裁判。

术语表

FigCodifier(图形编码器)

将数学图像转换为可执行TikZ或Python代码的图像到代码模型。它使图形细节能够被程序化表达和验证。

论文用它生成ImgCode-8.6M,并合成新的数学图形。

ImgCode-8.6M(图像代码数据集)

包含约860万图像—代码配对的大规模数据集,代码执行后可渲染对应图像。数据包含约4.3M TikZ对和4.3M Python对。

用于MathCoder-VL的视觉—代码中训练。

MM-MathInstruct-3M

约300万条多模态数学指令微调数据,其中约100万条包含新合成图形。每条样本结合图像、问题和解答。

用于第二阶段的数学推理微调。

模型在环

让模型参与数据生成、验证和迭代训练的闭环流程。错误代码可通过执行失败或质量过滤被排除。

论文以此逐轮扩展图像—代码数据。

跨模态对齐

使视觉内容与语言或代码表示表达相同信息。高质量对齐能帮助模型把图中的位置、数值和关系用于推理。

第一阶段训练的主要目标。

MathVista GPS

MathVista中的Geometry Problem Solving子集,主要测试基于视觉图形的几何推理。该指标上MathCoder-VL-8B达到73.6%。

论文最突出的主要评测结果之一。

开放问题 这项研究留下的未解疑问

  • 1 如何自动证明生成代码中的几何关系、比例和标注全部正确?当前渲染成功只能说明程序可执行,不能保证数学语义有效。
  • 2 模型在低清、手绘、遮挡、3D或动态图形上的泛化能力仍不清楚,需要更系统的鲁棒性和跨域测试。
  • 3 双模型答案一致不等于答案正确,未来需要符号计算、定理证明器或可验证执行环境。

应用场景

近期应用

智能几何辅导

教育平台可将题图输入MathCoder-VL,自动识别点线角关系并生成分步讲解。部署时需要图像输入、模型推理和人工抽检,适合辅助而非完全替代教师。

题库与教材生成

出版社和题库机构可用FigCodifier改写已有图形,结合Qwen模型生成新问题和解答,快速扩充几何、函数和统计题。必须加入版权审核、难度控制与答案验证。

远期愿景

可验证的数学多模态智能体

未来系统可同时读图、写代码、调用几何定理证明器并解释结论,形成从视觉观察到形式化证明的闭环。主要障碍是复杂图形验证、计算成本和教育可靠性。

原文摘要

Natural language image-caption datasets, widely used for training Large Multimodal Models, mainly focus on natural scenarios and overlook the intricate details of mathematical figures that are critical for problem-solving, hindering the advancement of current LMMs in multimodal mathematical reasoning. To this end, we propose leveraging code as supervision for cross-modal alignment, since code inherently encodes all information needed to generate corresponding figures, establishing a precise connection between the two modalities. Specifically, we co-develop our image-to-code model and dataset with model-in-the-loop approach, resulting in an image-to-code model, FigCodifier and ImgCode-8.6M dataset, the largest image-code dataset to date. Furthermore, we utilize FigCodifier to synthesize novel mathematical figures and then construct MM-MathInstruct-3M, a high-quality multimodal math instruction fine-tuning dataset. Finally, we present MathCoder-VL, trained with ImgCode-8.6M for cross-modal alignment and subsequently fine-tuned on MM-MathInstruct-3M for multimodal math problem solving. Our model achieves a new open-source SOTA across all six metrics. Notably, it surpasses GPT-4o and Claude 3.5 Sonnet in the geometry problem-solving subset of MathVista, achieving improvements of 8.9% and 9.2%. The dataset and models will be released at https://github.com/mathllm/MathCoder.

cs.CV cs.AI cs.CL