HUOXIU

RAGパフォーマンス最適化:高品質ドキュメント分析の詳細な説明

著者:毛彩生

背景

汎用大規模言語モデル(LLM)は知識ベースの質問応答において大きな進歩を遂げてきましたが、専門分野においては依然として効果を発揮していません。これは、これらの分野のデータが公開されておらず、汎用LLMがそこから学習していないため、質問に答えることができないからです。1つのアプローチは、この専門分野のデータをLLMに取り込んで微調整することですが、これは多くの場合、技術的にもコスト的にも高すぎます。RAGシステムは、分野固有の質問応答を解決するための別のアプローチを提供します。ユーザーの元の質問に関連するプライベートな分野データを追加し、汎用LLMによって分析・要約されます。検索を強化することで、LLMにはより正確な情報が提供され、最終的な回答のパフォーマンスが向上します(下図参照)。

知識データベースはRAGシステムの中核コンポーネントであり、様々なプライベートドメイン文書をコンピュータで検索可能なデータにオフライン変換する必要があります。現実のシナリオでは、ほとんどのビジネス文書はPDFやDOCなどの非構造化データとして保存されています。これらの文書には、タイトル、段落、表、画像などの要素が含まれており、人間にとっては読みやすいものの、コンピュータによる検索や処理には適していません。文書解析は、これらの非構造化文書を半構造化文書(MarkdownやHTMLなど)に変換し、その後、システムがそれらをスライスしてベクトル化することで、最終的に検索可能な構造化データを形成します。したがって、文書解析はRAGシステムの最初のステップです。入力品質の向上は出力品質の向上につながり、高品質な解析結果はRAGシステム全体のパフォーマンスを自然に向上させます。

WordとPDFの比較

PDF と Word (MS Office 2007 より前は doc、それ以降は docx) は最も一般的な 2 つのドキュメント形式ですが、根本的に異なります。

  • Word は編集に特化しています。Docx 形式は Office Open XML 標準に準拠しており、基礎レベルでデータを XML で保存します。見出し、段落、表などの概念は含まれていますが、ページや位置の概念はありません。各要素の最終的な表示位置は、実際のレンダリングエンジンによって決定されます(同じ文書でもソフトウェアによって表示が異なる場合があります)。docx ファイルの解析は、標準に従って基礎となる XML ファイルを読み取るだけで済みます。doc 形式は 2008 年に一般公開されたばかりで(その時点では docx に置き換えられています)、解析できるオープンソース ツールはごくわずかです。通常、ファイルは解析前に docx に変換されます。

  • PDF は主に読み取りと印刷を目的として設計されています。文書には文字や線などの基本要素を描画するための一連の命令が格納されており、読者やプリンタに対して、画面や紙のどこにどのように記号を表示するかを伝えます。Word とは異なり、PDF にはページと位置の概念があり、さまざまなデバイスで一貫した表示が可能です。編集が不要なため、PDF には見出し、段落、表などの概念がありません。たとえば、見出しは単純に大きな太字のテキストであり、表は単に整列した線とテキストです。PDF ファイルの解析には、テキストの抽出だけでなく、ページ レイアウトの復元や表の認識などの追加の操作も必要です。

docx および pdf ファイル構造の例を次に示します。

 <w:ドキュメント>
<w:本文>
<!-- 段落 -->
       <w:p w:rsidR="005F670F" w:rsidRDefault="005F79F5">
<w:r>
<!-- テキスト属性 -->
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"/>
<w:color w:val="000000"/>
</w:rPr>
<w:t>こんにちは世界!</w:t>
</w:r>
</w:p>
<!-- ページ属性 -->
       <w:sectPr w:rsidR="005F670F">
           <w:pgSz w:w="12240" w:h="15840"/>
<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720"
w:ガター="0"/>
<w:cols w:space="720"/>
           <w:docGrid w:linePitch="360"/>
</w:sectPr>
</w:本文>
</w:ドキュメント>

 4 0 obj % ページコンテンツフロー << >>
ストリーム % ストリームの開始 1. 0. 0. 1. 50. 700. cm % 位置 (50, 700)
BT % テキストブロックの開始 /F0 36。 Tf % 36pt の /F0 フォントを選択 (Hello, World!) Tj % テキスト文字列を配置 ET % テキストブロックの終了 endstream % ストリームの終了 endobj

要約:

単語分析

docx形式

DOCXファイルは、複数のファイルとフォルダを含む圧縮アーカイブであり、解凍ツールを使って解凍できます。最小構造は以下のとおりです。例:📎minimal.docx

 。
├── [コンテンツタイプ].xml
├── _rels
│ └── .rels
└── 単語
├── ドキュメント.xml
└── _rels
└── document.xml.rels

word/document.xmlには、DOCX 文書のメインコンテンツが含まれています。上記の例を参考に、重要なタグをいくつか挙げます。

  1. ドキュメントのコンテンツ全体が含まれるルート要素。

  2. ドキュメントの本文には、すべての段落、表、その他のコンテンツが含まれます。

  3. (段落): 段落要素。

  4. (実行): 同じ書式の連続したテキスト文字列が含まれます。

  5. (テキスト): 特定のテキスト コンテンツ。

  6. (セクション プロパティ): セクション プロパティは、余白、ページ番号、ヘッダー、フッターなどのページ設定を定義します。

ドキュメント形式

.doc 形式自体は OLE (Object Linking and Embedding) 複合ドキュメントです。ドキュメントはデータを複数のストリームに分割し、MS-DOC ファイル形式仕様で詳述されているように、異なる保存場所に保存します。WordDocument バイナリストリームWordDocumentドキュメントのコアコンテンツであり、必ず存在する必要があります。現在、私たちの知る限り、.doc ファイルの内容を直接読み取ることができる Python ライブラリはありません。Python の olefile は .doc ファイルを開くことはできますが、開く機能のみに制限されており、WordDocument のようなストリームをデコードすることはできません。そのため、Python では、.doc ファイルは通常、 libreofficeを使用して解析し、.docx ファイルに変換されます。さらに、ファイルの暗号化による変換エラーを回避するために、olefile とファイル形式仕様を使用して事前チェックを実行できます。

PDF分析

オープンソースツール

Python には多くのオープンソースの PDF 解析ツールが用意されており、以下にまとめます。

PapermageはPDFPlumberをカプセル化し、複数のモデルに基づいてレイアウト分析を実行します。最も包括的な機能と、タイトル、著者、要約などの要素を識別する機能を提供しますが、学術論文のシナリオに限定されています。同様の例としてragflow-deepdocがあります(RAGFlowのDeepDocドキュメント理解の詳細な解説を参照)。Papermageについては、後ほど詳しく説明します。

PaperMageの紹介

ステップ1 – プレーンテキスト抽出

PDFPlumber は PDF からテキストを抽出してwordsのセットを取得し、単語の位置関係に基づいてテキストlinesを検出します。

ステップ2 – 視覚的なラベル付け

PDFはページごとにビットマップにラスタライズされます。オブジェクト検出技術を用いてビットマップ内の要素を識別し、 blocksを生成します。各ブロックには、バウンディングボックス(bbox)とラベル情報(画像、表など)が含まれます。ラスタライズ処理にはpdf2imageライブラリ(Popplerベース)が使用され、オブジェクト検出モデルにはEfficientDetシリーズ(layoutparser/efficientdet・Hugging Face)が使用されています。

視覚化結果は次のとおりです。

bbox は一般的な領域であり、その主な目的は、第 3 ステップのblock_idslabelsという位置関係に基づいて単語を異なるラベルを持つブロックに分割することであることがわかります。

ステップ3 – 文字レベルの注釈

文字注釈モデルは、I-VILAシリーズモデル(allenai/ivila-block-layoutlm-finetuned-s2vl-v2)を使用し、最初の2つのステップの結果を入力として受け取ります。入力形式は以下のとおりです。

 {
"単語": ["単語1", "単語2", ...],
"ブロックID": [0, 0, 0, 1 ...],
"line_ids": [0, 1, 1, 2 ...],
「ラベル」: [0, 0, 0, 1 ...],
}

予測されるタグは次のとおりです。

 {
"0": "タイトル",
"1": "著者",
「2」:「要約」
"3": "キーワード",
"4": "セクション",
"5": "段落",
"6": "リスト",
"7": "参考文献",
"8": "方程式",
"9": "アルゴリズム",
"10": "図",
"11": "表",
"12": "キャプション",
"13": "ヘッダー",
"14": "フッター",
"15": "脚注"
}

モデルは各単語のラベルを予測します。同じラベルを持つ単語はエンティティ( titlesauthorsなど)に集約され、そのエンティティの境界ボックスはエンティティ内のすべての単語の境界ボックスになります。

視覚化の結果は次のとおりです (タイトルは赤、著者はオレンジ、段落は緑、脚注は黒など、異なる色は異なるエンティティを表します)。

特定の領域から単語が抽出されない場合、その領域にはラベルが付けられないことがわかります。そのため、上記の画像は認識されませんでした(物体検出モデルは検出しましたが、ラベルは誤って識別されました)。

要約:

現在、オープンソース ツールは 2 つのカテゴリに分けられます。

(1) ルールベースアプローチ:利点:適用範囲が広く、処理速度が速い。欠点:一般的に結果が悪く、識別できるページ要素の数が限られており、認識性能が低い。

(2) モデルベースのアプローチ。利点:より多くの高レベルのレイアウト要素を識別できるため、後続のスライス処理に有利です。欠点:処理速度が遅く、GPUリソ​​ースに依存し、適用可能なシナリオが限られており、認識プロセスがブラックボックス化されています(例:上図の画像を認識しないというエラーを修正するのが困難)。

主な問題点

ページ要素の復元

前述の通り、PDFにはWord文書に比べて多くのページレイアウト要素の概念がありません。テキストのみを抽出すると、多くの情報(段落の意味情報、テキストサイズ、位置情報など)が失われ、後続の文書スライスに悪影響を及ぼします。ページレイアウトの復元には、主に見出し、段落、下付き文字、上付き文字、フッターの認識が含まれます。

表構造の認識

表には、フルフレーム表とハーフフレーム表(学術論文でよく見られる3行表など)の2種類があります。表を正確に識別するには、まず表領域を正確に特定し、次に表構造を認識し、最後に各セルに対応するテキストを抽出する必要があります。

読み上げ順序の復元

レイアウトを復元した後、レイアウト要素のバウンディングボックスを出力することが重要です。人間の読み順に沿ってドキュメントコンテンツを正確に再構築することも非常に重要です。一般的な技術的アプローチとしては、ルールベースの手法(XYカットなど)やディープラーニングベースの手法(Layoutreaderなど)などがあります。

Alibaba Cloud Search ドキュメントコンテンツ分析

全体的なアーキテクチャ

図の左側と中央部分はdoc/docxファイルの解析を示しており、右側はPDFファイルの解析を示しています。PDF解析では、モデルベースのアプローチと比較して、主に以下の点を考慮したルールベースのアプローチを採用しました

  1. 汎用的なシナリオを対象としており、ドキュメントのレイアウトは多様で、ページ数は数千ページに達する可能性があります。モデルの汎化性能は要件を満たしていません。

  2. GPU リソースのボトルネックによりサービスの最大スループットが制限されますが、ルールベースのアプローチは CPU リソースのみに依存し、無制限に拡張できます。

  3. モデルの効果はブラックボックス化されているため、悪いケースを修正することが困難です。

すべての形式は最終的に Markdown 形式で出力され、次のレイアウト要素をサポートします。

  • 多階層の見出し

  • 自然な段落分割

  • 画像(スカラー、ベクター)

  • テーブル(フルフレーム、ハーフフレーム)

  • 上付き文字と下付き文字(ネスト文字をサポート)

  • ヘッダーとフッター

PDF 形式は以下もサポートします:

  • 読み上げ順序の復元

  • 画像OCR(コピーをサポート)

  • PPTタイプの最適化

効果の例

原文: PaperMage.pdf

ページ要素の復元

段落の区切りと読み順、フッターの識別

タイトル、段落、下付き文字、上付き文字、画像などの要素の認識

表構造の認識

オリジナル

マークダウン

スピードと正確さ

テストセット: 53 枚の紙

解決速度:

表認識精度(人間による評価)

サービス体験

Alibaba Cloud Search Development Workbench で RAG ドキュメント解析機能がリリースされました。Search Development Workbench は、インテリジェント検索と RAG シナリオを中心に、高品質なコンポーネント化されたサービスと柔軟な呼び出しメカニズムを提供します。ドキュメント解析、ドキュメントスライス、テキストベクトル化、リコール、ランキング、大規模モデルなどのサービスが組み込まれており、ワンストップで柔軟な AI 検索ビジネス開発を可能にします。

新規ユーザーは、Search Development Workbench を無料でアクティブ化し、100 回の無料サービス コールを受けることができるようになりました。

無料アクティベーション: https://common-buy.aliyun.com/?spm=5176.14058969.J_8356059010.3.548254f8Gi92L1&commodityCode=opensearch_platform_public_cn

APIドキュメント: https://help.aliyun.com/zh/open-search/search-platform/developer-reference/api-details

検索開発ワークベンチのその他のサービスをご覧になり、体験するには、https://opensearch.console.aliyun.com/cn-shanghai/rag/server-market にアクセスしてください。