Scaling Text-Rich Image Understanding via Code-Guided Synthetic Multimodal Data Generation

生成日:

Scaling Text-Rich Image Understanding via Code-Guided Synthetic Multimodal Data Generation

論文の面白いところ

この論文の中心は、画像そのものを直接考えるのではなく、その画像を生成するコードを中間表現として使う点にある。文書、表、グラフ、Web 画面のような画像は、もともと HTML、LaTeX、Python、Mermaid などのコードから作られることが多い。著者らはその性質を利用し、テキストだけを扱う大規模言語モデルにコードを書かせ、実行して画像を作り、さらに同じコードから質問応答データを作る。画像を見て注釈を付けるのではなく、画像の設計図を読んで注釈を作るので、答えの根拠を比較的保ちやすい。対象もグラフだけに限らず、文書、数式問題、表、図、楽譜、回路図、化学構造式まで広い。人手で作るには面倒な領域を、生成モデルのコード作成能力でまとめて扱う構成になっている。実験では、合成データを足すだけでなく、合成データのみの場合や、評価データを使わない場合も調べている。このため、単なるデータ増強の報告よりも、どの種類の合成データが役に立つのかを読み取りやすい。

問題設定

対象は text-rich image understanding、すなわち文字情報を多く含む画像を読んで質問に答える課題である。典型例は、棒グラフの値を比較する、請求書の合計額を読む、栄養成分表示から摂取量を判断する、画面上のボタン位置を指す、といった処理である。通常の写真理解と異なり、この種の課題では文字認識、レイアウト理解、数値計算、空間的位置の把握が同時に必要になる。既存の視覚言語モデルは自然画像ではよい結果を出しても、文書や図表に対しては訓練データの不足に影響されやすい。既存ベンチマークは評価には使えるが、画像の種類や質問の形式が狭く、訓練用データとしては偏りが残る。とくに機械生成された定型質問に過適合すると、人間が自然に尋ねる質問で性能が落ちる。論文は、短い領域指定からその領域の合成画像と質問応答を作り、視覚言語モデルの instruction tuning に用いる問題として定式化している。

提案手法

提案手法 CoSyn は、入力として「book covers」や「nutrition fact labels」のような画像領域の短い説明を受け取る。まず、その領域に合う生成パイプラインを選び、ペルソナを条件にして多様な題材を作る。つぎに、画像に載せる具体的なデータを JSON などで生成し、それを HTML、LaTeX、Matplotlib、Plotly、Graphviz、Mermaid、SVG、LilyPond、RDKit などのコードに変換する。コードは実行され、文字を含む画像としてレンダリングされる。重要なのは、質問応答データの生成にも画像ではなくコードを使うことである。コードには表の値、文書の項目、ボタンの配置などが明示されているため、言語モデルはそれを読んで、短答式の質問、説明、答えを作れる。CoSyn-400K は 9 分野の 400K 画像と 2.7M 件の instruction tuning データから成る。さらに、コードを少し変更して正解位置に点を描かせ、その座標を抽出することで、画面クリックのような pointing データも作っている。

結果

主実験では、CLIP ViT-L/14 を視覚側に、Mistral-7B を言語側に用いる 7B 規模の視覚言語モデルを訓練している。ChartQA、DocVQA、InfoVQA、TableVQA、AI2D、TextVQA、ScreenQA の 7 ベンチマークで評価し、提案モデルは平均 80.9 を得た。比較対象の Llama 3.2 11B は平均 77.0、Gemini 1.5 Flash は 76.2、GPT-4V は 72.8 であり、論文中の設定では提案モデルが最も高い平均値を示す。評価データの訓練例を使わないゼロショット設定でも、合成データと補助データを使ったモデルは平均 74.7 となり、多くの既存モデルに近い性能を得ている。データ選択の実験では、補助データだけでは平均 58.7、合成データだけでは 70.5、補助データと合成データの併用では 74.7 となった。未知領域として作成した NutritionQA では、7K 件の栄養表示合成データだけを追加しても、多くのオープンモデルを上回った。ChartQA では、合成データの追加により、機械生成質問と人手質問の性能差が 21.8 から 14.2 に縮小している。ScreenSpot のクリック位置予測では、65K 件の合成 pointing データと人手データを組み合わせたモデルが平均 74.9 を得て、UGround の 73.3 を上回った。

具体例

たとえば、利用者がオレンジジュースの栄養成分表示の写真を撮り、「今日はナトリウムをすでに 1000mg 摂った。この飲み物を飲むと推奨量を超えるか」と尋ねる場面を考える。画像には 1 本あたりのナトリウム量、1 日摂取目安に対する割合、内容量、1 容器あたりのサービング数が小さな文字で書かれている。モデルはまずラベル内の数値を読み、質問に含まれる 1000mg とラベル上のナトリウム量を合わせて判断する。CoSyn では、このようなラベル画像を HTML などのコードから合成し、コード中の数値をもとに質問、途中説明、短い答えを作る。期待される出力は、たとえば「No」のような簡潔な答えであり、必要に応じて「1000mg にこの商品のナトリウム量を足すと目安を超える」と説明する。間違えやすい点は、1 サービングあたりの値と 1 容器あたりの値を取り違えることである。また、割合表示だけを読んで mg 表示を無視すると、質問文中の既摂取量との足し合わせに失敗する。論文の NutritionQA は、このような日常的だが少し計算を要する文字画像理解を調べるために用意されている。