洞察客户 —— 用 Amazon Bedrock 与 Nova 大模型构建客户之声解决方案

一、 前言

1、实验内容

本实验中,我们将带你深入探索 2024 亚马逊云科技 re:Invent 上发布更新的明星生成式AI产品——Amazon BedrockNova 家族系列大模型的强大功能。你将亲身体验如何运用这些前沿技术,轻松构建并优化客户之声(Voice of Customers)解决方案。让我们一起开启多模态沉浸式体验,掌握 Prompt Engineering 的艺术,一键完成多维标签 Embedding,利用 RAG 技术提升 VoC  分类效率,定制你的客户之声分析报告并最终构建智能客户之声回复助手。

2、手册内容

本手册的内容包括:

  • Amazon Bedrock Nova 新模型新体验,多模态沉浸式体验
  • 利用 Prompt Engineering 完成客户之声(VoC)分类
  • 多维标签一键完成 Embedding
  • Amazon Bedrock RAG 技术赋能VoC分类
  • 定制化客户之声(VoC)分析报告

二、环境准备

进入环境:

点击 “开始实验” 按钮,即可扫码进入实验环境。测试账号有效期仅为一天,过期后系统将自动回收清理,请不要上传您的重要数据。

同时,点击“立即注册”按钮,即可免费注册属于你的亚马逊云科技海外区账号,开启个性化的系统构建之旅,进一步探索更广泛、更深入的云服务领域并保留实验中构建的系统应用,尽情享受云上构建的无限可能!

如果您在自己的亚马逊云科技账户上进行实验,请务必在实验完成后根据清理资源板块部分的说明删除和关闭所有实验资源,以避免产生不必要的费用。

扫码登陆:

填写邮箱:

如果您之前没有填写过邮箱,则需要填写一下邮箱,并勾选隐私协议,点击前往实验,及可进入实验室

地区确认:

注意: Amazon 地区请选择弗吉尼亚北部(us-east-1),请检查确认所在地区是否为 us-east-1

三、实验1:Amazon Bedrock Nova 初体验

1、Amazon Nova 简介

Amazon Nova 是亚马逊云科技推出的新一代基础模型(Foundation Models),它们代表了前沿的智能技术,并提供了行业领先的性价比。Nova 系列包括多个模型,覆盖了文本、图像和视频生成等多个领域。具体来说,Amazon Nova 系列包含六个模型,其中四个专注于文本处理,分别是 MicroLiteProPremier,另外两个则是面向创意内容生成的 CanvasReel 模型。

Amazon Nova Micro:这是一个纯文本模型,以超低延迟为特点,能够快速完成文本总结、翻译等基础任务。

Amazon Nova Lite:扩展了功能,不仅能处理文本,还可以理解图像和视频输入,适合进行文档分析和客户互动等场景。

Amazon Nova Pro:在多模态处理能力的基础上,实现了“精确度、速度和成本的最佳平衡”,被定义为“全能选手”。

Amazon Nova PremierNova 系列的旗舰版本,计划于 2025 年初推出,将专注于处理复杂推理任务,并能够作为“教师模型”来训练定制化模型。

Amazon Nova Canvas 和  Amazon Nova Reel:这两个模型分别用于生成高质量的图像和视频内容。

Amazon Nova 系列模型与 Amazon 基础设施的无缝集成是其一大特点,通过 Amazon Bedrock 平台,企业可以直接对这些模型进行微调和知识蒸馏,使其更好地适应特定的业务需求。此外,Nova 系列在检索增强生成方面表现出色,能够基于组织的特定数据来提升输出的可靠性。

2、利用 Amazon Nova Pro 生成客户之声

访问 Bedrock,选择 Chat/Text,选择 Amazon Nova Pro 模型,具体操作如下:

在文生文功能中,可以测试 Amazon Nova 生成不同风格和主题的文本内容。通过精心设计的提示词,模型展现出卓越的语言理解和生成能力,例如:

客户之声是什么?

3、利用 Amazon Nova Canvas 生成为客户之声图像

文生图是 Amazon Nova 的一大亮点,这项技术通过结合先进的机器学习算法和深度神经网络模型,将非结构化的客户反馈转化为视觉上吸引人的图像。

访问 Bedrock,选择 Image/Video,选择 Amazon Canvas 模型,具体操作如下:

根据以下提示词生成图片。注意:AI 生成具有随机性,不一定每次生成结果都一致。

Voice of the Customer (VOC) is a systematic method for collecting, analyzing and understanding customer feedback, opinions and expectations. Generate a logo for the Voice of the Customer system.

4、Amazon Nova Pro 图像分析

图像和视频分析是 Amazon Bedrock 平台中模型的核心技术之一,它们不仅用于生成高质量的静态图像和动态视频,还在理解和优化这些内容方面发挥着关键作用。

访问 Bedrock,选择 Chat/Text,选择 Amazon Nova Pro 模型,具体操作如下:

将以下图片保存到本地,命名为 voc.png,请求 Amazon Bedrock Nova 生成总结,测试模型的理解和概括能力,具体操作如下。

注意:不支持文档名称为中文格式,请修改为数字或字母。

请帮我总结这个图片内容,它想表达什么意思?

四、实验2:基于 Amazon Bedrock Nova 模型进行客户声音分类

1、环境准备

在开始进行实验之前,我们需要了解如何使用实验开发环境。本实验的开发环境部署在基于 Amazon LinuxEC2 实例上,您将通过浏览器来访问这台实例上的[Code Server]来进行实验的操作,实验相关的工具已经安装在该服务器上。

进入 Code Server 云上开发环境

在控制台左上方“服务”中选择并进入"EC2" - 并选择左侧"实例",将目前处于”已停止“的实例“启动”,等待启动完成。

注:在步骤一启动 EC2 后,需要大约 3 分钟的启动加载时间,在此过程中访问 URL 会出现 “502 Bad Gateway”,稍等三分钟 EC2 加载完成后即可访问。若等待超过 5 分钟仍然遇到无法访问 URL,请联系活动现场工作人员或更换账号体验

点击该实例,选择公有 IPv4 DNS,点击打开地址,即打开 Visual Studio Code Server

注意:请在访问地址时使用 8090 端口,并采用 http 协议,即 http://ec2-44-197-173-215.compute-1.amazonaws.com:8090,而非 https

在对话框中,输入密码:123456,然后选择提交

您现在应该可以看到项目工程文件,如下所示。

激活虚拟环境

进入 vscode 后,打开 Terminal

输入以下命令,激活虚拟环境。

source vocenv/bin/activate

2、使用 Prompt Engineering 对 VoC 进行分类

lab1.py 使用 Amazon BedrockLangChain 开发的客户反馈分类系统。主要流程包括:首先列出可用的 Bedrock 模型,然后创建一个自定义的 ChatModelNova 类来与 Amazon Nova 模型交互;接着使用预定义的系统提示和用户提示,通过 LangChain 构建一个分类链,将用户评论按照预设的类别标签进行自动分类;最后计算分类准确率,并将结果保存到 result_lab_1.csv 文件中。整个过程展示了如何利用大语言模型进行自动化的文本分类任务。

点击文件名为 lab1.py 的文件,实验代码已准备就绪,每一部分代码都有相关解释。

在激活虚拟环境后,在 Terminal 中执行命令 python lab1.py,输出绿色的迭代训练过程、 accuracy 和文件result_lab_1.csv,表示执行成功。

代码解释1:这段代码通过使用 LangChain 初始化 Bedrock 模型,帮助我们筛选出 Amazon Bedrock 目前支持的模型。

代码解释2:在此步骤中,我们定义了一个LangChain ChatModel 类,来测试亚马逊云科技的基础模型,帮助我们实现 Amazon Bedrock Nova 模型调用,无需关注调用过程。

代码解释3:在这一步,我们准备了待分类的数据集,加载客户评论,并打印出数据集中的所有类别。定义了系统和用户提示模板,并构建了LangChain提示链。我们将数据集中的“评论”列转换成结构化数据数组,每个元素包含索引和评论内容。这些格式化后的数据将作为亚马逊基础模型的分类输入。

代码解释4:我们将分批(每批 20 条记录)进行分类,并将包含 LLM 生成输出的数据数组转换为数据框,以便进一步分析和审查。最后,我们将预测结果合并到真实数据框中,并保存这些结果,得到一个 result_lab_1.csv

**注意:**分类过程时间大约等待10-15分钟,可以先进行其他实验,等待结果完成。

3、为多个类别标签创建 Embedding

lab2.py 是基于 Amazon Bedrock 的文本语义分类项目,通过使用 Titan Text Embeddings V2 嵌入模型,将客户评论和预定义类别转换为向量,然后利用余弦相似度计算技术,自动将评论分类到最符合的分类中。文件内容包括了模型探索、文本嵌入生成,还包括相似度分析和分类准确率计算,最终将分类结果保存到 result_lab_2.csv 文件中。

点击名为 lab2.py 的文件。

在激活虚拟环境后,在 Terminal 中执行命令 python lab2.py,输出绿色的 accuracy 和文件result_lab_2.csv,表示执行成功。

代码解释1:我们使用 Langchain SDK 来初始化一个 BedrockEmbeddings 对象,该对象包含标识为 amazon.titan-embed-text-v2:0Titan Text Embeddings V2 模型。之后,我们将利用这个 BedrockEmbeddings 对象生成类别和评论的文本嵌入。首先,我们进行一个测试,探索嵌入对象的功能。我们将观察如何将“I love programing”这句话有效地转换成一个 1024 维的密集向量。准备数据集进行分类,加载客户评论数据,生成类别解释文本和客户评论文本的嵌入,为类别创建嵌入。

代码解释2:计算相似度。将 comments_embeddings 嵌入作为查询向量,查找 category_embeddings 嵌入矩阵中最相似的向量。使用 comments_embeddings 作为查询向量,从 category_embeddings 矩阵中检索最相似的向量,通过顶部索引确定类别标签,并将其转换为pandas数据框。将预测结果与 Ground Truth 进行对比,并计算准确率,最后生成 result_lab_2.csv

4、使用 RAG 对 VoC 进行分类

lab3.py 使用 Amazon BedrockLangChain 构建的客户反馈分类系统。首先使用 Amazon Titan 嵌入模型将文本嵌入向量空间,然后通过 Chroma 向量数据库存储示例数据。系统利用自定义的 ChatModelNova(基于 Amazon Bedrock Nova 模型)创建一个机器学习管道,通过相似性检索相关示例,并使用精心设计的提示模板对客户评论进行自动分类。最后,代码计算分类的准确率,并将结果保存到 result_lab_3.csv 文件中,展示了一个端到端的文本分类解决方案,集成了嵌入、相似性搜索和大语言模型推理技术。

点击一个名为 lab3.py 的文件。

在激活虚拟环境后,在 Terminal 中执行命令 python lab3.py,输出 correctaccuracy 和文件result_lab_3.csv,表示执行成功。

代码解释1:准备对数据集进行分类。加载示例数据,我们将用它们作为少量样本。创建一个向量数据库来存储客户评论文本的嵌入向量,我们将使用 LangChain 中的 Chroma 集成来设置向量数据库。我们将每个客户评论视为一个独立的文档,并使用 Langchain-Chroma SDK 将所有这些评论上传到向量存储中。添加文档到向量存储。我们将通过向量搜索来比较它们的相似度,并选择与客户评论文本最相似的类别。

代码解释2:构建 RAG 链,仅检索前 K 个相关示例进行分类,并定义系统提示和用户提示模板。

代码解释3:我们将迭代分类每条评论。核实所有数据是否已正确处理。将数据数组转换为 Pandas 数据框。合并预测结果与真实数据框。最后计算准确率并保存为 result_lab_3.csv

**注意:**分类过程时间大约等待5-8分钟,可以先进行其他实验,等待结果完成。

5、生成分析报告

lab4.pyPython 编写的复杂脚本,主要包含以下几个部分:首先定义了一个 ChatModelNova 类,它是一个基于 Amazon Bedrock 服务的自定义聊天模型,支持同步和异步消息生成;然后使用这个模型进行法语翻译;接着读取了 result_lab_3.csv 文件的数据并进行数据处理;最后使用 LangChain 构建了一个高级提示词模板,通过流式输出生成一个针对数据的分析报告,整个过程涉及数据分析、机器学习模型调用和自然语言报告生成。

点击名为 lab4.py 的文件。

在激活虚拟环境后,在 Terminal 中执行命令 python lab4.py,输出绿色的 markdown 文本,表示执行成功。

代码解释1:加载 VOC 分类结果数据,并定义系统和用户提示模板。

代码解释2:定义系统和用户提示高级模板。创建 langchain 聊天模板。将表格和统计数据转换为 JSON 格式并传递给语言模型。最后在命令行中输出以 markdown 格式的绿色内容。

五、资源清理

我们建议您在实验完成之后,及时清理实验资源,避免产生额外的费用。

资源清理方法:

六、总结

恭喜你在 Amazon Bedrock 上完成了所有实验内容,成功通关!
通过这些实验,你不仅对 Amazon Bedrock 上的通过统一的方式提供来自顶尖人工智能公司和亚马逊的高性能基础模型(Foundation Models, FMs) 有了初步的了解,而且体验了其与传统 AI 截然不同的自然语言交互方式。Amazon Bedrock 的强大之处在于它支持创建多样化的环境,如开发、测试和生产环境,这为团队在不同阶段的迭代和部署提供了极大的便利。此外,Amazon Bedrock 提供了一系列广泛的功能,以建置具有安全性、隐私性和负责任的生成式 AI 应用程序。通过这些实验,你已经能够利用 Amazon Bedrock 的无服务器体验,快速开始使用、使用自己的数据私人定制基础模型,并使用熟悉的 Amazon 工具轻松安全地将它们整合并部署到你的应用程序中。
现在,是时候将所学付诸实践了。轻轻一点,“注册海外账号”,立即免费踏入属于您的云端构建世界。作为新注册的您,更能体验到长达12个月的免费使用权,涵盖云计算、云数据库、云存储与前沿的生成式 AI 服务等 100 余种云产品与服务。更值一提的是,您还将全面享受亚马逊云科技的海外区域节点,为您的实战构建之旅铺设坚实的基石。不再等待,立即开启您的云上探索之旅吧!
同时,在云上探索实验室中,我们还有更多丰富多彩的实验内容,让您的学习之旅永不止步。期待您的热情参与,共同体验这场技术的盛宴,一起成长,一起探索更广阔的科技天地。