SQLAgentとマルチモーダルLLMを用いた文書内の表に対する質問応答システム

大規模言語モデル(LLM)の発展に伴い，LLMに学習データに含まれないテキストをプロンプトに代入することで，外部知識を踏まえた質疑応答を行う，Retrieval-AugmentedGeneration(RAG)[1,2]に関する研究が進んでいる．RAGにおいて表に対する質問に正確に回答することは重要である．表から抽出した文章は構造化情報を失っており，そのままプロンプトに代入しLLMに入力すると，通常の推論と比較して回答精度が落ちてしまう[3]．近年，言語モデルを用いて表に対する推論を行う手法が提案されている．研究の方向性は大きく二つある．一つは，特殊な埋め込み層や注意機構を言語モデルに組み込み，表のセルや一部を復元することでモデルを事前学習する方法である[4,5,6]．もう一つは，事前学習を実施せずに既存のLLMを用いて推論を行う方法である[7,8,9]．Wangら[9]は，列の追加，行の選択，グループ化，ソート等の操作を段階的にしていくことで、表に対する理解を深めてクエリに回答する手法であるChain-of-Tableを提案した．各操作はPythonの関数としてあらかじめ実装されており，どのような順番でどの操作を実行するかの選択をLLMで行うことで最終的な回答を得る．ただし，表全体をプロンプトに入れる必要があるため，一定以上大きい表ではChain-of-Tableを実行することが困難であることには注意が必要である．このように，既存のLLMを用いた手法の多くは表を文字列として入力するため，表のサイズが大きい場合は使用するトークン数が多くなり，回答精度の悪化やLLMの最大トークン数を超えてしまう可能性がある．自然言語で表されたクエリをSQLクエリに変換するText-to-SQLの技術も盛んに研究されている[10,11,12]．Liら[13]は，複数の異なるLLMが出力したSQLクエリの実行結果を多数決に用いて最終回答を得ることで回答精度を向上させた．LLMを使用してアプリケーションを構築するためのオープンソースライブラリであるLangChain1）では，Text-to-SQLの技術を用いてSQLデータベースを操作するSQLクエリを生成し，自ら実行を行うSQLAgentが提供されている．SQLAgentには，実行結果を受けとって，多段階でデータを加工するSQLクエリを生成したり，トレースバックをキャッチしてSQLクエリの生成を自律的にやり直したりすることができるという利点がある．SQLAgentは，回答の根拠となる表が予め特定できている場合では，繰り返しSQLを実行することで回答を得ることができる．しかし，表の候補が大量にあり，回答に必要な表を事前に特定する必要があるケースにおいては，SQLAgent単体では機能しない．また，テキストと画像データの両方を入力とするマルチモーダル型のLLMを用いることにより，表構造を持つ画像に対し，直接質問回答を生成させ1）https://www.langchain.com.ることも可能である．Singhら[14]は，数学，視覚データの分析，コード生成などの構造化推論タスクにおいて，マルチモーダル型のLLMであるGPT4-Vの評価を行い，コード生成において，表を画像化してテーブルのスキーマとともに入力にすることによって，画像を入力しない場合より精度が向上することを示した．入力として表が与えられている場合に質問応答を行う研究は存在するが，対象となる表を特定する必要がある場合の質問応答タスクにおいて，表の画像も入力に追加したマルチモーダル型のLLMを利用してSQLAgentで回答生成を行った例は，我々の知る限り存在しない．そこで，本研究では回答の根拠となる表の検索と表に対する推論を必要とする質問応答タスクにおいて，SQLAgentとSQLAgentの入力に表の画像を追加したモデル(SQLAgent-Vとする)を組み合わせて回答を生成する手法を提案する．表から文字列を抽出しLLMに入力するのではなく，LLMに質問の根拠となる情報の抽出や集計を行うSQLクエリを記述させ，それを実行してから質疑応答のプロンプトに代入して回答させる方法を採用することで，計算などの複雑な処理を必要とする質問に対する精度が向上することを確認した．また，SQLクエリを記述させる際に，マルチモーダル型のLLMを利用して表の画像を入力に含めることで，質問内の単語と表中の単語で表記揺れが存在する場合において回答精度が向上することを確認した．表画像がノイズとなり不正解になってしまう質問もあるため，通常のSQLAgentとSQLAgent-Vを質問に応じて動的に切り替える手法を提案し，実験を行うことでその有効性を確認した．