大型语言模型用于使用 Amazon Redshift ML预览版进行情感分析 大数据博客
利用 Amazon Redshift ML 进行情感分析的大型语言模型
关键要点
Amazon Redshift ML:支持机器学习和人工智能在数据仓库中的集成,简化模型创建和训练的过程。大型语言模型LLM:通过 SageMaker JumpStart 提供,支持多种问题类型,包括情感分析。情感分析步骤:使用 Amazon Redshift ML 对存储在 Redshift 表中的评论进行情感分析,输出情感分类。Amazon Redshift ML 使数据分析师和数据库开发人员能够将机器学习和人工智能的功能集成到他们的数据仓库中。借助这种工具,你可以利用熟悉的 SQL 命令简化机器学习模型的创建、训练和应用。
你可以通过“自带模型”BYOM进一步增强 Amazon Redshift 的推理能力。BYOM 有两种类型:1远程 BYOM用于远程推理,2本地 BYOM用于本地推理。本地 BYOM 允许你利用在 Amazon SageMaker 上训练的模型进行数据库内推理,而远程 BYOM 允许调用 SageMaker 中部署的远程自定义 ML 模型,支持客户流失预测、XGBoost、线性回归、多类别分类,现还支持 LLM。
Amazon SageMaker JumpStart 是一个功能,提供多种预训练的大型语言模型,帮助用户快速开始机器学习工作。你可以直接访问这些预训练模型,或利用自己的数据对其进行增量训练和微调。
在之前的帖子中,Amazon Redshift ML 仅支持接受文本或 CSV 作为输入和输出格式的 BYOM。现在,它已新增对超级数据类型SUPER的支持。借助此支持,人们可以使用 SageMaker JumpStart 中的 LLM,这些模型来自众多不同的模型提供者。
LLM 有多种用例,Amazon Redshift ML 支持 SageMaker 中可用的 LLM 模型,尤其是在情感分析中,模型能够分析产品反馈和文本,从而了解整体情感。这对于理解产品评论和反馈特别有价值。
解决方案概述
在本文中,我们将使用 Amazon Redshift ML 对存储在 Amazon Redshift 表中的评论进行情感分析。模型将评论作为输入,返回情感分类。我们将使用 SageMaker JumpStart 中的现成 LLM。以下是解决方案概览:
操作步骤
以下是使用 Amazon Redshift 与 SageMaker JumpStart 集成来调用 LLM 模型进行情感分析的步骤:
使用 SageMaker JumpStart 中的基础模型部署 LLM 模型并创建端点。利用 Amazon Redshift ML 创建引用 SageMaker JumpStart LLM 端点的模型。创建用户定义函数UDF,为情感分析构建提示。将示例评论数据集加载到 Amazon Redshift 数据仓库中。对 LLM 模型进行远程推理,生成输入数据集的情感分析。分析输出结果。前提条件
进行本次操作,你需具备以下前提条件:
一个 AWS 账户。一个 Amazon Redshift 无服务器预览工作组或 Amazon Redshift 提供的预览集群。请参考 创建预览工作组 或 创建预览集群 的文档。你的 Amazon Redshift 数据仓库应使用 preview2023 跟踪,在以下这些地区:美国东部维吉尼亚北部、美国西部俄勒冈、欧盟爱尔兰、美国东部俄亥俄州、亚太东京或欧盟北部斯德哥尔摩区域。解决方案步骤
按照以下步骤进行操作:
1 使用 SageMaker JumpStart 中的基础模型部署 LLM 模型并创建端点
访问 基础模型 页面。在搜索框中输入 Falcon 7B Instruct BF16 查找相应基础模型。选择 查看模型。在 模型详细信息 页面,选择 在 Studio 中打开笔记本。当 选择域和用户配置 对话框打开时,从下拉菜单中选择你喜欢的配置文件,点击 打开 Studio。当笔记本打开时,将弹出提示 设置笔记本环境。选择 mlg52xlarge 或其他推荐的实例类型,然后选择 选择。滚动到笔记本的 部署 Falcon 模型进行推理 部分并运行该部分的三个单元。第三个单元执行完毕后,展开左侧面板中的 部署 部分,选择 端点 以查看已创建的端点。记下端点 名称,将在后面的步骤中使用。选择完成。2 使用 Amazon Redshift ML 创建引用 SageMaker JumpStart LLM 端点的模型
利用 Amazon Redshift ML 的自带模型BYOM功能创建模型。模型创建后,你可以使用输出函数对 LLM 模型进行远程推理。请按照以下步骤在 Amazon Redshift 中创建指向先前创建的 LLM 端点的模型:
登录 Amazon Redshift 端点,你可以使用 查询编辑器 V2 进行登录。将 此笔记本 导入查询编辑器 V2。该笔记本包含本博客中使用的所有 SQL。确保你已向 IAM 角色添加以下 IAM 策略。用之前捕获的 SageMaker JumpStart 端点名称替换 ltendpointnamegt:
json{ Statement [ { Action sagemakerInvokeEndpoint Effect Allow Resource arnawssagemakerltregiongtltAccountNumbergtendpoint/ltendpointnamegt Principal } ]}
使用以下 CREATE MODEL 语句在 Amazon Redshift 中创建模型。将 ltendpointnamegt 替换为先前捕获的端点名称。模型的输入和输出数据类型需要为 SUPER 类型。
sqlCREATE MODEL falcon7binstructllmmodelFUNCTION falcon7binstructllmmodel(super)RETURNS superSAGEMAKER ltendpointnamegtIAMROLE defaultSETTINGS (MAXBATCHROWS 1 )
3 将示例评论数据集加载到 Amazon Redshift 数据仓库中
在本博客中,我们将使用一个虚构的示例评论数据集进行操作:
使用 查询编辑器 V2 登录 Amazon Redshift。使用以下 SQL 语句创建 samplereviews 表,该表将存储示例评论数据集:
一元机场官网网址sqlCREATE TABLE samplereviews(review varchar(4000))
下载 示例文件,上传到你的 S3 存储桶,然后使用以下 COPY 命令将数据加载到 samplereviews 表中:
sqlCOPY samplereviewsFROM s3//ltltyours3bucketgtgt/samplereviewscsvIAMROLE DEFAULTcsvDELIMITER IGNOREHEADER 1
4 创建 UDF 以构建情感分析提示
LLM 的输入主要由两部分组成:提示和参数。
提示 是你希望给 LLM 的指导或指令。提示需要清晰,以提供适当的背景和方向,帮助生成 AI 系统准确生成响应。构造良好的提示允许生成 AI 提供更细致、高质量且对用户特定需求有帮助的响应。
参数 允许配置和微调模型的输出,包括最大长度、随机程度、停止标准等,具体参数设置依赖于模型。
以下 UDF 将输入的 varchar 数据解析为 SUPERJSON格式以供 LLM 使用。这种灵活性允许你在数据仓库中以 varchar 格式存储数据,而无需执行数据类型转换,使得情感分析的提示构建变得更加容易。如果你想尝试不同的提示,可以简单替换 UDF。
以下 UDF 包含了提示和参数:
提示:“将此句子的情感分类为正面、负面、中立。只返回情感,不要其他”这指示模型将评论分类为 3 种情感类别。参数:“maxnewtokens”1000这允许模型返回最多 1000 个标记。sqlCREATE FUNCTION udfpromptengsentimentanalysis (varchar) returns superstableas select jsonparse( {inputsClassify the sentiment of this sentence as Positive Negative Neutral Return only the sentiment nothing else 1 parameters{maxnewtokens1000}}) language sql
5 对 LLM 模型进行远程推理,生成输入数据集的情感分析
此步骤的输出存储在新创建的表 sentimentanalysisforreviews 中。运行以下 SQL 语句以创建包含 LLM 模型输出的表:
sqlCREATE table sentimentanalysisforreviewsas( SELECT review falcon7binstructllmmodel ( udfpromptengsentimentanalysis(review) ) as sentiment FROM samplereviews)
6 分析输出结果
LLM 的输出数据类型为 SUPER。在 Falcon 模型中,输出存储在名为 generatedtext 的属性中。每个 LLM 的输出负载格式各不相同,具体可参考文档。
运行以下查询以从 LLM 模型的输出中提取情感分析结果。你可以查看每条评论的情感分析结果:
sqlSELECT review sentiment[0]generatedtext varchar as sentiment FROM sentimentanalysisforreviews

资源清理
为避免将来产生费用,请删除所有资源。
在 SageMaker Jumpstart 中删除 LLM 端点。使用以下查询在 Amazon Redshift 中删除 samplereviews 表及模型:sqlDROP MODEL falcon7binstructllmmodelDROP TABLE samplereviewsDROP FUNCTION fngenprompt4sentimentanalysis
如果创建了 Amazon Redshift 端点,也请删除该端点。结论
在本文中,我们展示了如何利用 Falcon在 SageMaker JumpStart 中的一个大型语言模型和 Amazon Redshift ML 对存储在 Amazon Redshift 中的数据进行情感分析。尽管本文以 Falcon 为示例,你也可以使用其他 LLM 模型进行类似操作。情感分析只是 Amazon Redshift ML 提供的 LLM 支持下的众多用例之一,包括数据增强、内容摘要、知识图谱开发等。LLM 支持拓宽了 Amazon Redshift ML 的分析能力,赋能数据分析师和开发者在熟悉 SQL 命令的流程中更好地整合机器学习。
关于作者
Blessing Bamiduro 是 Amazon Redshift 产品管理团队的一员,她帮助客户探索在数据仓库中使用 Amazon Redshift ML 的方案。在空闲时间,Blessing 喜欢旅行和冒险。
Anusha Challa 是一名高级分析解决方案架构师,专注于 Amazon Redshift,帮助许多客户在云端和本地构建大规模数据仓库解决方案。她对数据分析和数据科学充满热情。