lift-pdfを使用したスキーマガイドの請求書インテリジェンスパイプライン:買掛金抽出、検証、元帳生成
このチュートリアルでは、lift-pdfを使用してエンドツーエンドの買掛金抽出パイプラインを構築します。合成請求書PDFを制御されたテスト文書として使用し、構造化JSONスキーマを目標出力形式とすることで、請求書解析を単純なOCRタスクではなく、スキーマガイドの文書理解として捉えます。GPU対応モデルロード、オプションの4ビット量子化、PDF生成と抽出、スコアリング、元帳構築を通じて、請求書マイニングのための文書インテリジェンスのコンパクトでありながら現実的なデモを提供します。
このチュートリアルでは、lift-pdfを使用してエンドツーエンドの買掛金抽出パイプラインを構築します。合成請求書PDFを制御されたテスト文書として使用し、構造化JSONスキーマを目標出力形式とすることで、請求書解析を単純なOCRタスクではなく、スキーマガイドの文書理解として捉えます。現実的な請求書を生成し、ベンダーID、請求先、PO番号、明細行、税金、合計金額、残高、支払いステータスなどのフィールドを定義し、モデルにレンダリングされたPDFレイアウトから直接これらの値を抽出するよう指示します。また、実際の財務ワークフローに現れる実用的な抽出の落とし穴も含めています。例えば、請求先と送り先の区別、小計と税込合計の分離、存在しない値に対するnullの返却、残高が残っている場合の一部支払い請求書の未払いとしての正しいマーク付けなどです。GPU対応モデルロード、オプションの4ビット量子化、PDF生成と抽出、スコアリング、元帳構築を通じて、このチュートリアルは請求書マイニングのための文書インテリジェンスのコンパクトでありながら現実的なデモとなります。
まず、処理する請求書の数、4ビットロードを使用するかどうか、生成されたPDFをプレビューするかどうかを決定するランタイム制御を定義します。PDF生成、レンダリング、表分析、プロット、lift-pdf推論のためのコア依存関係をインストールします。Pillowのバージョンを安定版に固定して、既知の互換性問題を回避します。次に、GPU対応の推論バックエンドを準備し、利用可能なVRAMに基づいてモデルをフル精度で実行するか4ビットNF4量子化で実行するかを決定します。Hugging Faceのモデルロードパスをパッチして、liftが必要に応じてBitsAndBytes量子化設定でチェックポイントを透過的にロードできるようにします。InferenceManagerを一度初期化し、すべての請求書で再利用して、モデルロードのオーバーヘッドを回避します。
次に、3つの合成請求書データ辞書を生成します。それぞれ異なるシナリオを表します:未払い残高のある米国のクラウドプロバイダー、全額支払い済みのフィンランドのデザイン会社、部分的なデポジットが支払われた米国の建設請負業者です。ReportLabを使用して各請求書を1ページのPDFにレンダリングし、ヘッダー、請求書メタデータ、請求先と送り先のブロック、明細行テーブル、合計、支払いステータス、メモを含めます。請求書の抽出を困難にするレイアウト要素(請求先と送り先の分離、小計と合計のフィールドなど)を意図的に保持します。その後、PDFコーパスを生成し、オプションで最初のページをプレビューします。
抽出段階では、すべてのターゲットフィールドとその制約を記述する完全なJSONスキーマを定義します。スキーマには、請求書番号、日付、ベンダー、顧客名、注文番号、通貨、明細行(説明、数量、単価、行合計)、小計、割引額、税金、合計金額、支払い済み額、残高が含まれます。liftのスキーマガイド抽出機能を使用して、各PDFファイルをlift.extract()に渡し、構造化された抽出結果を取得します。各請求書について、抽出結果をグラウンドトゥルースと比較し、フィールドごとの適合率と再現率を計算します。また、すべての請求書の抽出データを集約した単純な元帳を構築し、金額の一致とステータスフラグを含めます。
最後に、インストール手順、モデルロード、PDF生成、抽出、スコアリングを含む完全なコード例を提供します。パイプライン全体は実際の請求書のバリエーションを処理するように設計されており、実際の買掛金自動化システムの基盤として使用できます。