手軽にグラフ入りドキュメントでRAGを試す方法
導入
こんにちは、株式会社ナレッジセンスの須藤英寿です。
今回は文書の前処理によって、LLMの回答精度を20%も引き上げることに成功したRAGの手法について紹介します。かなりシンプルな手法で、RAGの効果を簡単に体験できる方法となっているので、まだRAGを作ったことが無い方におすすめの手法となっています。
サマリー
今回紹介する論文では、企業の財務情報の読み込みに、前処理とRAGを組み合わせることでそのままデータを渡した場合と比較して性能を20%向上させることに成功しています。しかも誰でも簡単に利用することができる手段の組み合わせで実現しており、RAGをそもそも試したことがない方や少し試してみたけどイマイチ効果がわかりにくいと感じた方が、試しやすい方法となっています。
LLMの解釈の限界
現状のLLMの解釈の限界
昨今のLLMは巨大な入力トークン上限とマルチモーダルの能力を手に入れたことで、RAGなどの複雑な前処理をせずとも必要な回答を得られるようになっていると考えられています。しかしこの認識は半分は間違えでLLMは確かにその能力を向上させていますが、前処理なしの場合最大限の力を発揮することができません。依然として回答の難しいタスクであればあるほど、事前の準備が重要になってきます。
手法
論文内では具体的なサービスまで指定して、検証しています。
前処理
- Step1:
Azure Document Intelligence
を使用して、文書内のテキスト、テーブルの情報を抽出 - Step2: 文書内の画像を抽出して
ChartVLM
を介してテキストデータとして抽出 - Step3: ここまでに取得したテキスト情報をトークンベース(論文では600トークン)でチャンク化
- Step4:
OpenAI
のtext-embedding-ada
を使用して、Azure AI Search
に保存
検索
ユーザーの検索クエリをtext-embedding-ada
を用いてベクトル化。回答と考えられるチャンクの上位3つをクエリとともにLLMに渡すことで最終的な回答を生成します。
成果
結果が少しわかりにくいので整理します。まず1
がつく結果は今回紹介した前処理を活用した結果で、LLMに指定されたモデルにデータを入力して結果を出力しています。2(a)はPDFデータをテキストと画像データをそのまま渡しています。2(b)はCLIPという画像をベクトルデータに変換可能なモデルを使用して画像のみを元に回答させています。
GPT-4oにPDFデータをそのまま渡した場合(2(a)の精度56%)と比較して、本手法(前処理+RAG)をGPT-4と組み合わせた場合(1(b)の精度76%)のほうが、20%も精度が高いと言えそうです。
まとめ
かなりシンプルな方法ではありますが、精度が向上していることが確認できました。LLMにいかに分かりやすい情報を渡し、回答生成に集中させることが大切かが分かる結果と言えます。また具体的に使用しているサービスも掲載されているため、「RAGの効果を試したいが、具体的な方法が分からない」という方にとって、とても参考になるかと思います。
Discussion
いいですね👍️