金融機構每天處理數千份複雜文檔。金融數據中的光學字符識別(OCR)錯誤可能通過相互關聯的計算傳播,影響分析準確性。雖然標準法律文檔中的單個OCR錯誤可能只需快速手動更正,但金融數據中的同一錯誤可能級聯導致系統分析錯誤,給組織帶來潛在的高額成本。
傳統OCR工具在處理機構日常處理的複雜金融文檔時嚴重不足——資產負債表、損益表、SEC文件、研究報告和審計材料。這些文檔具有複雜的表格結構(含合併單元格和分層數據)、多列布局(含相互引用)以及需要語義理解的上下文相關信息。傳統OCR方法將這些文檔視為圖像,忽略了使金融文檔具有意義的結構關係和上下文細微差別。結果就是一系列手動更正、數據錄入延遲和系統性分析錯誤。
本文演示如何構建一個文檔提取和模型微調管道來解決這些關鍵挑戰。通過結合Pulse AI先進的文檔理解能力與Amazon Bedrock的強大AI服務,組織可以實現企業級精度,並大規模提取上下文相關的金融洞察。Amazon Bedrock提供完全託管的模型定製,零機器學習運維開銷,無需容量規劃的按需部署,而Nova模型系列提供了強大的成本性能比,使團隊能夠專注於創新而非基礎設施。
與傳統單片OCR管道不同,Pulse將視覺語言模型與專門為文檔理解設計的經典ML組件集成,創建了一個智能解決方案,能夠提取具有語義意識的結構化數據,為金融領域模型生成改進的監督微調數據集,並支持部署在特定金融數據上訓練的自定義大型語言模型(LLM)。Pulse已部署在包括三星、Cloudera、Howard Hughes以及財富500強金融機構和領先私募股權公司在內的全球企業中,處理大量金融和運營文檔。
在一次部署中,一批約1000份複雜金融文檔,之前需要多天週轉,現在在不到三小時內處理完成,生成了結構化的、可審計的輸出,可用於下游分析和AI應用。
總結來説,Pulse AI和Amazon Bedrock共同提供:
- Pulse AI從複雜金融文檔中提取結構化、語義感知的數據,處理複雜的表格、多列布局和分層數據。
- Amazon Bedrock在該高質量數據上微調Amazon Nova模型,為組織的金融慣例創建領域特定的智能。
- 然後,自定義模型以組織特定的理解處理新文檔,將手動審查從幾天減少到幾小時。
以下工作流程展示了一種構建由AI驅動的智能金融應用的方法。從原始金融文檔開始,管道編排了一系列複雜步驟——從文檔處理、微調到部署——創建一個為金融數據分析和洞察量身定製的自定義AI解決方案。
系統首先(步驟1)將文檔攝取到您VPC中的Pulse容器或Pulse軟件即服務(SAAS)產品中。Pulse模型處理金融文檔(步驟2)。提取數據的輸出轉換為Amazon Bedrock Nova Micro監督微調格式,然後存儲在Amazon Simple Storage Service(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賬户——需要訪問AWS服務,包括Amazon Bedrock和用於數據集的S3存儲。
- 允許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 Elastic Compute Cloud(Amazon EC2)實例按小時收費。請記住在完成本教程後終止實例以避免持續費用。
- Amazon Linux 2023(最新版)。
- 公開財務報表:https://www.impact-bank.com/user/file/dummy_statement.pdf。
- S3訓練數據存儲桶:s3://<your-bucket-name>/training-data/。
注意:本教程會創建AWS資源併產生費用,包括:EC2實例(按小時)、S3存儲(每GB每月)、Amazon Bedrock微調(每訓練小時)、預置吞吐量部署(按小時)和AWS Secrets Manager(每個密鑰每月)。
逐步實現
按照以下步驟設置和配置使用Pulse AI和Amazon Bedrock的金融文檔處理管道。
- 導航到Pulse控制台並創建一個賬户。
- 使用AWS控制台啓動EC2實例。
- 導航到EC2控制台。 - 選擇啓動實例。 - 在AMI選擇屏幕中,搜索Amazon Linux 2023 AMI。 - 選擇Amazon Linux 2023 AMI。 - 在實例類型屏幕中,選擇t3.medium。 - 創建新的密鑰對用於SSH訪問Linux實例。 - 在安全組配置中,添加一條規則允許從您的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命令行界面(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實現高精度和高效的文檔處理。