成本效益高的文档分类:使用 Amazon Titan 多模态嵌入模型 机器学习博客
使用 Amazon Titan 多模态嵌入模型的经济高效文档分类
作者 Sumit Bhati David Girling George Belsian 和 Ravi Avula 日期 2024年4月11日 发布于 高级 (300)、Amazon Bedrock、Amazon Titan、生成式 AI、技术教程
关键要点
文档分类是智能文档处理IDP系统的重要一步,可以决定后续的处理步骤。Amazon Titan 多模态嵌入模型无需训练即能分类多种文档类型。使用向量嵌入和语义搜索技术,可以实现高效的文档索引和分类。当前,各行各业的组织希望对大量不同格式的文档进行分类和提取见解。手动处理这些文档以进行分类和提取信息不仅成本高昂,而且容易出错,难以扩展。生成式人工智能Generative AI的进步推动了智能文档处理IDP解决方案的发展,它可以自动化文档分类,并创建一个具有成本效益的分类层,能够处理多种非结构化企业文档。
在IDP系统中,文档分类是至关重要的第一步。它帮助你根据文档类型决定下一步的操作。例如,在索赔裁定过程中,应付账款团队会收到发票,而索赔部门则管理合同或保单文档。传统的规则引擎或基于机器学习的分类方法可以对文档进行分类,但往往在文档格式类型和动态新增文档类别的支持上存在限制。更多信息见Amazon Comprehend 文档分类器添加布局支持以提高准确性。
在本篇文章中,我们讨论如何利用Amazon Titan 多模态嵌入模型对任何文档类型进行分类,而无需进行训练。
Amazon Titan 多模态嵌入模型
Amazon 最近在Amazon Bedrock中推出了Titan 多模态嵌入。该模型能够为图像和文本创建嵌入,并可以用于新的文档分类工作流。
它生成针对以图像形式扫描的文档的优化向量表示。通过将视觉和文本组件编码为统一的数值向量,这些向量封装语义意义,从而实现快速索引、高效的上下文搜索和准确的文档分类。
随着新文档模板和类型在业务工作流中不断涌现,用户只需调用Amazon Bedrock API实现动态向量化,并将其添加至IDP系统,从而迅速增强文档分类能力。
解决方案概述
让我们看看使用Amazon Titan多模态嵌入模型的文档分类解决方案。为了获得最佳性能,您应根据特定用例和现有IDP管道设置自定义解决方案。
该解决方案通过语义搜索和向量嵌入来分类文档,通过将输入文档与已建立索引的文档库进行匹配。我们使用以下关键组件:
组件描述嵌入嵌入是机器学习ML和人工智能系统用于理解复杂知识领域的数值表示。向量数据库向量数据库用于存储嵌入,高效地索引和组织嵌入,使基于距离度量如欧几里得距离或余弦相似度快速检索相似向量成为可能。语义搜索语义搜索通过考虑输入查询的上下文和意义及其与内容的相关性来工作。向量嵌入是有效捕捉和保留文本和图像的上下文含义的方式。在我们的解决方案中,当应用程序希望执行语义搜索时,首先将搜索文档转换为嵌入。然后,向量数据库查询相关内容,以查找最相似的嵌入。在标记过程中,将一组典型的业务文档如发票、银行对账单或处方使用Amazon Titan多模态嵌入模型转换为嵌入,并根据预定义标签存储在向量数据库中。Amazon Titan多模态嵌入模型采用欧几里得L2算法进行训练,因此使用的向量数据库应支持该算法。
下图说明了如何使用Amazon Titan多模态嵌入模型与存储在 Amazon S3 桶中的文档进行图像库的创建。
当需要对新文档进行分类时,使用相同的嵌入模型将查询文档转换为嵌入。然后,在向量数据库中使用查询嵌入进行语义相似性搜索。检索到的与最佳嵌入匹配的标签将是查询文档的分类标签。
我们来看下一个架构图,说明如何在S3桶中使用Amazon Titan多模态嵌入模型进行文档分类。
该工作流程包括以下步骤:
需要分类的文档上传至输入S3桶。分类Lambda函数收到Amazon S3对象通知。Lambda函数通过调用Amazon Bedrock API将图像转换为嵌入。使用语义搜索在向量数据库中查找匹配的文档。所匹配文档的分类用于对输入文档进行分类。使用从向量数据库搜索获得的分类,将输入文档移动到目标S3目录或前缀。
为了帮助您使用自己的文档测试该解决方案,我们在GitHub上创建了一个示例Python Jupyter Notebook。
exp加速器下载先决条件
要运行该笔记本,您需要一个具有适当AWS 身份与访问管理IAM权限的AWS 账号,以调用Amazon Bedrock。此外,请确保在模型访问页面上授予对Amazon Titan多模态嵌入模型的访问权限。
实施步骤
在以下步骤中,用您自己的信息替换每个用户输入占位符:
创建向量数据库。在此解决方案中,我们使用内存中的FAISS数据库,但您也可以使用其他向量数据库。Amazon Titan的默认维度大小为1024。
pythonindex = faissIndexFlatL2(1024)indexIDMap = faissIndexIDMap(index)
创建向量数据库后,遍历示例文档,为每个文档生成嵌入并将其存储到向量数据库中。
使用您的文档进行测试。用您自己的已知文档类型的文件夹替换以下代码中的文件夹:
pythonDOCCLASSES list[str] = [Closing Disclosure Invoices Social Security Card W4 Bank Statement]
getDocumentsandIndex(sampleGallery/ClosingDisclosure DOCCLASSESindex(Closing Disclosure))getDocumentsandIndex(sampleGallery/Invoices DOCCLASSESindex(Invoices))getDocumentsandIndex(sampleGallery/SSCards DOCCLASSESindex(Social Security Card))getDocumentsandIndex(sampleGallery/W4 DOCCLASSESindex(W4))getDocumentsandIndex(sampleGallery/BankStatements DOCCLASSESindex(Bank Statement))
使用Boto3库调用Amazon Bedrock。变量inputImageB64是表示文档的Base64编码字节数组。Amazon Bedrock的响应包含嵌入。
pythonbedrock = boto3client( servicename=bedrockruntime regionname=Region’)
requestbody = {}requestbody[inputText] = None # 不使用任何文本requestbody[inputImage] = inputImageB64body = jsondumps(requestbody)response = bedrockinvokemodel( body=body modelId=amazontitanembedimagev1 accept=application/json contentType=application/json)responsebody = jsonloads(responseget(body)read())
将嵌入添加到向量数据库,同时使用代表已知文档类型的类ID:
pythonindexIDMapaddwithids(embeddings classID)
向量数据库中填充了图像表示我们的图库后,您可以与新文档发现相似之处。例如,以下是搜索时使用的语法。k=1告知FAISS仅返回最佳匹配。
pythonindexIDMapsearch(embeddings k=1)
此外,返回的还有此图像和找到的图像之间的欧几里得L2距离值。如果图像完全匹配,则该值为0。这个值越大,图像之间的相似度就越低。
额外考虑事项
在本节中,我们讨论了一些有效使用该解决方案的额外考虑事项,包括数据隐私、安全性、与现有系统的集成以及成本估算。
数据隐私和安全性
AWS共享责任模型适用于Amazon Bedrock的数据保护。根据该模型,AWS负责保护在AWS云运行的全球基础设施。客户负责维护对其托管在该基础设施上的内容的控制。作为客户,您有责任配置和管理所使用的AWS服务的安全性任务。
Amazon Bedrock中的数据保护
Amazon Bedrock避免使用客户提示和续订来训练AWS模型或分享给第三方。Amazon Bedrock不会在其服务日志中存储或记录客户数据。模型提供者无法访问Amazon Bedrock的日志或客户的提示和续订。因此,通过Amazon Titan多模态嵌入模型生成嵌入所使用的图像不会被存储或用于训练AWS模型或者外部传播。此外,其他使用数据,例如时间戳和记录的账户ID,也不被纳入模型训练。
与现有系统集成
Amazon Titan多模态嵌入模型使用欧几里得L2算法进行训练,因此使用的向量数据库应该与该算法兼容。
成本估计
在撰写本文时,按照Amazon Bedrock定价的规定,使用Amazon Titan多模态嵌入模型时,以下是该解决方案的预计费用基于按需定价:
一次性索引成本 假设索引1000幅图像的图库,费006。分类成本 每月为100000幅输入图像的费用为6。清理
为避免未来产生费用,请在不使用时删除您创建的资源,例如Amazon SageMaker笔记本实例。
结论
在本文中,我们探讨了如何使用Amazon Titan多模态嵌入模型在IDP工作流程中构建一个经济高效的文档分类解决方案。我们展示了如何创建已知文档的图像库,并与新文档执行相似性搜索以对其进行分类。同时讨论了使用多模态图像嵌入进行文档分类的好处,包括处理多种文档类型、可扩展性和低延迟。
随着新的文档模板和类型在业务工作流程中不断出现,开发人员可以动态调用Amazon Bedrock API进行向量化,并将其快速添加到IDP系统中,迅速提升文档分类能力。这将创建一个低成本的、无限可扩展的分类层,能够处理各种复杂的非结构化企业文档。
总的来说,本文提供了一条路线图,用于使用Amazon Titan多模态嵌入构建经济高效的文档分类解决方案。
如需进一步了解,请查阅什么是Amazon Bedrock以开始使用该服务。并关注AWS机器学习博客上的Amazon Bedrock以获取有关新功能和用例的最新信息。
关于作者
Sumit Bhati 是AWS的高级客户解决方案经理,专注于加速企业客户的云迁移之旅。他致力于协助客户完成云采用的每个阶段,从加速迁移到现代化工作负载和促进创新实践集成。
David Girling 是一位拥有超过20年经验的高级AI/ML解决方案架构师,在设计、领导和开发企业系统方面积累了丰富经验。他是一个专业团队的成员,该团队专注于帮助客户学习、创新并利用这些高效服务与数据配合以满足他们的使用案例。
Ravi Avula 是AWS的高级解决方案架构师,专注于企业架构。Ravi在软件工程方面有20年的经验,并曾在软件工程和软件架构方面担任多个领导职位,涵盖支付行业。
George Belsian 是AWS的高级云应用架构师。他热衷于帮助客户加速现代化和云采用之旅。在当前角色中,George与客户团队合作,制定战略、架构和开发创新、可扩展的解决方案。
标签 Amazon机器学习,生成式AI
通过在 AWS IAM 身份中心、AWS Lake Formation 和 Amazon S3 访问
优化企业用户的数据湖访问控制:使用 AWS IAM 身份中心、AWS Lake Formation 和 Amazon S3 存取授权进行可信身份传递作者:Shoukat Ghouse,2024年5月29日进阶学习 Amazon Athena Amazon QuickSight Amazon S3 A...
宣布 QuickSight Arena:免费探索 Amazon QuickSight 并展示您的仪表
介绍 QuickSight Arena:免费探索 Amazon QuickSight 并展示您的仪表盘作者:Arun Santhosh 和 Kristin Mandia 日期:2024年1月19日关键要点在这篇文章中,我们将介绍 QuickSight Arena,这是一个嵌入式的 Amazon Qu...