打開網(wǎng)易新聞 查看精彩圖片

最近,全球 AI 和機(jī)器學(xué)習(xí)頂會(huì) ICLR 2025 公布了論文錄取結(jié)果:由 IDEA、清華大學(xué)、北京大學(xué)、香港科技大學(xué)(廣州)聯(lián)合團(tuán)隊(duì)提出的 ChartMoE 成功入選 Oral (口頭報(bào)告) 論文。據(jù)了解,本屆大會(huì)共收到 11672 篇論文,被選中做 Oral Presentation(口頭報(bào)告)的比例約為 1.8%

打開網(wǎng)易新聞 查看精彩圖片

  • 論文鏈接:https://arxiv.org/abs/2409.03277
  • 代碼鏈接:https://github.com/IDEA-FinAI/ChartMoE
  • 模型鏈接:https://huggingface.co/IDEA-FinAI/chartmoe
  • 數(shù)據(jù)鏈接:https://huggingface.co/datasets/Coobiw/ChartMoE-Data

研究動(dòng)機(jī)與主要貢獻(xiàn):

  • 不同于現(xiàn)階段使用 MoE 架構(gòu)的原始動(dòng)機(jī),ChartMoE 的目標(biāo)不是擴(kuò)展模型的容量,而是探究 MoE 這種 Sparse 結(jié)構(gòu)在下游任務(wù)上的應(yīng)用,通過對齊任務(wù)來增強(qiáng)模型對圖表的理解能力,同時(shí)保持在其他通用任務(wù)上的性能。
  • 不同于之前依賴 ramdom 或 co-upcycle 初始化的方法,ChartMoE 利用多樣的對齊任務(wù)進(jìn)行專家初始化。這種方法加大了專家間的異質(zhì)性,使 ChartMoE 可以學(xué)習(xí)到更全面的視覺表征,展現(xiàn)出顯著的解釋性。

打開網(wǎng)易新聞 查看精彩圖片

ChartMoE 是一個(gè)以 InternLM-XComposer2 模型為訓(xùn)練起點(diǎn)、引入 MoE Connector 結(jié)構(gòu)的多模態(tài)大語言模型,具有先進(jìn)的圖表理解、圖表重繪、圖表編輯、重要部分高亮、轉(zhuǎn)換圖表類型等能力。ChartMoE 為圖表(Chart)這種獨(dú)特于自然圖像的輸入,設(shè)計(jì)了多階段的圖文對齊方式,每一個(gè)階段產(chǎn)物都是 MoE Connector 中的一個(gè)專家,這樣的訓(xùn)練方式和模型設(shè)計(jì)不僅能獲得更全面的視覺表征、顯著提高 MLLM 的圖表理解能力,還可以在不加入通用數(shù)據(jù)的情景下,減少模型對通用知識的遺忘。

多階段對齊訓(xùn)練的 MoE

打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片

  • 通用 MLLM,如 LLaVA,他們的 training recipe 通常分為兩個(gè)階段,第一個(gè)階段使用圖文對(image-text pair)訓(xùn)練 MLP Connector,第二階段 SFT 訓(xùn)練 MLP Connector + LLM。
  • 這種范式可以很自然的遷移到 Chart MLLM 中,如:ACL24 的 ChartAst,使用成對的 Chart-Table 進(jìn)行第一階段的圖文對齊。

然而,Table 這種結(jié)構(gòu)化文本格式,其中僅包含了每個(gè)數(shù)據(jù)點(diǎn)的數(shù)值,以及 xy 軸的含義等信息,幾乎不保留視覺元素信息,如:顏色、圖表類型、圖形元素的相對關(guān)系等。所以,ChartMoE 希望采用更多樣、更全面的對齊方式,將 Chart 轉(zhuǎn)譯成三種結(jié)構(gòu)化文本格式:Table、JSON、Python Code。

我們以開源數(shù)據(jù)集(ChartQA、PlotQA、ChartY)中的表格數(shù)據(jù)作為起始點(diǎn),為每個(gè)圖表類型人為定義了 JSON 鍵,通過 random 生成、GPT 生成等方式為每個(gè)鍵填上對應(yīng)的值,從而構(gòu)建出 JSON 數(shù)據(jù)。此后可以將 JSON 中的鍵值對填入到每個(gè)圖表類型預(yù)定義好的代碼模板中得到 Python 代碼來生成圖表,從而構(gòu)成 (Chart, Table, JSON, Code) 四元組,通過這種方式,采集了約 900k 數(shù)據(jù),稱為 ChartMoE-Align。

打開網(wǎng)易新聞 查看精彩圖片

獲取到數(shù)據(jù)后,ChartMoE 采用 chart-to-table、chart-to-json、chart-to-code 三種方式進(jìn)行圖文對齊,每個(gè)任務(wù)分別訓(xùn)練一個(gè)獨(dú)立的 MLP Connector,拼上初始的通用 MLLM 中的 MLP Connector,再加上一個(gè)隨機(jī)初始化的 learnable router,就可以構(gòu)成一個(gè)亟待吃下 SFT 數(shù)據(jù)的 MoE Connector,即:Diversely Aligned MoE

打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片

對比 Diversely Aligned MoE 與 Random 初始化、Co-Upcycle 初始化(即把通用 Connector 復(fù)制 N 份)的 Training Loss,我們發(fā)現(xiàn),Diversely Aligned MoE 能夠有更低的初始 loss(因?yàn)橐呀?jīng)更好地學(xué)到了對齊到后續(xù) LLM 的 chart 表征),以及整體更平滑的訓(xùn)練曲線。

Training Recipes

ChartMoE 訓(xùn)練分為三個(gè)階段:

  • 多階段對齊(數(shù)據(jù):ChartMoE-Align,Table 500k + JSON 200k + Code 100k),僅訓(xùn)練 MLP Connector,最后拼成 MoE Connector。
  • 廣泛學(xué)習(xí)高質(zhì)量知識(使用 MMC-Instruct 數(shù)據(jù)集,包含很多 Chart 相關(guān)的任務(wù),如:Chart Summarization),訓(xùn)練 MoE Connector(尤其是 Learnable Router,亟待學(xué)習(xí))以及 LLM Lora。
  • Chart 領(lǐng)域 SFT(ChartQA + ChartGemma):訓(xùn)練 MoE Connector 以及 LLM Lora;
  • PoT(Program-of-Thought):即輸出 python 代碼來解決問題,可以讓模型將計(jì)算交給代碼,提高解題準(zhǔn)確率,如:一個(gè)利潤柱狀圖,問最高利潤和最低利潤差多少,就會(huì)輸出代碼:
  • profits = [5, 7, 9, 1, 11, -3]
  • print (max (profits) - min (profits))

ChartMoE 表征可視化

按每個(gè) Visual Patch Token 選擇的專家序號進(jìn)行可視化,觀察 Visual Patch 的 Top-1 的專家選擇分布:

打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片

  • 背景 tokens 傾向于選擇通用通用專家,也說明通用專家選擇占比非常高。
  • 數(shù)據(jù)點(diǎn)、圖像元素、圖像元素間的 interaction(如第一行第四列的 graph 圖的 edges)非常傾向于選擇 code 專家(盡管 chart-to-code 數(shù)據(jù)中并沒有包含這種 graph 圖表)。
  • 標(biāo)題、xy 軸標(biāo)注、xy 軸刻度、圖例等文本信息,傾向于選擇 table/JSON 專家。
  • 類似的現(xiàn)象也可以泛化到通用場景,盡管我們整個(gè) training 中完全沒有包含這樣的數(shù)據(jù)。

ChartMoE 專家分布可視化

我們分析了完全讓模型自由學(xué)習(xí),不加入 MoE balance loss 下的專家選擇分布,和上文所述符合,模型傾向于選擇通用專家和最富含信息的 Code 專家 Random 初始化、Co-Upcycle 初始化、加入 balance loss 的 Diversely-Aligned 初始化,我們均有進(jìn)行專家選擇分布的分析,以及嚴(yán)格控制變量下的 ChartQA 性能比較:

打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片

盡管前三者都會(huì)獲得更均衡的專家分布,但性能是不如完全不加 balance loss 自由學(xué)習(xí) Divesely-Aligned MoE 的,可能是因?yàn)椋?/p>

  1. 對于視覺信息,本就是分類不均衡的,信息相對少的背景 tokens 占全部視覺 tokens 的大多數(shù)。
  2. balance loss 本身目的并非在于性能的提升,而是專家選擇更均衡后,配合專家并行 (Expert Parallel) 技術(shù),可以提高訓(xùn)練 / 推理的效率。

我們額外分析了最終的 ChartMoE checkpoint,強(qiáng)行固定選擇某個(gè)專家的性能:

打開網(wǎng)易新聞 查看精彩圖片

可以看到,和專家選擇分布基本保持一致,模型自己最知道哪個(gè)專家能獲得好性能了。

ChartMoE Performance(Chart & 通用)

這里想先 show 一下通用領(lǐng)域,因?yàn)?chart 領(lǐng)域的 sota 在進(jìn)行了細(xì)粒度的多樣化對齊后,相對來說更加可以預(yù)見。在不使用通用領(lǐng)域數(shù)據(jù)的情況下,在通用領(lǐng)域中遺忘更少,可能是做下游領(lǐng)域 MLLM 更關(guān)注的事情。這會(huì)讓我們有更好的預(yù)期:比如加入通用數(shù)據(jù)后,通用能力不掉!

我認(rèn)為通用領(lǐng)域遺忘更少有兩個(gè)原因:

  1. (顯而易見)插入了通用專家,盡管通用專家也更新了。
  2. (可能更本質(zhì))MoE Connector 的結(jié)構(gòu),由于 learnable router 的存在,通用專家的更新相比普通的 MLP Connector 是更少的(比如有些 token 可能確實(shí)沒選到通用專家,它就不會(huì)對通用專家的更新產(chǎn)生貢獻(xiàn)),某種程度上,可以認(rèn)為 MoE Connector 這種 sparse 結(jié)構(gòu)本身就帶有一定的正則作用。

通用領(lǐng)域

我們選擇了 MME 和 MMBench 兩個(gè)比較有代表性的通用領(lǐng)域的 benchmark,比較了 baseline(InternLM-XComposer2)、用 chart 數(shù)據(jù) directly SFT、以及 ChartMoE 的性能,可以看到,Directly SFT 模型在通用領(lǐng)域掉點(diǎn)嚴(yán)重,ChartMoE 幾乎不會(huì)掉性能,且在有些細(xì)分領(lǐng)域上還有增點(diǎn)

打開網(wǎng)易新聞 查看精彩圖片

Chart 領(lǐng)域

對于 Chart 領(lǐng)域,我們選擇了 ChartQA、ChartBench(主要是無數(shù)值標(biāo)注的 Chart)、ChartFC&ChartCheck(Fact Checking 任務(wù),回答支持或不支持),在這些 Benchmark 上,ChartMoE 都能達(dá)到非常好的性能,尤其是相對初始的 baseline 模型(InternLM-XComposer2)提升非常顯著

打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片
打開網(wǎng)易新聞 查看精彩圖片

Conclusion

在 ChartMoE 這個(gè)工作中,我們探索了通用 MLLM 使用 MoE 這種 sparse 的結(jié)構(gòu)后在下游任務(wù)上的表現(xiàn):

  1. 從 Representation 角度:專家異質(zhì)化的 MoE 可以獲得更加多樣、更加全面的視覺表征,從而在下游任務(wù)上達(dá)到更好的性能。
  2. 從 Knowledge 角度:MoE 這種 Sparse 結(jié)構(gòu),可以等價(jià)于加入了適量的正則項(xiàng),既能顯著提高下游任務(wù)性能,也能緩解下游領(lǐng)域模型在通用任務(wù)上遺忘。

ChartMoE 是一個(gè)拋磚引玉的工作,我們相信后續(xù)也會(huì)有更多工作去探索下游任務(wù)中 Sparse 結(jié)構(gòu)的表現(xiàn)!