3 minute read

[Chart] CHARTEDIT: How Far Are MLLMs From Automating Chart Analysis? Evaluating MLLMs’ Capability via Chart Editing

  • paper: https://arxiv.org/pdf/2505.11935
  • github: https://github.com/xxlllz/ChartEdit
  • ACL 2025 accepted (인용수: 0회, 2025-05-20 기준)
  • downstream task: Chart-to-code generation (Chart editing) task

1. Motivation

  • Rendering 가능한 Chart를 생성하는 일은 labor-intensive하므로, 자동화에 대한 Needs가 있다.

  • 기존에 Chart rendering, chart editing task를 MLLM의 능력을 평가하는 benchmark가 부재하다

    $\to$ 고품질의 Chart editing 능력을 평가하는 benchmark를 만들어보자!

2. Contribution

  • 1,405개의 다양한 editing instruction & 233개의 real-world charts로 구성된 CHARTEDIT benchmark를 제안함
    • source: Arxiv에서 crawling
    • diversity: 다양성 확보를 위해 19개 chart type & 6개 editing instruction을 사전에 정의함
  • 10개의 mainstream MLLM을 두가지 타입의 실험으로 평가하여 결과를 정리함 (code & chart level)
    • MLLM의 능력을 평가하기 위한 evaluation metric을 제안 & 평가를 수행함
      • execution rate: MLLM이 생성한 code가 실행 가능한가?
      • code-level accuracy: 편집의 정확성을 유지하는가?
      • chart-level consistency: 시각화된 결과가 정답과 일관되는가?
    • 3가지 type의 MLLM에 대해 report (Proprietary, general-domain open-source, chart-domain models) $\to$ GPT-4o가 짱!
    • SOTA 모델이 59.96점을 맞고 있음을 밝히며, 해당 task처럼 정밀한 코드 수정이 어려운 task임을 보임

3. Related Works

3.1 Chart-Domain MLLMs

  • ChartLlama: LLaVA기반 Chart dataset으로 finetuned.
  • mPLUG-Owl / mPLUG-Owl2: 고해상도 chart image에서 좋은 성능
  • ChartVLM: LLM의 개입이 필요한지 여부를 판단하는 discriminator를 도입
  • TinyChart: token merging + PoT-based reasoning 전략을 통해 inference 효율성 & 이해력 향상
  • ChartMoE: MoE 구조를 채택

3.2 MLLMs for Code

  • Deepseek-coder : code generation & error fixing 능력의 진전을 보임. (text-only)
  • sign2Code / Web2Code: webpage용 HTML code 생성
  • RoboCodeX: robot behavior synthesis하는 code 생성
  • ChartMimic/ChartVLM: Chart-to-code generation task를 수행했으나, 1가지 타입의 modification만 수행하여 다양성 부족

4. ChartEdit

  • Overall pipeline

4.1 Chart Editing Task Definition

  • M: MLLM 모델
  • X: Chart 이미지 (from Archiv papers)
  • C: 해당 Chart 이미지와 연관된 code
  • I: 편집을 어떻게 수행해야 하는지 정의한 instruction
  • O: 모델이 생성한 code. 해당 코드를 돌리면 chart가 랜더링 되어야 한다.

4.2 Data Construction

  • Crawling Tool: BeautifulSoup 사용

4.2.1 Chart Collection & Filtering

  • 수집된 arciv paper중, “accept”, “under review”, “camera ready”, “submit” keyword가 있는 경우, filtering

  • ArXiv API 활용하여 LaTeX source file 추출

  • Chart와 유관해 보이는 이미지 파일 외 무관한 source file은 제거 (.png, .pdf, .jpg, .svg만 남김)

  • 2 Step으로 고품질 chart 이미지만 남김

    • MLLM을 통해 해당 이미지가 chart인지 평가하도록 함 (zero-shot prompting) $\to$ 저품질(?) chart가 여전히 잔존함.

      • InternVL2.5-78B 사용
    • MLLM-as-a-judge로 품질에 대해 scoring하는 매커니즘 도입

      • Aesthetics

      • Readability

      • Reproducibility

      • Data Presentation Simplicity

        $\to$ 평균 90/100점 이상만 추출. 최종 1,000개의 고품질 chart image만 추출

4.2.2 Code Annotation

  • 고품질 chart image에 대응하는 code가 없으므로, manually python 코드를 작성함

  • 여전히 부족한 chart type의 경우, Kaggle과 Matplotlib gallery에서 추가함.

    • Data leakage를 고려해, 수동으로 해당 코드를 수정함

      $\to$ 233개의 chart + code paired data를 구축

4.2.3 Instruction Generation

  • 2가지 타입의 instruction을 제안

    • LLM-based: 5가지 편집 카테고리를 사전 정의함. Multiple subtype로 구성.

      • style
      • format
      • layout
      • data
      • text

      $\to$ image + code를 입력으로 주면서, 해당 code를 editing할 instruction을 반환.

      $\to$ 다양한 출력과 error 최소화를 위해 최소한 3개의 variation을 생성하도록 명령함.

      $\to$ human expectation과 정렬하기 위해 해당 instruction과 edited image의 결과를 수동으로 모니터링 함.

      $\to$ 1,172개의 <chart, instruction, code> triplet paired dataset 완성

    • human-written

      • LLM-based dataset이 LLM output으로 인한 다양성에 한계가 있어, chart별로 human이 1개씩 editing instruction을 추가함

      $\to$ 1,405개의 <chart, instruction, code> triplet paired dataset 완성

4.3 Dataset Statistics & Analysis

  • Instruction dataset 분석

  • Chart의 분포

  • Instruction text의 Sentence-BERT 기반 embedding 분포

5. Experiments

  • 평가대상

    • Proprietary Models
      • GPT4-o, Claude-3.5-Sonnet
    • OpenSource General-Domain Models
      • InternVL-V2.5-78B, Qwen2-VL-72B, LLaVA, Phi-3.5-Vision
    • Chart-Domain Models
      • ChartLlama, TinyChart, ChartMoE
  • 평가 방법

    • LLM-as-a-Judge를 활용 (GPT-4o)

      • 생성된 코드가 instruction과 정렬이 되었는가? (code-level)

        • Modification Accuracy
        • Code Completeness
      • 의도한 chart를 효과적으로 생성하였는가? (chart-level)

        • Chart generation 능력
  • 정량적 결과

    • Overall

    • w/o code 구체적인 결과

  • 정성적 결과

  • Discussion

    • CoT prompting vs. Plain prompting

      • 성능 향상이 없음 (비슷)

      • Code generation prompt

    • Editing instruction 타입별로 MLLM의 성능이 어떻게 되는가?

      • code-level: chart type (format) 변경에 제일 우수한 성능을 보임

      • chart-level에서 format의 성능이 뛰어나진 않음 $\to$ 빼먹는 정보가 존재

    • Chart의 타입별 MLLM의 성능이 어떻게 되는가?

      • venn diagram에서 proprietary vs. opensource model의 성능 격차가 제일 크게 존재함
      • errorbar, multi chart와 같이 복잡한 chart에서도 그러함
      • code-level task에서 InterVL2.5-7B vs. GPT-4o가 유사한 성능 내는 주요 원인이 instruction following 능력때문임을 발견함
    • Error 유형이 어떻게 되는가?

      • ValueError가 제일 크다. (50% 이상)

Updated: