金融機関は毎日数千もの複雑な文書を処理しています。金融データにおけるOCR(光学文字認識)エラーは相互接続された計算を通じて伝播し、分析の精度に影響を与える可能性があります。標準的な法的文書における単一のOCRエラーは迅速な手動修正で済むかもしれませんが、金融データにおける同じミスは計算を連鎖的に伝わり、分析の系統的エラーにつながり、組織に潜在的に高額なコストをもたらす可能性があります。
従来のOCRツールは、機関が日常的に扱う複雑な金融文書(貸借対照表、損益計算書、SEC提出書類、調査レポート、監査資料)を処理する際に重大な不足をきたします。これらの文書は、マージセルと階層データを持つ複雑なテーブル構造、相互参照を伴うマルチカラムレイアウト、セマンティック理解を必要とするコンテキスト依存情報を特徴としています。従来のOCRアプローチはこれらの文書を画像として扱い、金融文書を意味あるものにする構造的な関係やコンテキストのニュアンスを見落とします。その結果、手動修正の連鎖、データ入力の遅延、系統的な分析エラーが発生します。
この投稿では、これらの重要な課題に対処するドキュメント抽出とモデル微調整パイプラインの構築方法を説明します。Pulse AIの高度な文書理解能力とAmazon Bedrockの強力なAIサービスを組み合わせることで、組織はエンタープライズグレードの精度を達成し、コンテキストに関連した金融インサイトを大規模に抽出できます。Amazon Bedrockは、ゼロのML運用オーバーヘッドで完全管理型のモデルカスタマイズを提供し、キャパシティプランニングなしのオンデマンドデプロイメントを実現します。Novaモデルファミリーは強力なコストパフォーマンス特性を備えており、チームはインフラストラクチャではなくイノベーションに集中できます。
従来のモノリシックなOCRパイプラインとは異なり、Pulseはビジョン言語モデルと文書理解専用に設計された古典的なMLコンポーネントを統合し、セマンティック認識を持つ構造化データを抽出し、金融ドメインモデルのための改善された教師あり微調整データセットを生成し、特定の金融データでトレーニングされたカスタム大規模言語モデル(LLM)のデプロイを可能にするインテリジェントなソリューションを創り出します。Pulseは、Samsung、Cloudera、Howard Hughes、Fortune 500の金融機関や主要なプライベートエクイティファームなど、大規模な金融および運用文書を処理するグローバル企業に展開されています。
ある導入事例では、以前は数日かかっていた約1,000件の複雑な金融文書のバッチが3時間未満で処理され、ダウンストリーム分析やAIアプリケーションにすぐに使用できる構造化された監査可能な出力が生成されました。
要約すると、Pulse AIとAmazon Bedrockは以下を提供します:
- Pulse AIが複雑な金融文書から構造化されたセマンティック認識データを抽出し、複雑なテーブル、マルチカラムレイアウト、階層データを処理。
- Amazon Bedrockがその高品質データでAmazon Novaモデルを微調整し、組織の金融慣行に合わせたドメイン固有のインテリジェンスを作成。
- カスタムモデルが組織固有の理解で新しい文書を処理し、手動レビューを数日から数時間に短縮。
以下のワークフローは、インテリジェントな金融アプリケーションを構築するためのアプローチを示しています。生の金融文書から始まり、パイプラインは文書処理、微調整、デプロイメントまでの一連の高度なステップを調整し、金融データ分析とインサイトに特化したカスタムAIソリューションを創り出します。
システムはまず(ステップ1)文書をVPC内のPulseコンテナまたはPulse SaaSオファリングに取り込みます。Pulseモデルが金融文書を処理します(ステップ2)。抽出されたデータの出力はAmazon Bedrock Nova Microの教師あり微調整形式に変換され、Amazon S3に保存されます(ステップ3)。
その後、ワークフローはAmazon Bedrockの他の拡張機能を利用します:
Amazon Nova Micro(amazon.nova-micro-v1:0)を使用した教師あり微調整ジョブが実行されます。これはテキストベースの抽出タスク向けに設計されたコスト効率の高いモデルで、128Kのコンテキストウィンドウを備えています(ステップ5および6)。Nova Microは競争力のある価格性能を提供します。ジョブ完了後、結果のモデルをオンデマンド推論用にデプロイします。一貫したパフォーマンスが必要なミッションクリティカルなワークロードには、プロビジョンドスループットを使用することもできます。Playgroundでテストを使用して応答を評価および比較します。結果のカスタムモデルはAmazon Bedrockにインポートされ(ステップ8)、プロビジョンドスループットでデプロイされ(ステップ9)、スケーラブルなエンドユーザーアプリケーションを駆動します(ステップ10)。このアーキテクチャはドメイン固有の金融データセットとカスタム教師あり微調整モデルを組み合わせることで、組織は金融コンテキストを理解しつつ、パフォーマンスとコスト効率を維持するプロダクション対応のAIアプリケーションを構築できます。
前提条件
この投稿に従うには、以下の前提条件が必要です。
- AWSアカウント – Amazon Bedrockやデータセット用のS3ストレージを含むAWSサービスにアクセスするために必要。
- Amazon BedrockがS3データセットにアクセスできるようにするAWS Identity and Access Management(IAM)ポリシー – Amazon BedrockがS3バケットに保存されたデータを安全に読み取り、処理するために必要な権限を付与。
- Pulse Standardアカウント(runpulse.comでサインアップ) – Pulseシステムと統合し、このワークフローの機能にアクセスするために必要。
- AWSリージョン要件:us-east-1。
- Python 3.12以降。
- インスタンスタイプ:t3.medium。
- Amazon EC2インスタンスは時間単位で課金されます。チュートリアル完了後はインスタンスを終了して継続的なコストを回避してください。
- Amazon Linux 2023(最新)。
- 公開財務諸表:https://www.impact-bank.com/user/file/dummy_statement.pdf。
- S3トレーニングデータバケット:s3://<your-bucket-name>/training-data/。
注意:このチュートリアルでは、EC2インスタンス(時間単位)、S3ストレージ(GB月単位)、Amazon Bedrock微調整(トレーニング時間単位)、プロビジョンドスループットデプロイメント(時間単位)、AWS Secrets Manager(シークレットあたり月単位)など、AWSリソースを作成し料金が発生します。
ステップバイステップの実装
以下の手順に従って、Pulse AIとAmazon Bedrockを使用した金融文書処理パイプラインをセットアップおよび設定します。
- Pulseコンソールに移動し、アカウントを作成します。
- AWSコンソールを使用してEC2インスタンスを起動します。
- EC2コンソールに移動します。 - 「インスタンスを起動」を選択します。 - AMI選択画面で、「Amazon Linux 2023 AMI」を検索します。 - 「Amazon Linux 2023 AMI」を選択します。 - インスタンスタイプ画面で、「t3.medium」を選択します。 - LinuxインスタンスへのSSHアクセス用の新しいキーペアを作成します。 - セキュリティグループ設定で、ご利用のIPアドレスからのSSH(ポート22)を許可するルールを追加します。 - 「起動」を選択します。 - 成功メッセージに表示されるインスタンスIDを保存します。
- RunPulseからAPIキーを作成します。
- インスタンスのパブリックDNSを見つけるには:
- EC2コンソールに移動します。 - インスタンスを選択します。 - 「詳細」タブから「パブリックIPv4 DNS」値をコピーします。
- EC2インスタンスに接続するには、次のSSHコマンドを実行します。YOUR_KEY_FILE.pemを実際のキーペアファイル名に、YOUR_INSTANCE_DNSをステップ4aのパブリックIPv4 DNS値に置き換えます:
ssh -i YOUR_KEY_FILE.pem ec2-user@YOUR_INSTANCE_DNS 例:ssh -i my-keypair.pem [email protected]
- EC2インスタンス上で、aws configureを実行してAWS認証情報を設定します。プロンプトが表示されたら、アクセスキーID、シークレットアクセスキー、リージョン(us-east-1)、出力形式(json)を入力します。
- 次のコマンドを使用して、Pulse APIキーをAWS Secrets Managerに保存します:
aws secretsmanager create-secret --name pulse-api-key --secret-string "your-api-key" ARNをメモしておきます。これは権限ポリシーで必要になります。 注意:AWS CLIバージョン2は、Amazon Linux 2023 AMIにデフォルトでプリインストールされています。
- EC2インスタンスにrunpulse SDKをインストールします。
- pipをインストール:sudo yum install pip - Pulse Python SDKをインストール:pip install pulse-python-sdk
- EC2インスタンス上で、現在の作業ディレクトリにbedrock-trust-policy.jsonというファイルを作成し、以下の設定を記述します。nanoやviなどのテキストエディタを使用できます:
nano bedrock-trust-policy.json bedrock-trust-policy.jsonを作成: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-aws-account-ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock:us-east-1:your-aws-account-ID:model-customization-job/*" } } } ] } bedrock-permissions.jsonを作成: { "Version": "2012-10-17", "Statement": [ { "Sid": "S3AccessForFineTuning", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-bucket-name", "arn:aws:s3:::your-bucket-name/*" ] }, { "Sid": "SecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:your-aws-account-ID:secret:your-secret-name-*" ] } ] }
- 次にロールを作成します:
aws iam create-role --role-name AmazonBedrock-FineTuning-S3-Role --assume-role-policy-document file://bedrock-trust-policy.json --description "Role for Bedrock fine-tuning with S3 and Secrets Manager access" 期待される出力:ロールARN、ID、作成タイムスタンプを含むJSON。次に、
- 権限ポリシーを作成します:
aws iam put-role-policy --role-name AmazonBedrock-FineTuning-S3-Role --policy-name Bedrock-S3-Access-Policy --policy-document file://bedrock-permissions.json
- ロールと信頼ポリシーを表示します:
aws iam get-role --role-name AmazonBedrock-FineTuning-S3-Role
- 参照金融文書からデータセットを抽出するには、EC2インスタンスで次のコマンドを実行します:
# Secrets ManagerからAPIキーを取得します。セキュリティのベストプラクティス:認証情報をハードコードしないでください。AWS Secrets Managerから取得します。 curl -X POST https://api.runpulse.com/extract \ -H "x-api-key: $(aws secretsmanager get-secret-value --secret-id pulse-api-key --query SecretString --output text)" \ -H "Content-Type: application/json" \ -d '{ "file_url": "https://www.impact-bank.com/user/file/dummy_statement.pdf", "figureProcessing": {"description": true}, "extensions": {"altOutputs": {"returnHtml": true}} }' > pulse_output.json Pulse AIサンプル抽出JSONスニペットは省略。
上記の手順により、Pulse AIとAmazon Bedrockを活用した高精度で効率的な文書処理を実現する強力な金融文書処理パイプラインを構築できます。