目录
- 前言
- Amazon Bedrock关于OCR解决方案
- Amazon Bedrock进行OCR关键信息提取方案
- 注册亚马逊账号
- API调用
- 环境搭建
- 总结
前言
大语言模型是一种基于神经网络的自然语言处理技术,它能够学习和预测自然语言文本中的规律和模式,可以理解和生成自然语言的人工智能程序。在大型语言模型中,神经网络模型可以通过学习大量的语言数据,自动提取自然语言文本中的特征和模式,以实现自然语言的理解和生成。
OCR技术(Optical Character Recognition)是一种广泛应用的人工智能技术,在大语言模型基础上,能够从文档或图像中提取文本、手写字和数据。亚马逊云科技的方案可以在OCR识别出文字的基础上,进一步进行智能的实体识别与关系抽取,形成知识标签,支持风控、营销、推荐等业务产品的开发,并可引入图神经网络算法模型,走进更多的业务场景当中。
Amazon Bedrock关于OCR解决方案
在处理OCR相关问题时,亚马逊云科技提供了多种产品和解决方案,其中包括:
-
Amazon Textract: 这是一项机器学习服务,可以自动从各种文档或图像中提取文本、手写文字和数据。通过Amazon Textract的AnalyzeDocument API,您可以提取表格结构,使其能够自动识别和提取文档中的表格信息。
-
Amazon Rekognition: 这是一项功能强大的图像和视频分析服务,专门用于处理真实世界的图像,而不仅仅是文档图像。它支持多种拉丁语言的书写体文本和数字,还能够识别不同字体、样式、方向以及背景中的文本,包括横幅和海报上的文本。
-
Amazon AI Solution Kit: 这提供了一系列云上AI功能,包括多语言高级文字识别、自然语言理解、通用物体识别、图像超分辨率、图片相似度、人像分割等。特别是在简体中文语言识别方面提供了增强的能力。
通过使用这三种亚马逊云科技的OCR产品和解决方案,您可以有效解决一些OCR技术的挑战,如文字质量低、手写文字识别等问题。特别是Amazon Textract支持多种文件格式,包括JPG、PNG和PDF,还能够处理扫描文档和手机拍摄的图像。除了提取文档中的内容,包括表格和表单字段等结构化数据,Amazon Textract还可以分析发票、收据或身份证等相关数据,同时保护个人隐私信息(PII)。
然而,在处理OCR内容提取时,文档的格式可能不固定,还需要上下文语义理解,仅仅依靠OCR技术无法完全解决这些问题。因此,在这种情况下,引入大型语言模型可以有助于克服这些局限性,加速文本内容的准确提取。这种综合使用OCR技术和大语言模型可以提高信息提取的精确度和效率。
Amazon Bedrock进行OCR关键信息提取方案
Amazon Bedrock 是一项完全托管的服务,使用单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先人工智能公司的高性能基础模型(FM),以及构建生成式人工智能应用程序所需的一系列广泛功能,在维护隐私和安全的同时简化开发。借助 Amazon Bedrock 的全面功能,您可以轻松尝试各种热门 FM,使用微调和检索增强生成(RAG)等技术利用您的数据对其进行私人定制,并创建可执行复杂业务任务(从预订旅行和处理保险索赔到制作广告活动和管理库存)的托管代理,所有这些都无需编写任何代码。由于 Amazon Bedrock 是无服务器的,因此您无需管理任何基础设施,并且可以使用已经熟悉的 AWS 服务将生成式人工智能功能安全地集成和部署到您的应用程序中。
解决方案架构如下:
其具有以下特点:
-
1、从多种基础模型中进行选择
-您可以访问来自 Amazon 和其他领先人工智能公司(例如 AI21 Labs、Anthropic、Cohere、Meta 和 Stability AI)的多种基础模型,并在试验环境中快速试验它们。这一系列基础模型包括 Amazon Titan、Jurassic-2、Claude 2、Command、Llama 2 和 Stable Diffusion XL,它们分别支持文本、嵌入和图像等不同模式。
-
2、专属定制基础模型
使用 Amazon Bedrock 控制台,无需编写代码,您就可以利用您的数据对模型进行微调,以完成公司的特定任务。只需选择存储在 Amazon Simple Storage Service(Amazon S3)中的训练和验证数据集,并在需要时调整超参数,即可实现可能的最佳模型性能。
3、单一 API
无论选择哪种模型,您都可以使用单一 API 进行推理。通过单一 API,您可以灵活地使用来自不同模型提供商的不同模型,并且只需对代码做出最少的更改,即可与最新的模型版本保持同步。
注册亚马逊账号
首先需要先注册亚马逊云科技账号。可以通过上面的链接到官网进行注册。
重要说明:申请 Amazon 必须持有一张信用,比如万事达、运通卡、VISA卡
1、登录亚马逊云科技网址,点击右上角的登录控制台
。然后选择创建新 Amazon账号
2、按照提示填写邮件地址
与账户名称
后点击验证电子邮件地址
。
3、查看邮箱中的验证码
4、输入验证码,点击验证
5、验证通过后输入根用户密码
两次后并点击继续
。
6、按照提示输入联系人信息后并点击继续
,所有信息不能用中文,拼音可以。
5、输入信用卡信息后点击继续
,万事达、运通卡、VISA卡都可以。
6、确认身份信息后点击继续
,中国地区代码+86。
7、输入短信验证码后继续
。
8、选择支持计划,选第一个基本支持 – 免费
的即可。
API调用
API Gateway是由Amazon提供的服务,用于创建、发布、维护、监控和保护REST、HTTP和WebSocket API。它充当基于Web的应用程序的入口点,能够接收传入的Web请求,并将其转发给Lambda函数、Amazon服务或HTTP端点进行事件处理。在这个方案中,API Gateway负责管理和验证API密钥,以及根据请求触发Lambda函数。
Lambda是Amazon提供的一项服务,它允许您运行无需服务器的函数代码。在这个方案中,Lambda负责处理Amazon Bedrock的验证过程,以确保请求的合法性,并负责转换请求和响应体,以便与Amazon Bedrock进行交互。
具体来说,API Gateway充当了整个系统的前端入口,它接收外部请求并根据API密钥验证请求的合法性。一旦请求被验证通过,API Gateway会将请求转发给Lambda函数,Lambda函数负责与Amazon Bedrock进行通信,执行验证操作,并将请求转发给Amazon Bedrock。Amazon Bedrock会执行相应的操作,并将结果返回给Lambda函数,然后Lambda函数将结果转换为适当的响应体,并将其发送回API Gateway。最后,API Gateway将响应发送回给客户端,完成整个请求-响应过程。
这个体系结构允许构建一个强大的、可伸缩的生成性AI应用程序,它通过API Gateway提供了安全的入口点,通过Lambda函数处理请求和响应的转换,以及与Amazon Bedrock进行集成,从而实现了生成性AI应用程序的验证和处理。
环境搭建
由于需要构建运行在 X86_64 架构下的 Lambda 函数,我们使用 Amazon Cloud9 这个 亚马逊云科技的云端 IDE,配合 X86_64 的机型,例如 m6i.2xlarge 来作为我们的开发环境。
打开 Cloud9 后我们首先关闭 Amazon managed temporary credentials,防止在与 Amazon 交互过程中使用 EC2 上挂钩的 IAM Role,然后在 terminal 中执行 Amazon configure 配置开发环境用到的 IAM User。
使用 Conda 创建一个 Python 的虚拟环境
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
sudo ./Miniconda3-latest-Linux-x86_64.sh
重启 terminal 后执行
conda create -n py310 python=3.10
conda activate py310
由于 Amazon Bedrock 目前在预览阶段,仍需要特定版本的 Boto3 SDK,因此需要进行下载安装。创建 download-dependencies.sh 并加入以下内容
#!/bin/shecho "Creating directory"
mkdir -p ./dependencies && \
cd ./dependencies && \
echo "Downloading dependencies"
curl -sS https://preview.documentation.bedrock.aws.dev/Documentation/SDK/bedrock-python-sdk.zip > sdk.zip && \
echo "Unpacking dependencies"
unzip sdk.zip && \
rm sdk.zip
安装上述依赖
pip install ./dependencies/botocore-1.29.162-py3-none-any.whl --force-reinstall
pip install ./dependencies/boto3-1.26.162-py3-none-any.whl --force-reinstall
pip install ./dependencies/awscli-1.27.162-py3-none-any.whl PyYAML==5.3.1 --force-reinstall
环境安装完成就可以正常使用了
总结
通过结合OCR技术和大语言模型,可以有效解决OCR技术在文字质量低、手写文字识别等问题上的局限性,提高信息提取的精确度和效率。亚马逊云科技官网提供了全面的OCR产品和解决方案,支持从文档和图像中提取文本、手写文字和数据,并结合大语言模型进行智能的实体识别与关系抽取,支持多种业务场景。