最近,全球 AI 和机器学习顶会 ICLR 2025 公布了论文录取结果:由 IDEA、清华大学、北京大学、香港科技大学(广州)联合团队提出的 ChartMoE 成功入选 Oral (口头报告) 论文。据了解,本届大会共收到 11672 篇论文,被选中做 Oral Presentation(口头报告)的比例约为 1.8%
研究动机与主要贡献:
ChartMoE 是一个以 InternLM-XComposer2 模型为训练起点、引入 MoE Connector 结构的多模态大语言模型,具有先进的图表理解、图表重绘、图表编辑、重要部分高亮、转换图表类型等能力。ChartMoE 为图表(Chart)这种独特于自然图像的输入,设计了多阶段的图文对齐方式,每一个阶段产物都是 MoE Connector 中的一个专家,这样的训练方式和模型设计不仅能获得更全面的视觉表征、显著提高 MLLM 的图表理解能力,还可以在不加入通用数据的情景下,减少模型对通用知识的遗忘。
然而,Table 这种结构化文本格式,其中仅包含了每个数据点的数值,以及 xy 轴的含义等信息,几乎不保留视觉元素信息,如:颜色、图表类型、图形元素的相对关系等。所以,ChartMoE 希望采用更多样、更全面的对齐方式,将 Chart 转译成三种结构化文本格式:Table、JSON、Python Code。
我们以开源数据集(ChartQA、PlotQA、ChartY)中的表格数据作为起始点,为每个图表类型人为定义了 JSON 键,通过 random 生成、GPT 生成等方式为每个键填上对应的值,从而构建出 JSON 数据。此后可以将 JSON 中的键值对填入到每个图表类型预定义好的代码模板中得到 Python 代码来生成图表,从而构成 (Chart, Table, JSON, Code) 四元组,通过这种方式,采集了约 900k 数据,称为 ChartMoE-Align。
获取到数据后,ChartMoE 采用 chart-to-table、chart-to-json、chart-to-code 三种方式进行图文对齐,每个任务分别训练一个独立的 MLP Connector,拼上初始的通用 MLLM 中的 MLP Connector,再加上一个随机初始化的 learnable router,就可以构成一个亟待吃下 SFT 数据的 MoE Connector,即:Diversely Aligned MoE。
对比 Diversely Aligned MoE 与 Random 初始化、Co-Upcycle 初始化(即把通用 Connector 复制 N 份)的 Training Loss,我们发现,Diversely Aligned MoE 能够有更低的初始 loss(因为已经更好地学到了对齐到后续 LLM 的 chart 表征),以及整体更平滑的训练曲线。
ChartMoE 训练分为三个阶段:
profits = [5, 7, 9, 1, 11, -3]
print (max (profits) - min (profits))
按每个 Visual Patch Token 选择的专家序号进行可视化,观察 Visual Patch 的 Top-1 的专家选择分布:
我们分析了完全让模型自由学习,不加入 MoE balance loss 下的专家选择分布,和上文所述符合,模型倾向于选择通用专家和最富含信息的 Code 专家 Random 初始化、Co-Upcycle 初始化、加入 balance loss 的 Diversely-Aligned 初始化,我们均有进行专家选择分布的分析,以及严格控制变量下的 ChartQA 性能比较:
尽管前三者都会获得更均衡的专家分布,但性能是不如完全不加 balance loss 自由学习 Divesely-Aligned MoE 的,可能是因为:
我们额外分析了最终的 ChartMoE checkpoint,强行固定选择某个专家的性能:
可以看到,和专家选择分布基本保持一致,模型自己最知道哪个专家能获得好性能了。
这里想先 show 一下通用领域,因为 chart 领域的 sota 在进行了细粒度的多样化对齐后,相对来说更加可以预见。在不使用通用领域数据的情况下,在通用领域中遗忘更少,可能是做下游领域 MLLM 更关注的事情。这会让我们有更好的预期:比如加入通用数据后,通用能力不掉!
我认为通用领域遗忘更少有两个原因:
我们选择了 MME 和 MMBench 两个比较有代表性的通用领域的 benchmark,比较了 baseline(InternLM-XComposer2)、用 chart 数据 directly SFT、以及 ChartMoE 的性能,可以看到,Directly SFT 模型在通用领域掉点严重,ChartMoE 几乎不会掉性能,且在有些细分领域上还有增点
对于 Chart 领域,我们选择了 ChartQA、ChartBench(主要是无数值标注的 Chart)、ChartFC&ChartCheck(Fact Checking 任务,回答支持或不支持),在这些 Benchmark 上,ChartMoE 都能达到非常好的性能,尤其是相对初始的 baseline 模型(InternLM-XComposer2)提升非常显著
在 ChartMoE 这个工作中,我们探索了通用 MLLM 使用 MoE 这种 sparse 的结构后在下游任务上的表现:
ChartMoE 是一个抛砖引玉的工作,我们相信后续也会有更多工作去探索下游任务中 Sparse 结构的表现!
文章来自于“机器之心”,作者“机器之心”。