【Plot2Code】マルチモーダルLLMのコード生成をテストするベンチマーク
3つの要点
✔️ マルチモーダル言語モデルのコード生成能力を評価する新しいベンチマーク「Plot2Code」を提案
✔️ 評価指標としてコード合格率、テキスト一致率、GPT-4Vによる判断スコアを導入
✔️ Plot2Codeによって、マルチモーダル言語モデルの課題を明らかにし、改善の余地があることを示す
Plot2Code: A Comprehensive Benchmark for Evaluating Multi-modal Large Language Models in Code Generation from Scientific Plots
written by Chengyue Wu, Yixiao Ge, Qiushan Guo, Jiahao Wang, Zhixuan Liang, Zeyu Lu, Ying Shan, Ping Luo
(Submitted on 13 May 2024)
Comments: Published on arxiv.
Subjects: Computation and Language (cs.CL); Computer Vision and Pattern Recognition (cs.CV)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
概要
ビッグデータと計算能力の急速な進歩により、ChatGPTやGPT-4などの大規模言語モデルが、商業界と学術界の両方で注目を集めています。これに伴い、マルチモーダル大規模言語モデルも急速に進化し、GPT-4V、Gemini、Claude-3、オープンソースモデルのLLaVAやMini-GPTなどが登場しています。これらのモデルの視覚情報の解釈力を評価するために、様々な評価ベンチマークが作成されていますが、「テキストが密集した画像内の図表」に関しては、依然として研究が不足しています。
この論文では、マルチモーダル大規模言語モデルが画像を効果的にレンダリングするコードを生成する能力を評価し、そのマルチモーダルの理解と推論に関する能力を示しています。マルチモーダル大規模言語モデルが視覚情報を正確に解釈し、テキストと関連付けて実行可能なコードを生成するという課題は、今後の研究において重要なテーマとされています。
そこで、この論文では、新しい評価ベンチマーク「Plot2Code」を提案しています。このベンチマークは、マルチモーダル大規模言語モデルのマルチモーダルの理解、推論、コーディング能力を評価するために設計されています。132のmatplotlibプロットを含むデータセットを使用しています。各プロットには対応するコードと詳細な説明が付いており、様々な入力、出力形式に対応する評価設定が用意されています。さらに、このベンチマークを用いて、公開されている14個のマルチモーダル大規模言語モデルを評価しています。そして、その結果、視覚情報のコーディングタスクにおいて改善の余地があることを示しています。
下図は、Plot2Codeの概要を示しています。(a)は、Plot2Codeデータセットにおける基準となるプロットの代表的なサンプル(b)は、参照画像を使用してマルチモーダル大規模言語モデルが生成したプロットサンプル、(c)はマルチモーダル大規模言語モデルのコード生成能力を評価するために使用される包括的なパイプラインを示してます。
今後、Plot2Codeが研究コミュニティで有効活用され、マルチモーダル大規模言語モデルのさらなる研究と発展を促進することが期待されます。
Plot2Codeベンチマークの構築
ここでは、ベンチマークデータの収集と処理についてご紹介します。まず、matplotlibのギャラリーに掲載されているすべてのウェブサイトのリンクをクロールし、それぞれのHTMLファイルからコードブロックを抽出します。これによって、841個のコードブロックが得られたのち、フィルタリングなどいくつかの処理を行っています。下図は、Plot2Codeベンチマークのサンプルです。
まずマルチモーダル大規模言語モデルのコード生成能力を効果的に評価できる構造化されたプロットとコードのペアを取得します。最初にクロールしたPythonコードは必ずしも高品質なプロットを生成するのに適しているとは限りません。そのため、自動処理と手動フィルタリングを組み合わせています。
収集したデータには、1つのHTMLファイルに複数のコードセグメントが含まれていることがあり、一部のセグメントはインポート行や初期化関数が含まれており、プロットを生成できないことがあります。これに対処するために、単一のコードブロックを含むHTMLファイルからのみコードを抽出しています。これによって、すべての重要なコンポーネントが含まれ、追加の依存関係なしにプロットを生成できるようになります。その後、プロットを生成できないコードをすべてフィルタリングし、529のプロットとコードのペアを取得しています。
このベンチマークでは、プロットはアニメーションやインタラクションのないシンプルな静的図であることを前提としています。そのため、各プロットはmatplotlibエンジンによってレンダリングされた画像ファイルと見なしています。このため、対応するURLに特定のタグ(アニメーション、ウィジェット、イベントハンドリングなど)が含まれているプロットをフィルタリングしています。データセット内のプロットとコードのペアの詳細な内訳は、下図のとおりです。
さらに、上述の処理をした後、以下の基準に基づいて手動フィルタリングを行い、最終結果を得ています。
- プロットが外部ファイルに依存せず、対応するコードを使用して直接レンダリングできる
- プロットがサイズ、テキスト、色、タイプの点で多様であり、一般的に使用されるチャートやプロットの広範なベンチマークとして機能する
- プロットが初心者レベルから専門レベルまで、さまざまな難易度に均等に分布している
手動フィルタリングでは、より厳格なアプローチを採用して高品質のプロットのみを保持しており、最終的に、ベンチマークとして使用される132のテストサンプルを取得します。
作成されたテストセットは、「直接要求(Direct Asking)」と「条件付き要求(Conditional Asking)」の2つの方法で評価されています。マルチモーダル大規模言語モデルから生成された応答からコードを簡単に抽出できるように、コードを特定のマーカーで囲むよう要求します。これにより、正規表現を使用して抽出することができます。
「直接要求(Direct Asking)」では、マルチモーダル大規模言語モデルに画像を入力として与え、それに似たグラフを生成する実行可能なコードを生成するように要求します。
「条件付き要求(Conditional Asking)」では、マルチモーダル大規模言語モデルに画像と条件(テキスト指示)を入力として与え、指定された条件に沿った結果を生成する実行可能なコードを生成するように要求します。大規模言語モデルの場合、入力は条件のみであり、他の要件はマルチモーダル大規模言語モデルと一致します。これらの指示は、基準コードからGPT-4を使用して抽出し、再現に必要なすべての情報を保持しながら、コードの実装詳細を避けるよう指示します。
テストサンプルの統計値を下表のとおりです。また、各サンプルのタイプは、matplotlibのギャラリーから取得されたURLに存在するタグにもとづいて決定されます。これらのカテゴリはmatplotlibのギャラリーによって定義されています。最も一般的なタイプには線、バー、マーカーが含まれ、その他のカテゴリには、等高線、フィールド、円グラフ、極座標プロット、サブプロット軸、統計的表現、テキストラベルや注釈が含まれています。
このベンチマークでは、さまざまな側面から評価指標をするため、コード合格率、テキスト一致率、GPT-4vの判断スコアが提案されています。
マルチモーダル大規模言語モデルは、matplotlibを使用して画像にレンダリングできるコードを生成することが期待されています。したがって、入力の参照画像と指示に基づいてマルチモーダル大規模言語モデルが実行可能なコードを生成できるかどうかを判断するために「コード合格率」を計算しています。
また、生成されたプロットと基準となるプロットの類似性を評価するために、GPT-4vモデルを活用した評価パイプラインを設計しています。このパイプラインは、全体的な外観、色、形、位置、その他の視覚要素を考慮して、テストサンプルに1〜10のスケールで評価を付けます。評価に使用されるプロンプトは、下のようになっています。
また、GPT-4vの判断による類似性評価は重要ですが、プロットの解釈に重要なテキストなどの詳細なプロットコンポーネントは考慮されていません。そこれ、生成されたプロットと基準となるプロットの細かい観点での類似性を評価するために「テキスト一致率」も導入しています。この指標では、基準サンプルに存在するテキストの精度を評価し、評価対象のプロットでテキスト要素が正確に再現されていること、生成された画像に余分なテキストがないことを確認しています。
さらに、下表に示されているように、この論文で構築したデータセットは、他のすべてのユニモーダルおよびマルチモーダルコードベンチマークと比較して、最も広範な評価設定と指標を網羅していることがわかります。
実験結果
ここでは、Plot2Codeベンチマークを用いて、さまざまなマルチモーダル大規模言語モデルを評価し、その性能を比較しています。クローズドソースの商用APIモデルとオープンソースモデルの両方を用いています。
14個のの代表的なクローズドソースおよびオープンソースのマルチモーダル大規模言語モデル/大規模言語モデルを評価しています。これには、GPT、DeepSeek、Mistral、Mixtral、Yiなどが含まれています。また、Chain-of-ThoughtやPlan-and-Solveといったさまざまなプロンプト戦略も検討されています。
評価は、「直接要求」と「条件付き要求」の2つの設定で行割れています。視覚情報を解釈する機能を持たない大規模言語モデルは、「条件付き要求」のみで評価しています。また、GPT-4Vの判断を用いて、2つのマルチモーダル大規模言語モデル/大規模言語モデルのペアワイズ評価を実施し、GPT-4Vの判断と人間の評価との相関を分析しています。Plot2Codeベンチマークにおける定量的な結果を下表のとおりです。
Plot2Codeベンチマークは、先進的なモデルでもクリアすることが難しいベンチマークであることがわかります。例えば、Claude-3-Opus、Gemini-Pro、GPT-4Vでは、条件付き要求の設定で、各々7.68、7.10、7.68の評価しか得られず、改善の余地が大きいことを示しています。指示を追加するとマルチモーダル大規模言語モデルの合格率も低下し、例えば、Gemini-Proの合格率は68.2%から55.3%に低下しています。MT-benchやHumanEvalのような他のベンチマークでは、高い評価を得ているモデルでも、Plot2Codeでは視覚的情報の理解と推論の能力が問われるため、より厳しい評価が求められることがわかります。
クローズドソースモデルとオープンソースモデルの差についても検証されています。オープンソースモデルの性能は、クローズドソースモデルに比べて劣っていることがわかります。例えば、最新のオープンソースのマルチモーダル大規模言語モデルであるDeepSeek-VL、Mini-Gemini、LLaVA-Nextを評価した結果、最も高い性能を示したのはMini-Gemini-8x7B-HDで、GPT-4Vの判断では6.08のスコアを記録し、コード合格率は58.4%でした。しかし、この性能は商用クローズドソースマルチモーダル大規模言語モデルには及びません。オープンソースコミュニティには、商用モデルと競合し、さらには超える能力を持つモデルの開発が求められることがわかります。
このように、Plot2Codeベンチマークは、さまざまなマルチモーダル大規模言語モデルの性能を詳しく評価し、改善点や課題を明らかにしています。
また、このほかにもプロンプト戦略、バックボーンLLM、解像度設定など、さまざまな観点での分析も行っています。下表(再掲)に示されているように、モデルの性能と、使用されるベースとなっている大規模言語モデルの間には強い相関があることがわかりました。これは、Mini-GeminiやLLavaの両方で確認されており、Plot2Codeのタスクでは、強力なバックボーンが必要であることを示唆しています。強力なバックボーンが、推論プロセスを支援し、実行可能なコードを生成する能力を向上させます。
また、2つの評価設定の違いによる性能の比較も行っています。上表(再掲)を見ると、マルチモーダル大規模言語モデルでは、「条件付き要求」よりも「直接要求」の方が全体的に合格率が高くなっています。これは、「条件付き要求」では、追加の指示が生成されたコードに厳しい制約を課し、実行可能なコードを生成するのが難しくなるためと考えられます。しかし、追加の指示は生成された画像の類似性を向上させます。Chain-of-ThoughtやPlan-and-Solveなどのプロンプト戦略の影響も比較していますが、これらのプロンプトはデフォルトのプロンプトに対して明確な優位性を示していません。
さらに、従来のペアワイズモデル評価に従い、GPT-4V判断の設定を拡張して、2つのマルチモーダル大規模言語モデルのペアワイズ評価を行っています。各参照サンプルに対して、GPT-4Vにどちらの生成画像がより類似しているかを判断させます。異なる位置の影響を軽減するために、2つの生成画像を交換して追加評価を行い、両方のラウンドで勝利した場合にのみ、そのモデルが勝利と見なされます。結果は下図のとおりです。
この結果から、GPT-4と比較して、GPT-4Vへの画像入力の追加は、高品質なプロットの生成に有益であること、一般的に使用されるプロンプト戦略であるChain-of-Thoughtは、このベンチマークでは追加の優位性をもたらさないこと、が推察されます。このように、設定の違いによる影響を分析することで、マルチモーダル大規模言語モデルの性能向上のための具体的な改善点を明らかにしています。
まとめ
この論文では、マルチモーダル言語モデルのコード生成能力を評価するための包括的なベンチマーク「Plot2Code」を提案しています。このベンチマークは、さまざまなの複雑さと種類のプロットを網羅しており、さまざまなモデルの性能を評価するための強力なツールとなることが示されています。また、コード合格率、テキスト一致率、GPT-4V判断スコアといった評価指標を提案し、これらがモデルの性能を総合的に評価するのに有効であることも示しています。
Plot2Codeベンチマークを用いた評価では、モデルごとに大きな性能差があることが明らかになり、このタスクがもたらす課題と現在のモデルに改善の余地があることが示唆されています。いくつかのモデルは、実行可能なコードを生成し、参照画像に似たプロットを作成することができていますが、すべてのテキスト要素や細かなディテールを正確に再現することは依然として難しいことがわかりました。
将来的には、Plot2Codeベンチマークが、マルチモーダルの推論、テキストが密集した画像の解釈、複雑なコード生成能力のさらなる研究と発展を進進めることが期待されます。この分野の研究が進むことで、オープンソースコミュニティのマルチモーダル言語モデルとクローズドソース商用APIのギャップがさらに縮まることを期待されます。
この記事に関するカテゴリー