从语言模型中蒸馏视觉推理能力:数据合成新方向
随着大语言模型(LLM)规模的不断扩大,互联网上的高质量语料资源逐渐匮乏。许多研究开始利用合成文本数据来训练 LLMs,例如微软的 Phi 系列模型、英伟达的 Nemotron-340B 模型等。高质量的合成数据为开源模型带来了显著的性能提升,这一方法也被称为新一代的「模型蒸馏(Distillation)」。同样,在多模态领域,已有部分研究尝试蒸馏更强多模态大模型(Stronger MLLMs)的能力,例如 ShareGPT4V 等工作。
然而,当前的这些工作仍然面临一些限制:
- 现有 MLLMs 能力不足:即使是 GPT-4o 等顶尖模型,在复杂的视觉推理任务中仍容易受到幻觉困扰。
- 图像合成的不可控性:多模态数据的质量不仅取决于文本指令,更取决于图像本身。目前 AIGC 方法往往注重画质和内容表现,却无法精确控制细节,尤其难以生成具有识别和推理挑战的特定图像。
这就引出了一个核心问题:是否存在一种多模态数据合成方式,能够同时构造优质的文本指令与高质量的图像?在尽量减少人工参与的情况下实现高度自动化,同时保持成本可控且具备良好的可扩展性?
为了实现这三个目标,我们探索了从语言模型中蒸馏视觉推理能力的可能性。在图表问答场景中,我们通过代码作为中介(Code-as-Intermediary Translation, CIT)来合成多模态指令微调数据集,包括推理密集的图像和问答对。
1 动机介绍
为何选择 Chart 场景?
在本研究中,我们选择了图表问答(Chart Question-Answering, CQA)场景。主要基于以下两点考虑:
图表生成的可控性:与自然图像不同,图表(例如柱状图、折线图)可以通过代码唯一地映射生成,而根据图表也可以准确还原出代码。这种代码生成的图像具备非常好的文字可控性,不同于传统 AIGC 模型,其生成的图像不够稳定、缺少细节。
全面考察多模态能力:CQA 任务能够系统地考察多模态模型的感知、推理能力。许多模型如 GPT-4o、Claude 3.5 都会在官方博客中公布 CQA 任务上的表现。
在论文中,我们首先分析了最新的开源模型在经典的 ChartQA 任务上的表现。如果去观察这些模型做错的问题,可以发现它的错误类型主要集中在两类:
- 识别错误:模型在最基础的信息识别上就出错,例如颜色、数值提取;
- 推理错误:模型在正确识别后,在推理环节反而出错,例如数值计算、逻辑推断。
通过这些现象的观察,我们发现当模型想要解决一个视觉难题的时候,它对两部分能力:识别和推理,缺一不可。那么我们如何去针对性地提升这两方面能力呢?一个直接的办法就是构造这样的带思维链的指令数据去微调模型。
我们调研了现有的 CQA 相关数据集,并将这些数据的属性分成了三大类:图表、问答、数据本身的属性,并整理了对比表。
可以看出:
- 图表属性:图表类型和主题决定了多样性。数据集不仅要涵盖多种图表类型,还应提供数据表或文字说明等辅助形式,有助于语言模型的输入和理解。此外,图表的复杂度也是一个关键因素——对图像识别提出了更大的挑战。
- 问答属性:我们关注其是否基于模板生成(使用模板会降低多样性)、是否与图表视觉信息相关(如颜色、位置、结构),而非仅限于数值的提取。以及答案是否包含完整的思维链,有助于模型训练。
- 数据集属性:依赖人工标注的高质量数据集因成本高,规模难以扩展,只适合作为小规模的测试集。此外,部分合成数据集只能扩展问答对,无法拓展图像内容,因而无法满足大规模 Scale 的需求。
LLMs 如何看懂图表?
为了实现「低成本、高效、易于扩展」的多模态数据合成方法,我们将目标转向了纯语言模型,因为其相比现有的多模态大模型,能力更稳定且成本更低。在正式开始前,我们先做了一项前置调研,探讨语言模型能否「看懂」图表——尝试仅通过文本输入,让 LLMs 理解图表的结构和内容。
具体来说,我们收集了多种图表形式,包括:
- 图表的图像文件;
- 用于绘图的数据表(CSV 表格);
- 用于绘图的完整 Python 脚本。
我们尝试将这些不同形式(图像、数据表、代码)分别输入给 GPT-4o 模型,让其合成具有挑战性的图表问答。为评估这些问答对的质量,我们招募了若干标注人员,从以下三个维度进行评分:
- 正确性:问题、答案是否正确;
- 推理复杂度:问题是否具有挑战性;
- 视觉参考性:问题是否涉及对颜色、位置、结构等视觉元素的考察。
可以看出,在文本形式的输入中(数据表和代码),模型的理解能力在前两个维度上优于直接图像输入。这可能是由于 LLMs 对文本的理解能力更强,数据表和代码输入能提供准确数值、结构化信息,便于模型精准解析图表内容。此外,数据表在视觉参考性上的得分较低,因为其仅包含数值输入,缺乏视觉细节。
值得注意的是,即便没有图像输入,代码输入仍能获得较高的视觉参考性分数。这表明代码不仅能传达数据,还包含丰富的视觉语义,如图表的类型、结构、颜色和位置等信息。这一发现表明,代码为语言模型的图表理解提供了一种有效途径,足以作为「看懂」图表的中介!
2 关键方法
CIT:代码中介翻译
基于上述发现,我们提出了 Code-as-Intermediary Translation (CIT)。我们借鉴了语言学领域中的「中介翻译」概念,这种方法应用于低资源语言间的翻译时,常利用高资源语言作为中介来提升翻译准确性。类似地,CIT 将代码作为图表与文本指令的中介,使用语言模型合成多样、复杂的图表、识别和推理导向的文本指令。
工作流程如下:
- 种子代码收集:从 Matplotlib 官方示例中收集 33 个种子代码。
- 多样性拓展:利用 Self-Instruct 和 Evol-Instruct 方法拓展种子代码的多样性、复杂性。
- 图像生成:在合成对应的代码后,一方面通过 Python 直接绘制图像。
- 指令构造:另一方面继续使用 LLMs 构造所需指令,生成带有思维链的问答对。
ReachQA 数据集信息
基于 CIT,我们构建了一个多模态指令数据集 ReachQA(Reasoning-intensive Chart Q&A)。
- 训练集:包含 3k 张图表及 20k 问答对(其中 8k 识别 / 12k 推理)。
- 测试集:包含 500 张图像和 2k 问答对(其中 1k 识别 / 1k 推理)。
每张图表附带多个识别和推理导向的问题,同时详细标注了每个问题的思维链答案。具体信息如下:
- 识别导向问题:侧重于提取图表中的具体数值、标签、趋势等直观信息。
- 推理导向问题:侧重于需要结合多个数据点进行计算、比较或逻辑推断的问题。
3 实验结果
主实验分析
我们在三类基准上进行了测试:
- 第一类基准:传统的图表任务,侧重识别能力,包括 ChartQA、ChartBench、ChartX。
- 第二类基准:同时关注图表的识别与推理能力,包括 CharXiv 和我们的 ReachQA 测试集。
- 第三类基准:通用的多模态数学推理任务,包括 MathVista 和 Math-Vision。
我们发现,闭源大模型在各类任务上表现更为均衡,不仅擅长传统识别任务,还在我们设计的推理任务上有出色表现。相比之下,部分开源模型(尤其是经过图表数据增强的模型和最新的开源模型)在能力上存在不平衡现象:它们在识别任务中表现较佳,但在复杂推理和通用数学任务上相对薄弱,可能反映出开源模型对常见基准的过拟合问题。
此外,经过 ReachQA 数据集的训练后,各个模型均有显著提升。如果只加入 8k 识别数据,模型会在识别任务中表现相对更好;而在 12k 推理数据上训练的模型则在推理密集的任务上更具优势。当结合识别和推理数据进行训练后,模型整体表现达到最优。此外,模型获得的这种推理能力还能泛化到除了图表任务之外的通用多模态数学推理任务,这是以前的工作中从未发现的。
推理能力的来源探究
进一步分析实验表明,模型能力的提升来源于丰富的图像和具有思维链的训练数据。
我们对多个开源数据集与 ReachQA 进行了对比分析,发现传统数据集(ChartBench)的局限在于仅提供最终答案,缺乏推理过程,导致模型的推理能力提升有限。而 ChartAst 因为其问题采用模板生成,缺乏多样性和难度,推理深度不足。
相比之下,ChartGemma 和 ReachQA 数据集具备多样化的图片内容和高质量的问答对,且包含完整的推理过程,有效提升了模型在多模态推理任务上的表现。但是 ChartGemma 数据集需要大量人力收集、过滤互联网上的图表资源,难以进一步扩大规模。
识别能力与推理能力的相互制衡
CharXiv 论文表示,识别与推理能力相互依存,而识别能力可能是有效推理的前提。为深入研究这一关系,我们在总数据量固定为 8k 的情况下,对推理数据和识别数据的比例(从 8:0 调整至 0:8)进行了实验。
如图所示,增加识别或推理数据比例能提升对应任务表现。识别任务中,高比例识别数据的模型甚至优于使用 20k 总数据训练的模型;而当推理数据比例增至 100% 时,性能却出现下降,表明推理数据的增加可能收益递减。
这或因推理能力部分依赖于识别能力:模型若无法准确理解图像中的信息,则更高层次的推理也会受限。尽管本研究未能进一步扩展数据量,但我们预计在更大数据集下,识别与推理数据的相互作用会更加显著。
混合通用数据,增强泛化能力
为了推动在实际应用场景中的落地,我们测试了将 ReachQA 与通用多模态训练集混合训练的效果。我们分别测试了 Base 模型、使用 20k ReachQA 数据集训练的模型、混合 20k 通用数据训练的模型。
结果表明,在 ReachQA 数据上训练,会略微影响通用多模态任务的表现,但同时也会显著提升模型的推理能力。并且,仅仅只需混合 20k 通用数据,便能基本恢复模型在通用任务上的表现,且在推理任务上依旧保持较高水准。
可解释性探究:从注意力角度
最后,我们通过一组注意力可视化的 Case Study 来尝试理解多模态推理的机制。通过将模型在预测下一个 Token 时的注意力分布可视化,我们能够观察到模型在推理时的视觉焦点。
例如,在回答「A 城市在 B 属性上的值是多少」这一问题时,经过我们训练的模型会依次关注标签、坐标轴、数据值等信息,最终准确得出答案;而未经微调的模型则注意力分散,难以形成稳定的焦点,最终导致答案错误。
4 总结与展望
本文的主要贡献包括:
- 探索了从语言模型中蒸馏视觉推理能力的可能性;
- 通过代码作为中介,高效构造高质量多模态图表和指令数据;
- 在多个模型和基准上验证了训练效果,并且观察到可泛化的视觉推理能力;
- 在 GitHub 和 Hugging Face 开源相关代码、数据集,可供复现、落地。
未来工作方向:
- 数据规模扩展:当前数据集规模已达数千级,未来计划扩展至十万级,以进一步验证长尾分布下的模型鲁棒性。
- 跨模态泛化:探索将 CIT 方法应用于其他结构化数据场景,如表格数据(Table QA)或科学公式推理。
- 动态交互:研究如何让模型在推理过程中主动请求澄清或细化查询,模拟人类专家的分析流程。
资源链接: