作者 Jeeri Deka David John Chakram Dhinesh Raja M (2023年11月02日)
生成人工智能Generative AI是一种设计用来生成内容,包括文本、图像、视频和音乐的人工智能技术。在当今商业环境中,利用生成AI的潜力对企业保持竞争力至关重要。
基础模型是生成AI的一种形式,它可以根据一个或多个输入提示生成输出,通常以人类语言的指令形式呈现。基础模型旨在学习语言中的模式及其关系,并利用这些知识执行多种任务,例如生成文本、翻译语言和回答问题。大型语言模型(LLMs) 是在大规模数据上预训练的深度学习模型,能够灵活地用于生成文本、聊天机器人、文本摘要、图像生成和自然语言处理等多种任务。
由于组织大部分数据存储在关系数据库中,因此利用生成AI基础模型增强这些数据集,提高最终用户体验并创造新产品是非常必要的。本文将探讨如何使用Amazon Aurora MySQL兼容版和Amazon SageMaker JumpStart构建生成AI驱动的案例助理应用程序,以快速总结案例记录。
案例总结是自然语言处理NLP中的一项任务,旨在将大量文本数据如客户支持对话或服务单浓缩成简洁且有意义的摘要。客户支持代理在为客户提供服务之前需花费相当多的时间审查案例记录,当支持案例从一个代理转交给另一个代理时,等待时间会更长。我们将讨论如何利用Amazon Aurora帮助客户支持代理提供案例记录的摘要,并识别基于先前对话的客户情感。所提方案能帮助客户支持代理更快地响应客户查询并提升客户体验。
以下是如何通过Aurora与其他AWS ML服务集成,构建生成AI应用程序以补充存储在关系数据库中的数据的两个场景:
首先,如何使用Aurora的ML集成功能调用托管在SageMaker Jumpstart中的基础模型,来总结存储在Aurora数据库中的案例记录。其次,如何根据存储在Aurora中的案例记录和反馈分析情感。我们将使用Amazon Comprehend进行情感分析,Aurora ML与其集成以从文本数据中获取情感洞察。本文旨在提供如何将Aurora与SageMaker Jumpstart和Amazon Comprehend结合,生成可操作的洞察,提升数据质量,并为用户提供更好体验的见解。
所提出的解决方案基于以下关键组件:
组件描述AuroraAurora 是为云构建的关系数据库管理系统(RDBMS),与 MySQL 和 PostgreSQL 兼容。Aurora 以十分之一的成本提供商业级数据库的性能和可用性。Aurora ML 使您能够通过熟悉的 SQL 编程语言调用各种 ML 算法,包括 ML 预测、生成AI和情感分析。Amazon ComprehendAmazon Comprehend 是一项使用机器学习的自然语言处理(NLP)服务,用于从文本中提取洞察。SageMakerAmazon SageMaker 使您能够快速构建、训练和部署自定义机器学习模型。SageMaker JumpStartSageMaker JumpStart 提供了一个 ML 中心,您可以在其中探索、训练和部署各种可公开获得的基础模型。我们的案例总结用例主要关注有效总结案例记录中的关键洞察、问题或解决方案,使支持团队、管理者和利益相关者能够快速理解和采取行动。本文将解释如何逐个或批量生成案例摘要。以下是基于这两种方法的优缺点:
按需摘要 当同一客户打开新案例或与支持部门互动时,此方案会总结先前的客户支持对话。客户支持代理可以实时请求案例记录的摘要,并在几秒钟内生成简明摘要。这使得代理能够更快、更直接地响应,并更好地理解客户的情感。批量摘要 此方案定期从Aurora数据库中批量总结大量历史数据或提前记录的对话。摘要结果存储在Aurora数据库中,以便在需要时以最快的响应时间提供查询结果。批处理能力提供了更高的性能和更低的成本,因为它将批量信息处理为一次调用,而不是以实时调用的形式进行多次调用。通过在非高峰时段预计算响应,移除了对ML API的运行时间依赖,并为请求案例摘要的客户支持代理提供了更快的响应时间。您可以根据业务需求和操作需要选择设计模式。这些技术可以适应客户支持、服务单管理和其他基于文本摘要的用例。
以下解决方案架构展示了生成案例记录摘要的按需实时技术。
让我们探讨每个组件如何为解决方案做出贡献:
客户支持代理称为用户希望查看即将到来的支持案例的摘要,并生成基于案例记录和用户提供反馈的情感分析。在前端应用程序中,用户选择或输入相关的案例ID并选择SageMaker JumpStart Summary。应用程序在Aurora上运行SQL查询,调用Aurora ML函数,并提供存储在Aurora中的所选案例ID的案例记录和附加详细信息。Aurora调用SageMaker端点,使用A1 21 Summarize 第三方模型生成案例记录的摘要。用户然后请求情感分析。Aurora ML通过调用Amazon Comprehend生成基于案例记录和反馈的情感分析。在步骤5和6中,Aurora将总结的案例信息和情感分析作为适当的响应返回给用户,通过前端应用程序显示。您可以在GitHub仓库找到该解决方案。
完成以下先决条件步骤:
在私有子网中设置Aurora集群。Aurora ML支持Amazon Aurora MySQL 207及更高版本和PostgreSQL 119及更高版本。请参考Aurora机器学习获取各个区域Aurora MySQL和Aurora PostgreSQL支持的Aurora ML功能的详细清单。在公共子网中设置Amazon Elastic Compute Cloud (Amazon EC2)实例,该实例将作为前端并能够访问数据库。有关说明,请参见教程:开始使用Amazon EC2 Linux实例。为应用程序创建AWS Secrets Manager数据库密钥以访问Aurora。有关说明,请参见创建AWS Secrets Manager数据库密钥。EC2实例将需要访问Aurora集群和Secrets Manager。请参考为AWS服务创建角色以委派权限中的步骤创建一个AWS身份与访问管理 (IAM)角色,并附加特定策略以授予对Aurora集群和Secrets Manager的访问权限。创建SageMaker域。要运行此示例应用程序,您需要访问SageMaker JumpStart AI21 Summarize基础模型。通过SageMaker控制台请求访问基础模型。
该解决方案会产生费用。请参阅Amazon Aurora定价、Amazon Comprehend定价和Amazon SageMaker定价以获取更多信息。
Aurora ML支持通过文本或CSV内容类型调用SageMaker端点。由于某些LLMs使用其他内容类型例如应用程序或JSON,因此在设置过程中我们需要根据模型期望的格式编辑默认部署。如果使用来自AWS Marketplace或AI21、Anthropic等的第三方模型,则需要部署一个代理实例,将内容类型转换为模型期望的适当格式。
要通过Amazon SageMaker Studio部署AI21 Summarize端点,请按照以下步骤操作:
在SageMaker控制台,导航到Jumpstart基础模型。搜索“AI21 Summarize”并选择查看模型。在模型详情页面点击订阅。选择在Studio中打开笔记本。指定SageMaker Studio的详细信息并选择打开。运行笔记本中的所有单元以部署名为summarize的模型端点。按照以下步骤部署代理端点:
在SageMaker Studio中打开[notebook](https//githubcom/awssamples/textsummarizationusingamazonaurorapgandamazonsagemaker/blob/main/Notebooks/AI21summaryInference/AI21Summarizationbrokerendpointdeployipynb)。运行笔记本中的单元。这将创建名为auroramlsum的端点。
记录下端点的Amazon资源名称ARN。完成以下步骤以设置Aurora ML:
创建两个IAM角色,以便Aurora访问SageMaker端点和Amazon Comprehend。在Aurora集群的连接与安全选项卡中,选择管理IAM角色以将IAM角色分配给Aurora集群。使用Aurora集群的DB参数组更新awsdefaultsagemakerrole和awsdefaultcomprehendrole以使用SageMaker ARN端点和Amazon Comprehend分别进行配置。授予数据库用户对Aurora ML的访问权限。有关说明,请参见授予数据库用户对Aurora机器学习的访问权限。按照设置Aurora MySQL DB集群以使用SageMaker和设置Aurora MySQL DB集群以使用Amazon Comprehend中的步骤访问SageMaker ARN端点和Amazon Comprehend。我们生成了一些示例案例摘要数据。您可以根据需要使用自己的数据集。如果您使用的是不同表名的数据集,请确保在SQL查询中相应地更改表名。在此部分中,我们详细说明授予Amazon Aurora MySQL访问Amazon简单存储服务 (Amazon S3),导入数据,创建Aurora ML函数并运行数据库查询以验证Aurora ML集成的步骤。
完成以下步骤以授予Amazon Aurora MySQL对Amazon S3的访问:
创建一个S3存储桶,并将以下[folder](https//githubcom/awssamples/textsummarizationusingamazonaurorapgandamazonsagemaker/tree/main/Database)上传到该存储桶。该文件夹包含示例数据集。
记下S3存储桶的ARN。使用ARN授予Amazon Aurora MySQL对S3存储桶的访问。有关说明,请参见从Amazon S3存储桶的文本文件加载数据到Amazon Aurora MySQL DB集群中。完成以下步骤以导入数据:
登录到您的Amazon Aurora MySQL数据库。在数据库中运行SQL查询以创建表。表的定义在GitHub[file](https//githubcom/awssamples/textsummarizationusingamazonaurorapgandamazonsagemaker/blob/main/Database/schematxt)中提供。使用以下命令从S3存储桶加载数据在S3端点中提供存储桶名称和表名称:
sqlLOAD DATA FROM S3 s3//ltbucket namegt/lttableNamegttxtINTO TABLE lttableNamegtCOLUMNS TERMINATED BY LINES TERMINATED BY nIGNORE 1 LINES
免费加速器15分钟试用您需要运行上述命令五次,每次针对五个表([CaseSummarization](https//githubcom/awssamples/textsummarisationusingamazonaurorapgandamazonsagemaker/blob/main/Database/CaseSummarizationtxt)、[CaseOwnerDetails](https//githubcom/awssamples/textsummarisationusingamazonaurorapgandamazonsagemaker/blob/main/Database/CaseOwnerDetailstxt)、[CategoryTypeDetails](https//githubcom/awssamples/textsummarisationusingamazonaurorapgandamazonsagemaker/blob/main/Database/CategoryTypeDetailstxt)、[RequestorDetails](https//githubcom/awssamples/textsummarisationusingamazonaurorapgandamazonsagemaker/blob/main/Database/RequestorDetailstxt)、[ServiceNameDetails](https//githubcom/awssamples/textsummarisationusingamazonaurorapgandamazonsagemaker/blob/main/Database/ServiceNameDetailstxt)) 在Amazon Aurora MySQL的表定义中提到。
要验证数据是否已成功加载到表中,使用以下命令:
sqlSELECT count () FROM lttableNamegt
接下来,我们创建一个Aurora函数,以调用SageMaker端点。在以下定义中,我们创建一个Aurora ML函数,并将其配置为托管AI21基础模型的SageMaker端点:
sqlCREATE FUNCTION CaseSummarizeAI21(CaseID VARCHAR (50) Subject VARCHAR (255)ServiceName VARCHAR (255)CaseNotes VARCHAR (2000)Priority INT Feedback VARCHAR (2000)) RETURNS varchar (5000)CHARSET utf8mb4 alias awssagemakerinvokeendpoint endpoint name auroramlsum
使用以下查询验证Aurora ML集成是否正确设置:
实时总结案例记录,使用部署在Amazon SageMaker上的AI21 Summarize基础模型:

sqlSELECT caCaseID CaseSummarizeAI21( caCaseID caSubject snServiceName caCaseNotes caPriority caFeedback) as CaseSummaryAI21 FROM CaseSummarization ca JOIN ServiceNameDetails sn ON caServiceNameID=snServiceNameID WHERE caCaseID=CAS02
使用AI21进行总结,并通过Amazon Comprehend进行情感分析:
sqlSELECT caCaseID CaseSummarizeAI21( caCaseID caSubject snServiceName caCaseNotes caPriority caFeedback) as CaseSummaryAI21 awscomprehenddetectsentiment(cafeedback en) as Sentiment FROM CaseSummarization ca JOIN ServiceNameDetails sn ON caServiceNameID=snServiceNameID WHERE caCaseID=CAS01
使用部署在Amazon SageMaker上的AI21 Summarize基础模型存储摘要的案例记录:
sqlUPDATE CaseSummarization caINNER JOIN ServiceNameDetails sn ON caServiceNameID = sn
电话:13594780107
联系人:周经理
邮箱:addictive@hotmail.com
网址:https://www.ghcyd.com
地址:泉州市刊舌入口209号