Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【論文紹介】ChartCoder: Advancing Multimodal Large La...

Avatar for H.S H.S
April 11, 2026

【論文紹介】ChartCoder: Advancing Multimodal Large Language Model for Chart-to-Code Generation

【論文情報】
・論文名:ChartCoder: Advancing Multimodal Large Language Model for Chart-to-Code Generation
・会議名:ACL2025
・論文URL:https://aclanthology.org/2025.acl-long.363/

【貢献内容】
・Chartからコードを生成できるモデル「ChartCoder」の構築
・大規模かつ多様なデータセット「Chart2Code-160k」の構築
・Chart中の数値などを適切に取得できる手法「Snippet-of-Thought(SoT)」の提案

Avatar for H.S

H.S

April 11, 2026

Other Decks in Research

Transcript

  1. 2 研究背景 ◼VLLMを始めとしたマルチモーダルのLLMの性能が向上している ⚫ 画像に含まれる有益な情報や複雑な情報を取得することが課題として存在 ◆今回対象としている「Chart(図)」もその1つ ◼Chart理解の応用先 ⚫ 論文中の実験結果のグラフを自動解釈してメタ分析させる ⚫

    財務レポート内のグラフを自動で読み取ってトレンド分析を実行 ⚫ etc... Prompt 添付Chartの内容を説明して。 Text Image VLLM Output このチャートは、複数のビジョ ン言語モデルの性能をChartQA (ピンクの棒)とChartMimic(青 の棒)という2つのベンチマーク で比較したものです。 左から順にGPT-4o、InternVL2- 76B、InternVL2-8B、Qwen2-VL-7B、 TinyChart(3B)、ChartCoder(7B)が 並んでいます。…
  2. 3 目的 ◼Chart理解の課題点 ⚫ Chartから自然言語(テキスト)を生成させてしまうと情報が欠落する ◆後段の分析タスクで正確な分析ができなくなってしまう … ◼対策 ⚫ Chartからコードを生成させて情報の欠落を削減する

    ◆既存研究では実行不可なコードが生成されてしまう … ◼目的 ⚫ Chartからコードを生成できるモデル「ChartCoder」の構築 ⚫ 大規模かつ多様なデータセット「Chart2Code-160k」の構築 ⚫ Chart中の数値などを適切に取得できる手法「Snippet-of-Thought(SoT)」の提案
  3. 4 Chart2Code-160kの構築 様々なChart形式(棒グラフ, 円グラフ など)の図とコードのペアを生成 重要な情報が欠落しないように コードを改良 Phase 1 Phase

    2 1. 大規模なデータセット 2. 多様なChart構造/形式が含まれている 3. 構文的に正しく実行可能なコードが格納 本データセットの特徴
  4. 5 Phase1: Chartとコードのペア生成 生成されたコードが実行可能かどうか を確認してフィルタリングする Step 3 Step 1で生成したキーワードとデータ、 テンプレートコード等を参考にして

    コードを生成する Step 2 Chartに記載するキーワードやデータを 生成する Step 1 多様なChart形式かつ実行可能なコードを生成する Phase1での目標
  5. 6 Phase2: SoTによるコード改良 ◼手順 1. Chart2Code-160kから50kサンプリング 2. ChartからSoTで重要情報を言語化 3. 2.からコードを生成してデータを更新

    ◼Snippet of Thought (SoT) ⚫ Step 1 ◆Chart形式やレイアウトが何かを生成する ◆例: plt.bar(), plt.subplot() ⚫ Step 2 ◆何のデータやカラーがあるかを生成する ◆例: data=[10, 15], colors = [‘FF0000’, …] ⚫ Step 3 ◆詳細情報を生成する(例: plt.bar関数のパラメータとして何が使われているか) ◼CoT(Chain of Thought)とSoTとの違い ⚫ 重要な情報の欠落防止したコードを生成できているかどうか
  6. 7 ChartCoderの学習プロセス ◼モデル構造 ⚫ LLaVAやQwen-VLなどと同じConnectorベースのVLM ◼学習プロセス ⚫ Stage 1:Chart/Imageからテキストへのアライメント ⚫

    Stage 2:全モデルへの指示チューニング ◼Stage 1 ⚫ Vision-language Connectorのみチューニング ◆Chartをうまく言語表現に埋め込めるようにチューニング ◼Stage 2 ⚫ 構築したデータセット等で全モデルに対してチューニング ◆画像モデルは事前に決められたアスペクト比で画像分割
  7. 8 実験設定 ◼比較対象モデル ⚫ Closed-Model ◆GeminiProVision ◆Claude-3-ops ◆GPT-4V ◆GPT-4o ⚫

    Opened-Model (General-Domain) ◆DeepSeek-VL-7B ◆Qwen2-VL-7B ◆LLaVA-Next-Mistral-7B ◆etc… ⚫ Opened-Model (Chart-Domain) ◆ChartLlama ◆ChartVLM-L ◆etc… ◼ベンチマーク ⚫ ChartMimix ⚫ Plot2Code ⚫ ChartX ◼ChartCoderアーキテクチャ ⚫ Code LLM: DeepSeek Coder 6.7B ⚫ Vision-language Connector: 2層MLP ⚫ Vision Encoder: SigLIP-384
  8. 9 各データセットでの定量評価 • Exec.Rate:エラーなく実行できた割合 • Low-Level:生成されたコードとGT(Ground Truth)のコードが類似しているか • High-Level:生成コードを実行して得られたChart画像を視覚的に評価 •

    Pass Rate: Exec.Rateと同様 • Text-Match:生成されたチャート内のテキストがGTとどれだけ一致しているかを評価 • Rating:生成されたチャート全体の品質評価 • GPT-Score:GPTで生成されたチャートを品質評価 評価指標
  9. 11 Ablation Study ◼Code LLM → General LLMに変更 ⚫ 各評価項目で性能低下

    ⚫ 分析よりCodeLLMの方が構文エラーや型エラーが減少 ◼異なるVision-Encoderモデルを使用 ⚫ High-levelでスコア変動するぐらいでほぼ同スコア ◼SoTの有無 ⚫ SoTなしだと各評価項目で性能低下 ◼Chart2Code-160kによるFine-tuningの有無 ⚫ 最大で40ポイント近く上昇
  10. 13 まとめ・所感 ◼本論文の貢献 ⚫ Chartからコードを生成できるモデル「ChartCoder」の構築 ⚫ 大規模かつ多様なデータセット「Chart2Code-160k」の構築 ⚫ Chart中の数値などを適切に取得できる手法「Snippet-of-Thought(SoT)」の提案 ◼所感

    ⚫ 情報を欠落しないようにコードを生成するという発想は考えたことがなかった ◆自分だったら無理やりテキストでアウトプットしてる … ⚫ GPT-4oで品質評価している研究多いなと改めて実感した ⚫ SoTは新規アプローチと捉えていいのかが半信半疑 … ⚫ 2024~2025年の研究なので、近年(2026年)のVLMモデルだとZero-shotでいけそう …